【PHP】下らねぇ質問はID出して書き込みやがれ 83
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/04/06(月) 04:14:58ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0252nobodyさん
2009/04/11(土) 02:36:37ID:???ありがとうございました。
0253nobodyさん
2009/04/11(土) 02:55:15ID:???デフォルトで送る予定のContent-Type: text/http等は
決めうちで取得させるしかないですか?
0254nobodyさん
2009/04/11(土) 05:24:48ID:HAu5s/9P$_FILEのtypeは信用できないということを聞いたので、
別の方法で取得するようにしたのですが、
その他のname、size、errorなどは信用してもよいのでしょうか?
nameなどはエスケープ処理などする必要がありますか?
よろしくお願いします。
0256nobodyさん
2009/04/11(土) 06:24:24ID:???>1秒とか10秒とかの単位で時間がかかるような規模の試験をした方がいい。
そこまで両者に差が出るとは思えないし
そんな結果が出るまでやるとなるとメモリが足りなくなるでは?
できるならぜひベンチ結果をみてみたいが
というかそんな規模のものPHPじゃ作らないだろうし杞憂な気もするけど・・・
>>248
>count()っていうのはループ中に値が変わる可能性があるわけで
>バグによってループする回数が変わってしまう危険性
だいたいこういう処理は配列を1つずつ取り出す場合に使うのであって
対象の配列数が変わるような処理をやるほうがおかしいのでは?
具体的にどのようなことをするのか検討もつかないけど・・・
バグによってループ回数が変わるっていうのも意味不明
>>183もナイワと批判を書くのではなくて
外におけばPHPではパフォーマンスがあがるという注釈をつければここまで伸びなかった
0257nobodyさん
2009/04/11(土) 06:53:18ID:/nX8neeQこのあたりはドライバ依存ってことなんでしょうか?
http://jp.php.net/manual/ja/pdo.query.php
http://jp.php.net/manual/ja/pdo.exec.php
例外で処理するのか戻り値で処理するのか、イマイチわかりません。
とりあえず、今使ってるSQLiteでは戻り値で判断できるみたいですが、ちょっと不安だなぁと言うことで。
0260nobodyさん
2009/04/11(土) 07:18:25ID:???でたらめなSQL書いてqueryしても例外でないんですよ。
で、戻り値はfalse
ちなみに環境は PHP5.2.9 とWindows版にバンドル版されてるSQLite です。
0261nobodyさん
2009/04/11(土) 07:22:23ID:YDJbdlsq<?php
$a .= "あ"
. "い"
. "う"
;
$b .= "あ";
$b .= "い";
$b .= "う";
echo $a."<br><br>".$b;
?>
の結果は同じになると思いますが、
少し複雑に変数やループ処理を入れたときに、
なぜか$aの方の"あ"の部分が消えてしまいます。
しかし、$b方式だと成功します。
>少し複雑に変数やループ処理を入れたときに、
を詳しく説明したいのですが、コードが長く、
まとめるにも上手く伝える術が見つかりませんでした。
簡易に説明すると、
データを参照して、何ページかを判断して、
リンク付きのページ番号をずらっと表示させるようなプログラム部分になるのですが、
どうして$aではできないのに$bだとできるのか疑問に思いました。
何か心当たりありましたらよろしくお願いします。
0262nobodyさん
2009/04/11(土) 07:25:34ID:YDJbdlsqループ処理した$aを、
クラスの変数、private $a;
に格納していって、function get_a(){return $this->a;}
の、get_a()メソッドで参照したときに問題が起こりました。
phpは5.2.6です
0263nobodyさん
2009/04/11(土) 08:31:57ID:???0265nobodyさん
2009/04/11(土) 10:03:46ID:???だから、<?phpの後でいいんじゃね?
0266247
2009/04/11(土) 10:37:14ID:???単体でtest2.phpを動かすとログを出しますが、
メールを介して動かしてもログが吐き出されませんでした。
maillog
(delivered to command: /usr/bin/php /var/www/html/test2.php)
.forward
"| /usr/bin/php /var/www/html/test2.php"
test2.php
#!/usr/bin/php -q
<?php
error_log("テストエラー",0);
system("touch hoge");
?>
0267247
2009/04/11(土) 10:48:01ID:???・.forwardの中が間違っている。→/usr/bin/phpは存在する。
→/var/www/html/test2.phpでtest2.phpを
動かせる。
・パーミッションが間違っている。→.forwardを600 test2.phpを705or755
あと考えられる事象はなんでしょうか。
0269nobodyさん
2009/04/11(土) 11:32:38ID:???.forward
"| /usr/bin/php -q /var/www/html/test2.php"
にしてみ
0270nobodyさん
2009/04/11(土) 11:35:55ID:???"| /var/www/html/test2.php"
うちは、これで動くけど?
0271nobodyさん
2009/04/11(土) 11:59:26ID:???"| touch /tmp/hoge"
ってやってみて処理してるユーザ名を把握してはどうだろう
0272247
2009/04/11(土) 12:15:02ID:???ディストリというのは環境という意味でいいのかな?
PHP 5.0.4kfedoracore4です。
>>269
>>270
試してみました。
>>271
suxxxxxxxのユーザーの空ファイルとなりました。
……test2.phpはroot。……まさか。。。
0273261
2009/04/11(土) 12:15:24ID:YDJbdlsq自己解決しました。
実際は、
$a .= "あ"
. $i+1
. "う"
;
という風に、”い”の部分は計算式をいろいろと入れていたのですが、
その計算式を()でくくって
$a .= "あ"
. ($i+1)
. "う"
;
のようにしたら、できました。
0274247
2009/04/11(土) 12:23:05ID:???作成されたファイルhoge
-rw------- 1 suXXXXXXX suXXXXXX 0 4月 11 08:36 hoge
.forward
-rw------- 1 suXXXXXXX suXXXXXXX 20 4月 11 08:35 .forward
test2.php
-rwx---r-x 1 root root 112 4月 11 08:02 test2.php
ごく。
0275nobodyさん
2009/04/11(土) 12:35:09ID:jPW674z30276nobodyさん
2009/04/11(土) 12:43:26ID:???スーパーグローバルは使うけど
0277nobodyさん
2009/04/11(土) 13:12:41ID:???モジュールごと、クラスごとにテストを書かないといけないような、ややっこしいコードを作る時は避けた方がいい。
グローバル変数は使うべきではない、とされている。
これは、グローバル変数はどこでどう値が変えられるか分からないのが最大の理由。
ある時点でグローバルに何が入っているかは、プログラムの最初から最後まで全部読まないと分からない。
不具合発生時に原因を特定しづらいし、機能追加時などにどの時点でどの変数がどうなってるか分かりづらくなる。
いっぽう、一時変数は、その関数の中で生成され、その関数が終わったら消えるので、その関数の中だけ見れば値が分かる。
グローバルに依存しない関数は、同じ引数を渡せば同じ結果が常に返って来る。
プログラムのどこで呼ばれても(引数が同じならば)同じ結果が返る事が保証されているので、バグの原因を探しやすい。
0278247
2009/04/11(土) 14:11:26ID:???test2.phpまで届いてログが出るようになりました。
ですが、system("touch hoge")が実行されず
まだ空ファイルが作られない状態です。
0279nobodyさん
2009/04/11(土) 14:16:55ID:???カレントディレクトリを把握してはどうだろう。そしたらパーミッションを確認してと・・
0280247
2009/04/11(土) 14:38:11ID:???file_put_contents("/tmp/hoge.txt", realpath("."));
file_put_contents("/var/www/html/hoge.txt", realpath("."));
二つとも空ファイルを作成できました。
ただ肝心のシステム関数が実行されていません。
system("touch hoge");
0281nobodyさん
2009/04/11(土) 14:42:45ID:???>注意: セーフモード が有効な場合、 safe_mode_exec_dirの中にある実行プログラムのみ実行可能です。実際的な理由により、現在、実行プログラムへのパスに ..を含めることはできません。
0282nobodyさん
2009/04/11(土) 14:53:15ID:???chdir("/path/to");を先に書いておくか・・
0283247
2009/04/11(土) 15:06:27ID:???セーフモードは無効になっていました!
>>282
できた!
ようやく全て結合してDBも動きました。
ありがとうございます!
0284nobodyさん
2009/04/11(土) 15:29:01ID:???http://jp.php.net/manual/ja/pdo.error-handling.php
0285nobodyさん
2009/04/11(土) 15:57:01ID:???nameはクライアントの自己申告
move_uploaded_file() や header('Content-Disposition: attachment; filename=""') なんかに使う時は
使っていい・出力していいファイル名か審査する必要がある
sizeとerrorはPHPが決める値なのでそのまま使える
このあたりの処理は /main/rfc1867.c に書いてある
0287nobodyさん
2009/04/11(土) 16:16:03ID:/nX8neeQありがとう。なんで見逃してたんだろ。
すんません。
0288nobodyさん
2009/04/11(土) 16:20:58ID:6UsgbN52ImagePng($output_image);
とすれば画像を表示しますが、表示するんじゃなく、
imagemagickでexecコマンドで扱えるようにするにはどうすればいいんでしょうか?
$cmd = "convert -resize 80x80 {$output_image} ";
exec($cmd);
みたいな感じでファイルを保存せずImagePng($output_image);のように画像だけ表示したいのですが
0289nobodyさん
2009/04/11(土) 16:23:20ID:???http://jp.php.net/manual/ja/function.imagepng.php
0290nobodyさん
2009/04/11(土) 21:29:10ID:???これでいいかい?
// GD パート
$image = imagecreatefromjpeg('original.jpg');
ob_start();
imagejpeg($image);
$source = ob_get_clean();
// ImageMagick パート
$command = 'convert jpeg:- -resize 80x80 png:-';
$ds = array(0 => array('pipe', 'r'), 1 => array('pipe', 'w'));
$process = proc_open($command, $ds, $pipes);
fwrite($pipes[0], $source);
fclose($pipes[0]);
$dest = stream_get_contents($pipes[1]);
fclose($pipes[1]);
proc_close($process);
// 出力
header('Content-Type: image/png');
echo $dest;
0291nobodyさん
2009/04/11(土) 22:15:46ID:???まだ帰れず試せないのですがもどったらやってみてまた報告します。
0292nobodyさん
2009/04/11(土) 22:32:59ID:???こちらにて質問させて下さい。
FreeBSDにTeraTermで接続しコマンドラインから
php /home/my-account/www/Test.php
とすると正常に実行出来るのに
さくらインターネットのサーバコントロール画面からcronの実行コマンド項目に
上記命令をコピーして「送信」ボタンを押して時間を指定して実行しているのですが
まったく実行されません。
どうすればcronを実行させる事が出来ますか?
0293292
2009/04/11(土) 22:37:47ID:???0294nobodyさん
2009/04/11(土) 22:38:31ID:???telnet(ssh?)とか使えるんなら普通にcrontab -eで編集できるんちゃうん
0297nobodyさん
2009/04/12(日) 04:19:11ID:???0298nobodyさん
2009/04/12(日) 08:30:14ID:???if( ( $stdin=fopen('php://stdin','r') )==true ){
while( !feof($stdin) ){
$line = stripslashes( fgets($stdin,4096) );
error_log("$line",0);
}
fclose($stdin);
}
?>
受け取ったメールの編集をしたいのですが、
読み込んだメールをログに出力すると、文字化けしています。
0299nobodyさん
2009/04/12(日) 08:38:24ID:???0300nobodyさん
2009/04/12(日) 11:07:11ID:???ttp://www.itt-web.net/modules/xeblog/?action_xeblog_details=1&blog_id=314
0301nobodyさん
2009/04/12(日) 11:35:08ID:???0303nobodyさん
2009/04/12(日) 13:58:53ID:Vo0Yfswz0304nobodyさん
2009/04/12(日) 14:05:14ID:???0305nobodyさん
2009/04/12(日) 14:05:17ID:???つうか、初期設定が糞すぎるので書き換えた方が開発効率が良い。
PHPかApacheかに拡張モジュール入れる場合とかは書き換えざるを得ないしな。
0306nobodyさん
2009/04/12(日) 14:22:16ID:???0308nobodyさん
2009/04/12(日) 23:28:19ID:???if ($section = $abc::getObj($a))
{
処理
}
これは$abc::getObj($a)の返り値が$sectionに代入されたら
trueになるのでしょうか。
0309nobodyさん
2009/04/12(日) 23:32:47ID:???$abc::getObj($a)の返り値による。
false、null、0などが返ってきてたらif文はfalseになるので処理は行なわれない。
(この場合も、$sectionへの代入だけは行なわれる)
オブジェクトとか文字列とか0でない数字とか、trueと見なされるものが戻ってきてた場合はtrueになる。
何がtrueと見なされるかはマニュアル嫁
ttp://jp2.php.net/manual/ja/language.types.boolean.php
0310nobodyさん
2009/04/12(日) 23:34:38ID:???0311nobodyさん
2009/04/13(月) 00:05:31ID:???http://jp2.php.net/manual/ja/types.comparisons.php
0312nobodyさん
2009/04/13(月) 00:07:32ID:Yv15gfHG解決できません・・
何か原因の想像がつく方や改善方法を知ってる方は教えてください。お願いします。
0314312
2009/04/13(月) 00:22:05ID:Yv15gfHGドキュメントのインストールガイドとはなんですか?
0315nobodyさん
2009/04/13(月) 00:22:53ID:???apache1.3〜2.0ならapache.exe(だっけ?)
インストール先がc:\apache2.2\bin\httpd.exeであるなら
コマンドプロンプトでbinディレクトリまで移動して「httpd.exe -t」を入力
syntax okって表示されてればおk
されてれば設定ファイルを見直してみろ
linuxも↑と同じやり方
0316315
2009/04/13(月) 00:23:51ID:???明日起きたときまたくる
0317312
2009/04/13(月) 00:29:16ID:Yv15gfHGapache2.2です。
syntax okって表示されたところまでは行きましたがlocalhostのページは
ページ読み込みエラーで接続できませんでした・・
ちなみに「httpd.exe -t」の作業はどういったものなのでしょうか?
0321315
2009/04/13(月) 00:33:11ID:???じゃあ寝るからレスは期待するな
319は俺
0322nobodyさん
2009/04/13(月) 00:34:49ID:???0324nobodyさん
2009/04/13(月) 00:37:19ID:???0325312
2009/04/13(月) 00:48:08ID:???ping localhostってのをしてみたらよくわからない時間と統計が出てきました。
0326nobodyさん
2009/04/13(月) 01:03:57ID:???0327312
2009/04/13(月) 01:12:01ID:???スレ汚してすみませんでした。
0329312
2009/04/13(月) 01:34:25ID:???それでもせめて少しは頑張って、わからなくて・・
助けを願って期待してたんですけどね・・
0330nobodyさん
2009/04/13(月) 02:01:41ID:???0332nobodyさん
2009/04/13(月) 02:15:21ID:???まぁ自分で何とかするならいいけど
0333nobodyさん
2009/04/13(月) 02:21:59ID:???0335312
2009/04/13(月) 02:44:40ID:???phpを使いたくて、テキストに従って環境作ってたらApacheでつまづいたので・・
>>331
xamppってのちょっとやってみます・・
0336nobodyさん
2009/04/13(月) 02:44:48ID:???xamppバグだらけじゃん
0339312
2009/04/13(月) 02:59:44ID:???0340nobodyさん
2009/04/13(月) 03:05:13ID:???RPGツクーラーのためのPHP講座
http://phptkool.wordpress.com/
0341312
2009/04/13(月) 03:11:45ID:???0343312
2009/04/13(月) 03:38:33ID:???思いました。
0344nobodyさん
2009/04/13(月) 03:44:14ID:???xamppのインストールができたかどうかだよ!
そんなサイトの更新のことなんかきいてねえwww
0347nobodyさん
2009/04/13(月) 05:25:22ID:???xamppがインストールできたら、
MS-DOSプロンプト立ち上げて、
php -v
って打って、なんか出てくれば、
phpのインストールはできてる。
0349nobodyさん
2009/04/13(月) 10:22:38ID:???一応定番なので載せておく
俺が初心者にPHPを伝授する
http://pc11.2ch.net/test/read.cgi/php/1167984858/
0350nobodyさん
2009/04/13(月) 13:58:24ID:ypI4OeZj0351nobodyさん
2009/04/13(月) 13:59:39ID:???// ̄~`i ゝ `l |
/ / ,______ ,_____ ________ | | ____ TM
| | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>>
\ヽ、 |l | | | | | | | | ``( (. .| | | | ~~
`、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二=''
ヽヽ___// 日本
_____ _____ ______ _______
| ウェブ | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
._________________
|windows cron │・検索オプション
└────────────────┘・表示設定
| Google検索 | I'm Feeling Lucky | ・言語ツール
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
○ウェブ全体から検索 ◎日本語のページを検索
■ このスレッドは過去ログ倉庫に格納されています