トップページ⇒php
1001コメント326KB

【PHP】質問スレッドpart23【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/10/05 17:36:38ID:???
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ等>>2-4
0116nobodyさん04/10/07 21:45:38ID:eGrZpUzk
PHPで文字列を括る場合「"」と「'」どちらで統一するのがいいですかね?
やっぱC言語風に「"」ですか?
0117nobodyさん04/10/07 21:48:36ID:???
>>116 ケースバイケース、どうしても「統一」したいなら半島へ逝け。
0118nobodyさん04/10/07 21:52:17ID:???
>>115
>そんなことは不要かもしれないし、そもそもWebサーバから
>読めるようにしてはいけないのかも知れない。

そんなんじゃ、Webアプリの価値なんてなくなるよ。
必要なら、Webサーバ-DBサーバ間を暗号化すればいいじゃない。
まあ、セキュリティのみに関して言えば、共用サーバという時点で
論外だけどな。
0119nobodyさん04/10/07 21:55:24ID:???
>>116
もしその違いがわからないとしたら致命的。
プログラマすら名乗れない。
0120nobodyさん04/10/07 22:13:38ID:???
>>118
いや、Webアプリの価値は開発から運用まで巷のツールなどが利用できること。
そこで言いたいのは、VPNとかの採用を考慮すべきで情報の内容ではないのかってこと。
0121nobodyさん04/10/07 22:45:14ID:???
>>116
まぁ、マニュアルでも読めや
0122nobodyさん04/10/07 23:09:19ID:YIBUt39D
>>118
>必要なら、Webサーバ-DBサーバ間を暗号化すればいいじゃない。

話が高次元になったところですみませんが、この暗号化は実際にはどうすればできますか?
PHPの関数でcryptみたいなものを使うのでしょうか?

サーバーを適切なところに変えるのが一番安全なのかもしれませんが、
理由あって変えないで済むならなんとか方法を探したいと思っており。。。
01239804/10/07 23:40:46ID:???
>>104
レスありがとうございました
【php パーサ バックスラッシュ エスケープ】でぐぐったら
http://php.s3.to/man/ref.info.html
がかかりました。
DB側でなくphp側でエスケープ処理がかかってたんですね。
で、
phpinfoのmagic_quotes_gpc,magic_quotes_runtime,magic_quotes_sybase
はLocal、Masterとも全部Offになっていましたが
それでもエスケープしてしまうものでしょうか?
マニュアルはOnの時にエスケープ処理が入るとありましたが
他にも関係する設定箇所があるのでしょうか?
0124nobodyさん04/10/07 23:43:17ID:???
>>117
その使い分け方を教えてくれませんか?
0125nobodyさん04/10/07 23:49:48ID:???
>>124
マニュアルくらい読めよ

オレは「統一」なんて大それた事はできないけどな。
01269804/10/07 23:50:15ID:???
>>124
シングルだと変数が展開されなかった気がします。
0127nobodyさん04/10/07 23:57:13ID:???
>>124
http://pc5.2ch.net/test/read.cgi/php/1095633323/l50
012811804/10/08 00:03:08ID:???
>>120
>105がどういう内容のアプリを作ってるのか知らんから適当に言うが、
VPNは外部公開せずに拠点間をネットワークで繋ぐエクストラネットだろ?
今回はそういう話じゃないと思うんだがな。
VPNの導入だってめんどくさいし。freeのでなけりゃコストもかかるし。

>>122
phpの関数レベルじゃできないと思うよ。
OpenSSL、OpenSSHのSSHポートフォワーディングでいけるが、
共用サーバなので、root権限を使った設定は無理だろうな・・・。
ということで、どこまでのセキュリティを確保したいかで、
変わってくるけど、その共有サーバでは無理かもよ?
0129nobodyさん04/10/08 00:17:17ID:???
マニュアル嫁=日本語がふじゅうな人

本当に理解してないから、すぐ言えないんだよね
感覚でしか覚えてないから。
0130nobodyさん04/10/08 00:30:25ID:???
>>124
>>126が正解だけど、使い分けに関しては慣れだね。
俺の場合は連想配列のキーや文字列リテラルは「'」で
シーケルは「"」で括るのが個人的に見やすいと思ってそうしている。
もちろん、改行・インデント・コメントの三大マナーをきっちりやった上でね。
0131nobodyさん04/10/08 00:53:26ID:???
PHP初心者スレ誰か立ててくれ、
>>129みたいなウザキモ甘ったれ粘着厨
 でも相手してやれるような。
0132nobodyさん04/10/08 00:57:34ID:???
マニュアル読めなんて極めて親切な回答じゃん。

マニュアルも読めないほど日本語不自由な人は別としても。
0133nobodyさん04/10/08 01:04:06ID:???
のびた「宿題教えて」

パパ「百科事典嫁」

↑ドラえもんでのネタ
0134nobodyさん04/10/08 01:12:58ID:???
>>131
痛いところを突かれたからって、いちいちレスするな。見苦しい。
熟練者ならどんな些細な質問にも初心者が一番理解しやすい方法で回答できる。
0135nobodyさん04/10/08 01:13:57ID:???
一気にネタ臭くなった
0136nobodyさん04/10/08 01:15:57ID:???
さらに、君が些細な質問にすら簡潔な回答ができないとすると、
それは君が実装方法を丸暗記しているだけで概念も含めた総論として
その解決方法を理解できていないからではないかね?
0137nobodyさん04/10/08 01:18:56ID:???
各種MLを拝見していると常に感じることだが、
この世界には>>136で挙げたような「なんちゃって習得者」がいかに多いことか。
いいかげんPGはコーディングできる技能を"特別な技能"だとする思い上がりを捨てるべきだ。
0138nobodyさん04/10/08 01:20:10ID:h9hTVebP
つーかさ、トリップつけてくんない?
0139nobodyさん04/10/08 01:20:57ID:???
自分でいうのも何だが、PG・SEなんてものは事務員に毛が生えた程度の職業だと思う。
少なくとも俺は自分のことを"エンジニア"とは称さない。
0140nobodyさん04/10/08 01:23:57ID:???
まあ理系の就職相談の指導者が生徒に将来なるなとまず言う職業は
SEだからね。
0141nobodyさん04/10/08 02:20:58ID:???
>137
それは同意だが、マニュアル嫁はとても良い回答だと思うよ。
俺は家電のマニュアルもちゃんと読む。、
0142nobodyさん04/10/08 03:12:11ID:Gf9YwG4z
phpのコーディングをしてるときは「完璧なインデント!」と思うが、
いざ出力されたhtmlを見るとげんなりする。
みなさんどうしてますか?
0143nobodyさん04/10/08 03:14:19ID:???
意味わかんね
HTMLのインデント?
0144nobodyさん04/10/08 03:22:19ID:???
出力されたhtmlのソースのインデント。
014514204/10/08 03:22:43ID:???
↑142です
0146nobodyさん04/10/08 03:23:16ID:???
インデントするようにコーディングすればいいじゃん。
014714204/10/08 03:26:59ID:???
…それだとphpのコーディング時に読みづらくないですか?
0148nobodyさん04/10/08 03:33:34ID:???
根本的に>>142は勘違いしてる気がする
0149nobodyさん04/10/08 03:35:38ID:???
>>142
出力されるhtml(と解釈されるテキスト)には、
インデントはおろか改行すら入れないようにしている。
どうせデバッグの時しか見ない、転送量の削減等の理由で

よく動的に生成されるページでコメントとか入っているのがあるが
あれはデザイナ向けか?
0150nobodyさん04/10/08 03:36:20ID:???
そもそも、どういう書き方してるんだよ。
015114204/10/08 03:38:21ID:???
!!
デバッグ終わったら整形してうpすりゃいいってことか。
何もそのまま使うことはないのか…おれの馬鹿
0152nobodyさん04/10/08 03:51:51ID:???
日本語の検索で詰ってる
調べてみたらmb_を使えばいいと出てるが、
設定しなきゃいけないらしい

指示通り設定したら、こんどは何か足りないと注意された。
分かりにくすぎだろ〜これ・・・・
0153nobodyさん04/10/08 03:53:40ID:???
いや、く全国100万人のPHPデベロッパーは
ちゃんと設定できてるよ
0154nobodyさん04/10/08 03:58:39ID:???
さすがに馬鹿のたまり場になったのでスレを分けよう。
質問スレが隔離効果を狙って立てられているのは知っているつもりだが、
ごく普通のPHPの疑問を解決するスレが欲しいユーザはきっと漏れだけじゃないはず。
そこで問題になるのがスレタイなのだが。

聞いてばっかりになりがちな「質問スレ」というのは止めにして、
お互い問題を提出して有益な情報を出し合えるようなものにしたいところ。
言葉にするとしゃらくさいものに思えるかもしれないが、そういうものが必要だ。

しかしCommonGatewayInterfaceスレのように廃墟になるのはごめんだし、
PHPト学会スレじゃなんのことかさっぱりだ。何かハッとするようなブレイクスルーを
持っている人はいないかい。
0155nobodyさん04/10/08 04:03:27ID:???
もうちょっと暖かく見守ってくれ
回答者がスレのレベルを決めてどうするんだ
最終的には難しい質問しか書けなくなって、誰も答えられない
自慢大会みたいなスレにならない?

---------------
まぁ初心者スレがないから、ココに書いてるのもあるけど。
0156nobodyさん04/10/08 04:17:30ID:???
> 最終的には難しい質問しか書けなくなって、誰も答えられない
> 自慢大会みたいなスレにならない

初心者スレと別れていたころがあるが、そうはならなかった。
なぜ今後そうなると考えているのか理由もかいてくれないと何とも判断のしようがない。
このスレッドはあっていいんだ。"と'の違いや=&、&$が何か、「設定ができない」とだけ
書いてあって救いようの無いレスを打ち合うスレがあるのは否定しない。

けれども最低限マニュアルを読み、テストをする姿勢を要求するスレッドがあっても
いいんじゃないだろうか。その上で自己解決困難な問題について議論してみたら、
有意義な結果が得られることにならないだろうか。別にソースハックを当然のように
要求するスレッドを作りたいわけではない。

読んでくれなかったようだが、「ごく普通のPHPの疑問を解決するスレ」が一本あって
いいんじゃなかろうか、という程度の話だ。大げさに考えることは無い。
0157nobodyさん04/10/08 04:26:15ID:???
PHP質問スレ自体は今後ますます必要になるだろうな。
調べずに聞いてもいい・簡単なことを聞くのは恥じゃない
となったあたりから、うんざりする質問が増えてきて
スキルのある人は出て行ってしまった感がある。
汎用的なスレや板ほど、何でも書けるせいかダメになりやすい。
あまり伸びず情報もさして出てこないような個別スレのほうが
まともなまま生き残る。どっかで分けなきゃいけない気もするね。
0158nobodyさん04/10/08 04:30:58ID:???
以前、スレを初質とその他に分けたけど
質問者どころか回答者も使い分けれないって事で
また合体したじゃん。

放置とかスルーとかできるほど民度が高くないから
分けても無駄無駄。
0159nobodyさん04/10/08 04:31:38ID:???
>>126
変数以外にも、エスケープシーケンスも展開されない。

>>124
使い分けに関しては、変数などの展開が必要ならば「"」不要なら「'」
文字列リテラルに「$"\」などの記号を多く含む場合は「'」程度かな。
必然的に>>130に近い使い分けになると思う。

>>142
テンプレートを使ってるよ。
0160nobodyさん04/10/08 04:32:28ID:???
>>155
初心者スレもあったけど、初心者スレとPHP質問スレを
分けて使ってくれないんで無駄つーことで合体したんじゃなかったっけ
マニュアル読まない>>1読まないエラー読まないってな人は初心者スレを作ってあげても
住み分けてくれない罠
0161nobodyさん04/10/08 04:33:52ID:???
>>158
質問スレと初心者の質問スレを分けるんじゃダメだ話でしょ >>154

0162nobodyさん04/10/08 04:35:56ID:???
>>126
変数以外にも、エスケープシーケンスも展開されない。

どういうことよ
'\''がパースされないって認識?
0163nobodyさん04/10/08 04:36:48ID:???
設定変えてApache再始動したら、mb対応した。
またバカなこと書いたと反省した(・∀・)
016415704/10/08 04:39:41ID:???
質問スレもう一個立てるってのは分けることになら
んでそ。そういうことじゃなくてさ。「質問」のためのス
レッドじゃ上手くいかないから別用途でってことね。
レベル分け無理ってのは同意。
0165nobodyさん04/10/08 04:42:25ID:???
>>162
エスケープシーケンスつーとあれだけど、'\n'とかね。'/\n/'はPHPが賢いので有効。
01669804/10/08 09:28:37ID:???
棲み分けに関して
何回かこの板で質問させてもらった98ですが、
スクリプト改造スレみたいに【希望するレスの形】別なんてどうでしょう?
自分がつまずきレベルを考えたら3種類あって
【1、マニュアルの該当しそうな所が予想つく→マニュアル読む】
【2、マニュアルのどこに該当するのか見当つかない→キーワードでぐぐる】
【3、なにでぐぐっていいのかすらわからない】
くらいに大別できるかなと思うので3番目は論外にせよ
ヒントをくれるスレ、マニュアルのどこそこに該当するからそこ嫁、なんて
2番目の状態でぐぐっても何もなかった時に質問できるスレがあったらいいなぁ
なんて思います
長文スマソ
0167nobodyさん04/10/08 09:31:09ID:wO90jo1V
$log = fopen(log.dat,"r+");
set_file_buffer($log, 0);
flock($log, LOCK_EX);
$kiroku = file(log.dat);
処理
rewind($log);
ftruncate($log, 0);
fputs($log, 処理の結果);
flock($log, LOCK_UN);
fclose($log);

排他ロックはこれでOK?
0168nobodyさん04/10/08 09:45:19ID:???
>>167
flock() に失敗したときの処理はどうなってるの?
016916704/10/08 10:09:33ID:???
>>168
サーバーをリブートさせてます。
017016704/10/08 10:27:11ID:???
if (!flock($log, LOCK_EX)){ echo"ロックに失敗しました"; }
0171nobodyさん04/10/08 13:21:18ID:???
凄く遅レスだけど、動的ページでhtmlにコメント入れてあるのは
自動巡回&切り出しソフトとかで切り出すのに重宝するよね。

>>167,170
if (!flock($log, LOCK_EX)){ echo"ロックに失敗しました"; }
else {処理;}
とかいう突っ込みをしてみる。
0172nobodyさん04/10/08 13:45:17ID:???
safe modeがオンのときに画像アップロード等の
phpアプリを実行することはできますか?
0173nobodyさん04/10/08 13:52:52ID:???
試してどうだったんだ。
0174nobodyさん04/10/08 13:55:25ID:???
>>172
環境とコードによるけど、セーフモードつったって只のIDチェックでしょ?
http://jp.php.net/manual/ja/features.safe-mode.php#ini.sect.safe-mode
0175nobodyさん04/10/08 17:43:50ID:???
馬鹿がいる。
017615904/10/08 18:11:51ID:???
>>162
'/''のエスケープは有効だったね。
>>152 は、(マニュアル通り) *特殊文字の*エスケープシーケンスに訂正します。

>>165 フォローthx u
0177nobodyさん04/10/08 19:08:16ID:EsMqKh23
日付を使って条件判断したいのですが
以下のようにやってもうまくいきません。
例えば10月の分は全部syori2に行き11月の分はsyori1になります。
どっか間違っていますでしょうか?

if(date("Y/m/j")<date("Y/m/j",mktime(0,0,0,$month,$day,$year))){
syori1
}else{
syori2
}
0178nobodyさん04/10/08 19:13:40ID:???
>>177
これならへたれな俺でも回答できる
UNIXタイムスタンプで比較すれ
0179nobodyさん04/10/08 21:13:17ID:???
>>177
http://jp2.php.net/manual/ja/function.strtotime.php
0180nobodyさん04/10/08 21:17:26ID:???
えっ?それは・・・
0181nobodyさん04/10/08 21:21:51ID:???
>>163
mb関数はバグがあるからちゃんと返却値を確認しつつ使う必要があるよ。
例えば、mb_convert_kana()などは、全角スペース→半角スペースの変換ができないから
preg_replace()なんかで受ける必要があったりとか。

>>177
なぜ数値として比較したいのに「/」を入れて文字列にしてるのかと小一時間(w
018217904/10/08 21:24:55ID:???
ごめん、質問をよく読まないで書いた。
よく読んだら
【10月の分は全部syori2に行き11月の分はsyori1になります。】
これが望んでいる動作なのか望まないのに
そのように動作しているのかすらわからなかったorz
0183nobodyさん04/10/08 22:42:04ID:???
プログラミングではなくスクリプトそのものをフリーで探しているのですが、
その場合の質問もこちらでいいのでしょうか?

ギャラリー系のPHPスクリプトでPHP4.0.6/DB無し/ImageMagik・NetPBT(?)無しのサーバーで
ブラウザからUpload出来、自動リサイズ可能で各画像/アルバムのDiscriptionの編集が効くようなスクリプトはご存じないでしょうか?
注文が多くてスミマセン。
018418304/10/08 22:42:32ID:Us1p5CHj
連続カキコすみません。
ageるのを忘れていました。
0185nobodyさん04/10/08 22:48:39ID:???
>>182
危うく同じ過ちを犯すとこだったよ <-- if ($month == 10) と書こうとしてた

>>177
とりあえず、"Y/m/j"の場合は、桁数が可変なのでこれを固定長にする。
その前に日付フォーマット文字の(j)は"分"なんだけど、比較したいのは"日"(d) なんじゃないかな?
018618504/10/08 22:55:59ID:???
>>185 自己レス
> 日付フォーマット文字の(j)は"分"
ごめん、勘違いしてた.

> j ... 日。先頭にゼロをつけない。1 から 31
> d ... 日。二桁の数字(先頭にゼロがつく場合も)01 から 31
0187nobodyさん04/10/08 23:02:06ID:???
>>183-184
あースレ違いだから
0188nobodyさん04/10/09 00:02:04ID:???
>>183
Web製作板のほうにCGI探しスレがあるんでそっちで。こっちは自分で作る板。
向こうアホが張り付いて荒らしてるんで心して行った方がいいよ。
0189カポコン04/10/09 00:36:55ID:???
よぉ、ネタが途切れてるみたいなんで振っとくよ。
PHPではポインタの中身は見れないんだよな〜。
見たいなー見たいなー、見れる方法あればきぼんなんだな〜。
<?php
$a = 0xff;
$b =& $a;
echo(printf("%p",$b));
?>
とかじゃー、出ないし・・・orz。
0190nobodyさん04/10/09 00:44:57ID:???
まだ参照をポインタだと勘違いしてるのか。
期待してるんだからもっと勉強しろよ。
0191nobodyさん04/10/09 00:47:07ID:???
ポインタアドレスをPHPで使う必要が皆無なので出来ません
0192nobodyさん04/10/09 00:50:51ID:???
もうちっと勉強できたらバカボンを名乗るのを認めてやろうぜ
0193nobodyさん04/10/09 01:42:07ID:???
PEARで使えるものって何かあります?
0194nobodyさん04/10/09 01:47:43ID:???
>>193
意味不明
0195nobodyさん04/10/09 01:55:11ID:???
素人は引っ込んでろ
0196nobodyさん04/10/09 02:01:22ID:???
>>193
引っ込んでろってさ。
0197nobodyさん04/10/09 02:02:07ID:???
>>189
引っ込んでろってさ。
0198nobodyさん04/10/09 02:24:49ID:???
自分で作りたくなくて、便利でオススメなモノだ
0199nobodyさん04/10/09 03:50:28ID:???
板違い
020019904/10/09 03:52:38ID:???
誤爆った
0201nobodyさん04/10/09 05:23:42ID:???
php4のクラスって5でもほとんどそのまま使えるんだね。
4のスタイルで書いた方が面倒くさくなくていいかも。
0202nobodyさん04/10/09 05:33:48ID:???
デリファレンスしたり@accessに気をつかったりスタティックなプロパティはメソッド
にもたせないといけなかったりオブジェクトは必ず変数にしまう必要があったり等々で
4のオブジェクトはめんどい。んでE_STRICTでとんでもないことに。
もちろん自分で使う分にはいいんだけど。
0203nobodyさん04/10/09 06:26:47ID:Iitzl1Oa
redhat9
apache2.0.52

php5.0.2をインストールしてapacheを再起動すると下記のようなエラーがでますが、
何のバージョンをあげればいいのでしょうか?
mod_php.cで20020628のファイルなんて見あたらないのですが・・・

-----------------------
# /usr/sbin/httpd -k restart
>httpd: module "/home2/Download/php-5.0.2/sapi/apache2handler/mod_php5.c" is not compatible with this version of Apache (found 200
>20628, need 20020903).
>Please contact the vendor for the correct version.
0204nobodyさん04/10/09 12:32:31ID:KzxQhnSE
質問です。

function hoge($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k) {
処理;
}

みたいな引数が多い自作関数てやめたほうがいいですか?
なんかごちゃごちゃして分かりにくいきがするのですが。
皆さんは自作関数の引数はどれくらい持たせるのでしょうか?
0205nobodyさん04/10/09 12:37:31ID:???
>>204
配列渡せば?
0206nobodyさん04/10/09 12:38:46ID:JKfj4SS6
処理によりけり。
てか、何故にそんなに引数いるねん。
多分どっか無駄があると思うで。
020720404/10/09 12:44:30ID:???
>>205
>>206

204の例はちょっと極端でした・・・
今までは引数が2,3こくらいしか扱ったことが無くて、
今回いきなり引数が6つくらいあるのです。
だからあまり多い引数の関数に慣れていないというか。
引数6つって普通でしょうか?
0208nobodyさん04/10/09 12:48:54ID:???
>>207
>>204がいいこと言った。
0209nobodyさん04/10/09 12:49:41ID:???
hogeってなんなんだろうか?
なんだかすごい響きが間抜けな気がするんだが。ホゲ!
0210nobodyさん04/10/09 13:19:41ID:???
Huge Over Gigantic Expletive
0211nobodyさん04/10/09 14:22:32ID:???
>>207
6つ全部が本当に必要なパラメータなら引数にとるしかない。
しかし引数が多い場合は大抵、関数の設計に問題がある。

関数の行数が長すぎたり、ひとつの関数のなかで複数の目的を
果たそうとしていたり、引数のフラグ値によって処理を切り替え
たりしていたら、危険信号。

少し古い本だが、「CODE COMPLETE」には引数はおおむね7個
以下に抑えるべきだと書いてある。
0212nobodyさん04/10/09 14:30:53ID:???
>>204
連想配列やデフォ値の設定をうまく使ったほうがいいんじゃないかい?
function rect($options)
{
.....
}
$options = array(
'color'=>'blue',
'width'=>60,
'height'=>100,
);
rect($options);
0213nobodyさん04/10/09 14:39:11ID:80FyrwRs
php で webアプリを作る時、ディレクトリ構成どうしてますか?
いつも最初悩むんです。

設定ファイルをどこに置くとか、設定ファイルやライブラリへのパスは相対パスにするか
絶対パスにするかとか include_path にいれちゃうとか。
smartyのテンプレートをどこに置くとか、compile_dir をどこにするとか。

レンタルサーバーで 全部public_htmlの中にいれなくてはいけなかったりとか
いろいろ環境によって違うので悩みます。

漏れはこうしてるぜ!ってのあったら教えてください。
021420304/10/09 14:57:11ID:Iitzl1Oa
誰かわかりませんか?
0215nobodyさん04/10/09 15:04:30ID:WliLpyVq
ttp://aavideo.s11.xrea.com/cgi-bin/aadb/select_form.cgi
こんな感じのPHPないでしょうか
■ このスレッドは過去ログ倉庫に格納されています