【PHP】下らねぇ質問はここに書き込みやがれ 53
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/08/25(土) 22:11:08ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0139nobodyさん
2007/08/28(火) 18:38:35ID:wOTpbT+Kこれを中止させるにはどうすればいいですか?
0143nobodyさん
2007/08/28(火) 18:49:48ID:???{
$tmp=ereg_replace("[\][\]","\x5c",$str);
$tmp=ereg_replace("[\][']","'",$tmp);
$tmp=ereg_replace("[\][,]",",",$tmp);
return $tmp;
}
0144nobodyさん
2007/08/28(火) 19:43:38ID:???動かないか?
0146nobodyさん
2007/08/28(火) 19:44:51ID:???で運用しようと思っています。
この運用だと、ポストされるエンコードがsjisとutf8になりますよね
sjisだった場合は当然utf8に変換しないといけないのですが、
mb_detect_encodingは
携帯の絵文字が混ざった文章もちゃんとsjisと判定できるのでしょうか?
あるいはもっといい方法があれば教えて下さい
0148nobodyさん
2007/08/28(火) 21:27:05ID:???0150nobodyさん
2007/08/29(水) 06:42:45ID:uYM+HrXL$template = <<<_TMP_
テンプレートです。
タイトル:{test}
おしまい
_TMP_;
preg_replace('/{(.*)}/', '$$1', $template);
{hogehoge}を$hogehogeに格納されている値に置き換えたいのですが
何か良い方法はありませんでしょうか?
このやり方では、「$test」と出力されてしまいます
0151nobodyさん
2007/08/29(水) 08:42:05ID:???<?php
$test="テスト";
?>
テンプレートです。
タイトル:<?=$test;?>
おしまい
0152nobodyさん
2007/08/29(水) 09:19:27ID:uYM+HrXL早速のご回答ありがとうございます
「テンプレートです。
タイトル:{test}
おしまい 」
これは外部ファイルとして保存しておいて
呼び出してから文字列の置き換えを行いたいのです
0153nobodyさん
2007/08/29(水) 09:25:27ID:bOc70w1/0154nobodyさん
2007/08/29(水) 09:54:17ID:uYM+HrXL詳しく言うと、アップーロードにて一般の方にテンプレをUPしてもらい
そのテンプレを元に作成したいのです
なので、拡張子はtxtがメインになると思います
0158nobodyさん
2007/08/29(水) 11:06:55ID:???外部のユーザからアップロードされたファイルをincludeして実行するという話を
本気にしてはダメだ。eスイッチも同様。
動的にやりたいならpreg_replace_callbackで。
そうでないなら preg_replace(//,array("hoge"),array($hoge)); とか。
0159nobodyさん
2007/08/29(水) 11:14:14ID:???理由は単純で殺人未遂だから。
おならには、硫化水素という有毒なガスが含まれていて、
量によっては即死する。
つまりおならによって人が死ぬことも理論的にはありえるわけで、
そのような殺人未遂行為(不可罰であるが)が、人から嫌がられるのは当然。
0160nobodyさん
2007/08/29(水) 11:27:16ID:uYM+HrXLありがとうございます
preg_replace_callbackを参考に
$test = "aaaaaa";
$text = <<<_TEXT_
test
{test}
test
_TEXT_;
function getVar($matches){
$matches = trim($matches[1]);
global $$matches;
return $$matches;
}
$text = preg_replace_callback("/{(.*)}/","getVar",$text);
echo $text;
としてみると見事に解決しました。
0161nobodyさん
2007/08/29(水) 12:08:32ID:???ブラウザを閉じない限りログアウトできませんよね?
再度認証できる方法はないのでしょうか?
0163nobodyさん
2007/08/29(水) 12:29:31ID:???失礼しましたm(..)m
0165nobodyさん
2007/08/29(水) 13:26:20ID:???それでいいのなら別にいいのだけど、
その実装だとテンプレートをアップロードできる人が
変数を全部参照できることになるから注意してね。
つまり、$mysql_passwordにパスワードを入れとくとやばいとかそういうこと。
0166nobodyさん
2007/08/29(水) 13:34:48ID:uYM+HrXLありがとうございます
特に重要なものは取り扱わないので大丈夫です
0167nobodyさん
2007/08/29(水) 13:39:40ID:???個人的にはテンプレート用の配列のみを置換するようにした方が便利だと思うよ。
$replaceStr['test'] を {test} に置き換えるとか。
0168nobodyさん
2007/08/29(水) 17:24:45ID:???以下のようにやってみたのですが出来ないようです。
echo <<<EOF
I am <?php if($test == 1) {echo 'hoge'} ?>
EOF;
0169nobodyさん
2007/08/29(水) 17:29:18ID:???0172nobodyさん
2007/08/29(水) 19:48:55ID:???一度ヒアドキュメントを抜けないと無理だと思う
0173nobodyさん
2007/08/29(水) 22:36:27ID:???ホスト名が無い場合は使えないんでしょうか
0174nobodyさん
2007/08/29(水) 22:37:21ID:???ひあどきゅめんとないにへんすうをいれれば
ふつうにできるじゃん。
0179nobodyさん
2007/08/30(木) 00:08:26ID:6umYOf5adomxmlを利用しています
このような感じです
<one>
<title>
<main>あ</main>
<man>
<blue>
<a>い</a>
<b>う</b>
</blue>
<pink>
<a>え</a>
<b>お</b>
</pink>
</man>
<woman>
<blue>
<a>か</a>
<b>き</b>
</blue>
<pink>
<a>く</a>
<b>け</b>
</pink>
</woman>
</one>
<two>
(↑の同じ構造)
</two>
0180179
2007/08/30(木) 00:12:36ID:6umYOf5a(配列ではダメです)
まずは、
$dom = domxml_open_file("xmlのURL");
$root = $dom->document_element();
$node = $root->get_elements_by_tagname('two');
みたいに書いたのですが、ここから効率のよい取得方法が分かりません。
自分で書いてみたプログラムは200行ぐらいになりました。。。
どなたかご教授ください。
0181nobodyさん
2007/08/30(木) 01:27:14ID:???BOMを付加するべき?しないべき?
0182nobodyさん
2007/08/30(木) 01:32:25ID:???0183nobodyさん
2007/08/30(木) 01:34:41ID:???0184nobodyさん
2007/08/30(木) 01:40:21ID:uPaIz1kmmb_detect_orderは("sjis, UTF-8, EUC-JP")
すると、utf-8で判定されたり、euc-jpで判定されたりしました
太陽(f89f):UTF-8
ATM(f8c9):euc-jp
これは「絵文字だけでエンコーディングを判定するのは無理ぽ」
ということでしょうか?
またshift-jisを最初に設定しているのにマッチしていないのが気になります
判定方法にバグでもあるのでしょうか?
0185nobodyさん
2007/08/30(木) 01:51:22ID:???絵文字は外字領域(SJISで未使用の範囲)を使ってるので
SJISコードとして判定されないのが正しいとオモ
0186nobodyさん
2007/08/30(木) 02:44:58ID:???0187nobodyさん
2007/08/30(木) 02:46:56ID:???0188nobodyさん
2007/08/30(木) 02:54:56ID:cbvqe7SVプレグ
csvファイル専用関数を使うメリットってありますか?
普通のファイル操作系の関数で全然問題ないのですが
0190nobodyさん
2007/08/30(木) 03:06:10ID:???そうだとおもうからpとregをわけてピーレグって読んでるけど
0191nobodyさん
2007/08/30(木) 03:29:17ID:???プレグマッテと読んでるが
人それぞれだな
0192nobodyさん
2007/08/30(木) 03:31:21ID:???0193nobodyさん
2007/08/30(木) 03:35:43ID:???プレグマッチアール(オールだがついついアールと読んでしまう
プレグリプレイス
0194186
2007/08/30(木) 03:57:17ID:???0195nobodyさん
2007/08/30(木) 03:59:03ID:???0196nobodyさん
2007/08/30(木) 04:37:15ID:cbvqe7SVで、
Warning: require_once(1) [function.require-once]: failed to open stream: No such file or directory
Fatal error: require_once() [function.require]: Failed opening required '1' (include_path='.;C:\xampp\php\pear\')
というエラーが出てしまいます。
「No such file or directory」はファイルがないということですが、同じフォルダにその名前のファイルが存在します。
他に何か思い当たることはないでしょうか・・・?
0197nobodyさん
2007/08/30(木) 04:45:29ID:???0198nobodyさん
2007/08/30(木) 04:50:46ID:cbvqe7SVor die()ってできないんですね
返り血考えるの忘れてました
0199nobodyさん
2007/08/30(木) 09:58:09ID:???0201nobodyさん
2007/08/30(木) 10:18:40ID:3muSx8fZPHPである項目を、セレクトボックスでの選択か、もしくは
テキストボックスへの入力にさせたいのです。
つまり、セレクトボックスでの選択かテキストボックスに入力かが
されていればOKで、両方になにもない場合のみ「選択しろ」という
エラーメッセージを出したいのですが、どうしたらいいですか?
// 営業所コード
if($_POST['g_c'] == '') {
$err_u .= '[営業所コード]が未選択です。<br>';
}
// 営業所の名前
if($_POST['g_n'] == '') {
$err_u .= '[営業所の名前]が未入力です。<br>';
}
現在エラーメッセージを出させる記述はこうなっているのですが、
この場合はどちらかが未入力・未選択でもエラーが出ます。
[営業所コード] か、[営業所の名前] どちらかが選択・入力されていればOK
というようにはどうしたらいいのか、すみませんが教えてください。
0202nobodyさん
2007/08/30(木) 10:24:45ID:???0203nobodyさん
2007/08/30(木) 11:00:36ID:Qqw8XwhJarray_push()はどんな利用目的で使うのが正しいのでしょうか?
マニュアルを見る限りarray_push()をつかうなら関数を呼ぶオーバーヘッダ
のない$array[] = のほうが良いとかいてありました。
0204201
2007/08/30(木) 11:03:53ID:3muSx8fZ0205nobodyさん
2007/08/30(木) 11:15:13ID:???自分でインデックス管理して最後尾に追加するなりのコードを
書くなら$array[] =...でいんじゃね。
0206nobodyさん
2007/08/30(木) 11:17:27ID:???pop, shift, unshiftと作ってpushも作らざるを得なかっただけなので使う必要なし
配列に配列を加えるときには使ってもいいよ
似たような関数にarray_merge( )もあるけどね
0207nobodyさん
2007/08/30(木) 11:44:06ID:Qqw8XwhJありがとうございます
0209nobodyさん
2007/08/30(木) 14:33:45ID:OWaQUMa6basic認証よりはセッションで管理するほうがいいですか?
0211nobodyさん
2007/08/30(木) 14:47:36ID:OWaQUMa6セッション使うことにします
0212nobodyさん
2007/08/30(木) 17:43:29ID:bLGc1mde良ブログ ですか?
0213nobodyさん
2007/08/30(木) 18:00:15ID:???0214nobodyさん
2007/08/30(木) 18:02:30ID:???0215nobodyさん
2007/08/30(木) 18:30:42ID:???Perlの場合、日本語や絵文字を処理することを考慮し、例えばSJISで
画面を出力する場合でも、ソースはEUC、処理内でJcode等を使用
してSJIS出力するようなことをしておりましたが、PHPの場合はどの
文字コードで書くのが一番問題等発生しにくいのでしょうか。
ご教示いただけますと幸いです。
0216nobodyさん
2007/08/30(木) 18:35:39ID:???0217nobodyさん
2007/08/30(木) 18:36:08ID:Qqw8XwhJ基本的なことはperlと同じ
0218nobodyさん
2007/08/30(木) 18:59:53ID:???早速のご返答、有難うございます。
PHPをよくSJISで書く方がいらっしゃるので、日本語処理関係が
充実しているのかなと多少期待してしまってました。
SJISでデータを受けてEUCに変換してSJISに戻すというのが
非常に手間だったので。。
同じくEUCで書きたいと思います。
ご教示有難うございました。
0219nobodyさん
2007/08/30(木) 19:20:40ID:???0220nobodyさん
2007/08/30(木) 19:22:31ID:???aaa05130
といった感じのIDを使用しているのですが、
これを一意な数字列に変換したいのれす
0221nobodyさん
2007/08/30(木) 19:27:09ID:???0223nobodyさん
2007/08/30(木) 19:34:43ID:???今時、EUCというが、処理コストの関係で、
EUCにせざるを得ない現場はたくさんあるぞ。
あまり知ったかぶりするなよw
0224nobodyさん
2007/08/30(木) 19:35:39ID:???0225nobodyさん
2007/08/30(木) 19:36:36ID:???0226nobodyさん
2007/08/30(木) 19:47:10ID:???PHPをSJISで書いてる人が多い!?
それ、どこの馬鹿サイトの受け売りだよ。
PHPは確かにマルチバイトに強いが、
コードをSJISで記述するのは正式サポートしていない。
専用コンパイルした特殊なバージョンを使わないとダメ。
逆に、PHPはマルチバイト処理がPerlより強力なので、
その辺は自動変換でやってしまうのも1つの手ではある。
0229nobodyさん
2007/08/30(木) 19:55:40ID:???EUCの場合と比べてサイズが増大する。
西暦を4桁ではなく2桁で処理していたのと同じ問題。
サイズが増えれば、ストレージのコスト、バックアップコスト、日々のプロセスコストが増える。
こういった諸々の理由から、クライアントからEUCを指定してくる場合も多い。
0231nobodyさん
2007/08/30(木) 20:10:04ID:CeKsBD3cいつもお世話になっております。
アニメーションgifのサムネール画像を作ろうかと思い、
ソースのgif画像をイメージ関数のimagecopyresampledでリサンプリングしたんですけど、
ノイズの入った画像静止画像が得られてしまい、失敗しましました。
どうすりゃサイズ縮めたアニメーションgifをえられるでしょうか。オネガイシマスm(_ _)m
0232222
2007/08/30(木) 20:14:52ID:???PHPをSJISで書いている人が多いのは、うちの職場の
方々なんです。
別にルールとかは一切ないんですけどね。
グローバル変数を使いまくるようなタイプなので、ちょっ
とこちらで質問させていただいた次第です。
決してそれが悪いということを言っているわけではなく、
僕の書き方とだいぶ異なると思ったためです。
>PHPは確かにマルチバイトに強いが、 ャRードをSJIS
>で記述するのは正式サポートしていない
ということも知らなかったので、非常に説得力のある
ご意見でした。
やはりEUCで書くことにします。
皆様有難うございます。
0233大ウソつき人間
2007/08/30(木) 20:22:53ID:???このスレを毎日読んでいて良かった。
0234nobodyさん
2007/08/30(木) 20:29:32ID:???文字といってもコンピュータにとってはただの数字だし
0236nobodyさん
2007/08/30(木) 20:34:27ID:???>文字といってもコンピュータにとってはただの数字だし
>文字といってもコンピュータにとってはただの数字だし
0237nobodyさん
2007/08/30(木) 21:50:00ID:???特定の日本語文字で\を入れないと
コンパイルエラーになるけどな。
0238nobodyさん
2007/08/30(木) 21:55:41ID:???■ このスレッドは過去ログ倉庫に格納されています