【PHP】下らねぇ質問はID出して書き込みやがれ 98
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/09/18(土) 19:20:37ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 97
http://hibari.2ch.net/test/read.cgi/php/1279833891/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0525nobodyさん
2010/09/30(木) 08:24:37ID:???'-'で年月日を分けて、日がゼロだったら(以下略
だろうけど、きっと何でもあるPHPならもっと便利な関数があるに違いない。
俺は知らんけど。
0527518
2010/09/30(木) 12:44:25ID:Jf2uMKoj>>524
すみません。
スクリプトの名前を出したのは話を分かり易くする為のつもりでした。
勘ですがPHPの導入段階でミスを起こしている気がしていたのでここに書きました。
で、その勘は当たってたみたいでC:\Windowsにphp.iniを入れ忘れていたので
GD他ライブラリが読み込まれておらず、結果サムネイルが生成されてないっぽいです。
しかし、C:\Windowsにphp.iniを放り込むとスクリプトが上手く動作しなくなります。
スクリプトの拡張子をhtmlに変えたような、ソースが見える状態になってしまいます。
php.iniをC:\Windowsに入れなければ一応スクリプトは動きますので、
Apache側の設定は大丈夫だと思うのですがphp.iniの何処をチェックしたら良いでしょうか?
0528518
2010/09/30(木) 12:48:05ID:Jf2uMKoj使用しているphp.iniは同梱のphp.ini-developmentをベースに
ネット上の情報を参考にして書き換えたものですが、
php.ini-developmentをphp.iniにリネームして編集せずに
C:\Windowsに放り込んでも同じ現象が起きます。
0530nobodyさん
2010/09/30(木) 16:22:13ID:xlyY++2I今日作った料理は美味しくなかった
料理はイタリアンです。おいしくなるヒントを下さいレベル
エスパーしか答えられない
0531518
2010/09/30(木) 17:41:42ID:bBmLZhr9すみません。他にどんな情報があれば良いのか分からないんです。
初心者用の質問スレは無いんでしょうか?
0532nobodyさん
2010/09/30(木) 17:52:35ID:???残念ながら、>>518の質問は、「下らねぇ質問」じゃないんだよ。
同じ状況を現場で解決する能力のある人はこのスレにいっぱいいるけど、
それを2chのスレでのやりとりで解決するにはたいへんな手間がかかる。
>>530の例えじゃないけど、絵の描き方を電話で聞いてるようなものだ。
0533nobodyさん
2010/09/30(木) 17:58:19ID:???0534nobodyさん
2010/09/30(木) 18:01:54ID:???自分でつくったスクリプトじゃないと答える方も難しいかな
まずエラーがでないというのは、本当にエラーが無いからなのか
php.iniでエラーを抑制しているのか、スクリプトで@つけてるせいなのかわからない
gdについては、phpinfo()でGD Support が enabledになっているか確認して。
0536nobodyさん
2010/09/30(木) 18:26:15ID:???0537527
2010/09/30(木) 19:26:25ID:YkwDopQPありがとうございます。質問を変えます。
php.iniを指定するとスクリプトがHTML扱いされて中身が見えます。
ttp://imepita.jp/20100930/694720
スクリーンショットをうpしてみましたがこんな感じになります。
php.iniがないと普通に動作しますが、GDが読み込まれてない(phpinfoで表示されてない)ので
使いたいスクリプトでサムネイルが生成されません。
pathで指定されてるところにphp.iniが無い場合、どこから設定を読んでるんでしょうか?
それをベースに設定を変えていけば動かせそうな気がするんですが…
>>529さんの貼ってくれたサイトに従ってphp.ini、httpd.confを設定してみましたが状況は同じです。
0538527
2010/09/30(木) 19:27:27ID:YkwDopQPあと
×スクリプトがHTML扱いされて中身が見えます。
○スクリプトがHTML扱いされたように中身が見えます。
です。
0540nobodyさん
2010/09/30(木) 19:39:32ID:???0541527
2010/09/30(木) 20:04:52ID:YkwDopQP落としてきたスクリプトの一行目が「<?」だけだったので
「<?php」にしたら動きました…
ググってみたらPHP5はデフォルトでショートタグがオフなんですね。
ていうかショートタグなんて今初めて知りました(´;ω;`)
散々スレ汚して本当にすみませんでした。
こんなアホに付き合ってくれた方に本当に感謝です。
ありがとうございました。
0542nobodyさん
2010/09/30(木) 20:16:32ID:???0543nobodyさん
2010/09/30(木) 20:30:29ID:???捨ててしまえ
0544nobodyさん
2010/09/30(木) 20:31:59ID:???0545nobodyさん
2010/09/30(木) 21:16:21ID:xlyY++2Iあぁ おいらのコードは見られると穴だらけだなw
0547nobodyさん
2010/10/01(金) 00:55:26ID:???0548nobodyさん
2010/10/01(金) 01:22:52ID:???0549nobodyさん
2010/10/01(金) 01:23:42ID:???・ショートタグ
・文字コードがShift-JIS
・extract
・タグを閉じたり開いたり忙しい
・echo "{$var}";
・ファイルの先頭・要所にコメントがない、
あってもコード見たら分かる事しか書いてない(仕様を書かないと意味がない)
・1行がやたらと長い
・$_GETとか$_POST配列扱う時にisset使わず分岐したりしてる(警告出るちゅーねん!)
…書き出したらきりがないのでこのあたりにしておく
0551nobodyさん
2010/10/01(金) 01:44:11ID:???0552nobodyさん
2010/10/01(金) 01:48:55ID:???基本的に、関数(もしくは言語構造)の本来の意味を考えて使い分けてる、
”あるかどうか”を調べたいのならisset
”無いかどうか”を調べたいのならempty
$_GETとかで使うのはほぼ前者
0553nobodyさん
2010/10/01(金) 01:53:57ID:???isset($_GET['name'], $_GET['email'], $_GET['body']);のように複数渡せるからというのもある
0554nobodyさん
2010/10/01(金) 01:54:18ID:JW8iU96Hこれって
$hoge = $_GET['hoge'];
がだめっていってるんだよね?
$hoge = null;
if (isset($_GET['hoge'])) {
$hoge = $_GET['hoge'];
}
にしろってことだよね?
もしいっぱいあった場合ってすべての$_GET $_POSTに対してこの処理をするの?
10個ぐらいあるとだいぶ間抜けに見えそうなんだけど
なんかいい記述方法あるかな?
0555nobodyさん
2010/10/01(金) 01:56:53ID:???判断基準が全然違うので目的にあったものを使う
どちらも未定儀の変数に対する挙動は null の場合と同じ
is_null()
> var が null の場合に TRUE、 それ以外の場合に FALSE を返します。
empty()
> varが空でないか、0でない値であれば FALSE を返します。
>
> 次のような値は空であると考えられます。:
>
> * "" (空文字列)
> * 0 (0 は整数)
> * "0" (0は文字列)
> * NULL
> * FALSE
> * array() (空の配列)
> * var $var;(変数が宣言されているが、クラスの中で値が設定されていない)
0557nobodyさん
2010/10/01(金) 02:06:44ID:JW8iU96Hあとでよくマヌアルみてみる
ありがとう
0558nobodyさん
2010/10/01(金) 07:01:53ID:???0559nobodyさん
2010/10/01(金) 10:06:47ID:Jbi45SFJ$bar = preg_replace("/あ/","い",$bar);
}
$a = "あいうえお";
foo($a);
echo $a;
と書いたんですが、
あいうえお
と出力されてしまいます。
いいうえおに変換されるようにするにはどこが間違ってますでしょうか
0562nobodyさん
2010/10/01(金) 10:19:36ID:???+ function foo(&$bar){
0564nobodyさん
2010/10/01(金) 10:22:30ID:???0565nobodyさん
2010/10/01(金) 10:28:19ID:???preg_replace("/あ/u","い",$bar);
ってしないとうまく動かないかも。
0567nobodyさん
2010/10/01(金) 11:33:39ID:???0568nobodyさん
2010/10/01(金) 11:35:37ID:???0569nobodyさん
2010/10/01(金) 11:35:40ID:???0570nobodyさん
2010/10/01(金) 11:43:12ID:???return 'いいうえお';
}
$a = 'あいうえお';
echo foo($a);
0571nobodyさん
2010/10/01(金) 14:30:05ID:???0572nobodyさん
2010/10/01(金) 14:39:42ID:???0574nobodyさん
2010/10/01(金) 15:01:22ID:???その程度の認識だからPHPがゴミ扱いされるんだよ
0575nobodyさん
2010/10/01(金) 15:07:51ID:???そうじゃなくて、>>549-554の言うようにisset等でチェックする意味あるの?
$var=$_GET["var"] 等とした後に$varの内容を目的に応じてチェックするんじゃ
だめなの?
0576nobodyさん
2010/10/01(金) 15:26:09ID:???0577nobodyさん
2010/10/01(金) 15:36:01ID:???チェックしないと警告でるじゃん
てか、あらゆる入力(入力なしの場合も含む)を想定して
プログラムしないと、後々バグのすくつになる
0578nobodyさん
2010/10/01(金) 16:02:36ID:???error_reporting(E_ALL | E_STRICT);
を設定して、あらゆる操作で一切の警告が出ないことが前提条件
0579nobodyさん
2010/10/01(金) 16:12:42ID:???$_GET["var"]が存在しないとき、
$var=$_GET["var"]
とすると警告出る?記憶にないんだが。
0580nobodyさん
2010/10/01(金) 16:13:50ID:???設定次第
0581nobodyさん
2010/10/01(金) 16:16:28ID:???その場合代入できるわけないでしょ
0583nobodyさん
2010/10/01(金) 16:30:59ID:???E_ALLはphp4にもある
それに$var=$_GET["var"]これでエラーが出る設定は
E_NOTICEを出力する場合だからE_ALLだけで十分
5.3とか関係ないな
0584nobodyさん
2010/10/01(金) 16:39:55ID:???これって、つまり$_GET["var"]が存在しないのに評価しようとしてWarningが出るってこと?
配列だからエラーになるの?
$var=$a($aは未定義)の場合もエラーになるの?
0585nobodyさん
2010/10/01(金) 16:48:29ID:???0586nobodyさん
2010/10/01(金) 17:56:49ID:???先頭に
error_reporting(E_ALL);
つけてやればわかるだろ
まぁ予想通りの結果>>585になるが
0588nobodyさん
2010/10/01(金) 18:10:31ID:???0589nobodyさん
2010/10/01(金) 18:28:01ID:???0590nobodyさん
2010/10/01(金) 19:04:14ID:/wsXjKAq0593nobodyさん
2010/10/01(金) 19:44:38ID:???0594nobodyさん
2010/10/01(金) 19:48:17ID:???釣りとしか思えない
0598nobodyさん
2010/10/01(金) 20:17:46ID:???>>593は単純なprintもwhileで10回まわして表示するタイプ
0600nobodyさん
2010/10/01(金) 21:19:30ID:???>>599
スレに張り付きすぎ少しゆとりを持て
0601nobodyさん
2010/10/01(金) 21:21:30ID:???ってどんだけ単純な頭なんだよ
0602nobodyさん
2010/10/01(金) 21:55:01ID:???プロジェクトリーダーの理解 : Unicode修飾子が怪しくね?
アナリストのデザイン : 正規表現使うなカス
プログラマのコード : function foo($bar) { return 'いいうえお'; }
得られたサポート : 過去ログ10回読め
顧客が本当に必要だったもの : 参照渡し
0603nobodyさん
2010/10/01(金) 22:01:40ID:???0605nobodyさん
2010/10/01(金) 23:17:39ID:???スレ相応しいくだらないくだりを必死で考えたことは褒めてやろう
0606nobodyさん
2010/10/02(土) 00:20:26ID:2C+2SXQ6もうしばらくメンテナンスがされておりません。
それを使ってみたのですが、いくつか動かない個所を見つけました。
apacheのエラーログにエラーが残ってないので、スクリプトのエラー
はなくバグで動いていないかと思うのですが、こういったものの一般的な
デバッグはどのように行うのでしょうか?
PHPはほぼ初めてで、でバッギングツールがあるのかどうなのかもわかっていません。
0607nobodyさん
2010/10/02(土) 00:34:52ID:???0608nobodyさん
2010/10/02(土) 00:49:00ID:???デバッグはxdebugを使う
開発環境と連携するには
http://www.vkazoo.com/?p=260
0609nobodyさん
2010/10/02(土) 03:18:46ID:???設定次第でどこにでもエラーログを作れるので
必ずしもapacheのログにある訳ではない
あとそのオープンソースのって何?有名所のなら
ちゃんとコミュニティとかはあると思うけど・・・
>>608
別にxdebugじゃなくても良いけどな
デバッガなんて開発環境に合わせて選べば良いんじゃない?
0610nobodyさん
2010/10/02(土) 06:50:18ID:???ソース読めるならおかしいと思う辺りにデバッグ用のprint文とかを
入れてみるのが早い。
あぁ、PHP初めてでしたか
0611nobodyさん
2010/10/02(土) 11:36:38ID:???0612nobodyさん
2010/10/02(土) 11:45:41ID:???0613nobodyさん
2010/10/02(土) 11:57:15ID:???printはprint_rの書き間違いだと思うけど
0614nobodyさん
2010/10/02(土) 12:10:07ID:???0615nobodyさん
2010/10/02(土) 12:13:19ID:???たいていはprint_rでやってるけど
ログに書き込むときに便利だし
0616nobodyさん
2010/10/02(土) 12:42:53ID:???echo '<pre>';
var_dump($var);
echo '</pre>';
}
0617nobodyさん
2010/10/02(土) 13:36:21ID:???0618nobodyさん
2010/10/02(土) 14:34:56ID:???鯖で動かしていると無理だな
0619nobodyさん
2010/10/02(土) 14:59:48ID:???0620nobodyさん
2010/10/02(土) 16:05:29ID:???0621nobodyさん
2010/10/02(土) 17:36:19ID:???var_dumpかvar_exportで2番目の引数をtrueにする
0622nobodyさん
2010/10/02(土) 17:40:42ID:???某大手家電メーカの情報部はみんなprint_r使ってるぞ。
(みんなっちゅうか教育でそう教えられるのかも知れんが
何かあるごとにprint_rみせて print_rみせて って聞こえるし
「すみません。ココが動かないんですけど」って新人の問いに print_r使えばいい
って言ってる。
ちなみに今そこの会社の人間に
「PHPのバグではまった」ってメール送ったら
「print_rで見ればいい 」 っていわれた。
0623nobodyさん
2010/10/02(土) 18:00:31ID:???>「PHPのバグではまった」ってメール送ったら
矛盾してないか?
0624nobodyさん
2010/10/02(土) 18:12:17ID:???エラー文字列をDBに保存して見てるわ
■ このスレッドは過去ログ倉庫に格納されています