【PHP】下らねぇ質問はここに書き込みやがれ 33
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/11/23(木) 00:27:02ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
【前スレ】
【PHP】下らねぇ質問はここに書き込みやがれ 32
http://pc8.2ch.net/test/read.cgi/php/1162818436/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc8.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0711nobodyさん
2006/12/02(土) 21:20:03ID:???エラーダイアログが出たw。そのままインストールが進んだけどPHPinfoで
インストールが正常に完了したのか確認できるんでしょうか?。
php.iniには追加されてたしapacheをリスタートしても平気みたいだから大丈夫かな。
0712nobodyさん
2006/12/02(土) 21:21:33ID:???0713nobodyさん
2006/12/02(土) 21:21:35ID:???0714nobodyさん
2006/12/02(土) 21:21:58ID:???while→DBからの取得やファイルからの読み込みなど読込先に依存するとき
って感じかな。
0716nobodyさん
2006/12/02(土) 21:24:01ID:???0717700
2006/12/02(土) 21:30:06ID:4l/VpbTLprintは奥が深いですね… 今はecho使ってるのでそのまま使っていく事にします。
forとwhileについては713,714を見てたらだんだん混乱してきました。
ゆっくり理解してみます。
マルチバイトの文字コードは苦手分野で、EUC-JPで書いてるときはpreg_matchする場合は毎回エンコードする必要があるのですかね。
そのあたりは実際にやってみて調べてみようと思います。
0718658
2006/12/02(土) 21:30:53ID:2AsRSHi/ありがとうございました。mysql_num_rows を教えていただいおかげで
ここのところ行き詰っていた部分が一挙に解決しました。
0719nobodyさん
2006/12/02(土) 21:54:59ID:???で,phpの側で自分の実行環境を自動認識させたいんだけど,どんな方法が良いのやら.
$_SERVER[SERVER_SOFTWARE]から分けるとかしか思い浮かばないんだけど,何か良い手があったら是非・・・
0720719
2006/12/02(土) 21:55:34ID:pNytI5640721nobodyさん
2006/12/02(土) 21:57:13ID:???0722nobodyさん
2006/12/02(土) 22:03:01ID:???0723nobodyさん
2006/12/02(土) 22:22:58ID:???開発環境にVMware入れて本番環境を構築。
Document rootをsambaでローカルマウントすると
開発も確認も楽だし、環境の違いも考えなくて済むよ。
メモリがたくさん欲しくなるけど。
0724nobodyさん
2006/12/02(土) 22:28:01ID:???0725nobodyさん
2006/12/02(土) 23:48:58ID:???0726nobodyさん
2006/12/03(日) 01:11:00ID:WgFKbMzxmkdir()使ったらエラーが出てうまくいきません。
いろいろ調べるとどうもsafe_modeが原因のようなので、offにしました。
そしたら上手くいきました。
サーバはVPSでして、よく考えたらアカウントを持ってるユーザは自分だけ(つまりrootしかいない)なので
safe_modeをonにする必要なんて無い・・・ですよね?
だからsafe_modeはこのままoffにしようと思いますが、何かセキュリティ的にまずい点ってありますか?
0727nobodyさん
2006/12/03(日) 01:14:13ID:???0728nobodyさん
2006/12/03(日) 01:41:31ID:???レン鯖業でも始めるのならsafe_modeは絶対にOnにすべきだが、
鯖をいじるユーザが自分だけならOffでいいと思う。
(もちろんサイトにアクセスしてくるユーザは不特定多数が存在しても良い)
あと細かい点は詳しい人ドゾー
0729nobodyさん
2006/12/03(日) 01:42:02ID:???買ってきた本ではPEAR::DBを解説してるけど、
他にもあるよと紹介されてる中ではPDOが将来性ありそうに感じる。
ちなみにPHP5.1.6、DBはMySQL5.0.24aを使ってます。
0730nobodyさん
2006/12/03(日) 02:13:28ID:???自分は使っているフレームワークの関係で未だにPEAR::DBを使っているけど、
今ならMDBかMDB2じゃなかろうか?
0732nobodyさん
2006/12/03(日) 02:36:32ID:ONXLMhLT貴重な情報サンクスです!わざわざ調べていただいて感謝感激です!
0733729
2006/12/03(日) 03:24:18ID:???ご意見ありがとうございます。
自分は「PEAR入門」片手に触り始めたばかりで
フレームワークとかサブクラス自作とかの域に達してないのですが、
参考にさせて頂きます。感謝。
0734nobodyさん
2006/12/03(日) 05:59:41ID:JsSZU6FP以下のページで多用されている、演算子の「=&」って、どういう意味があるのでしょうか?
ググッたのですが、特殊文字のため弾かれてしまいました。
こんな感じで使われています。
$this->request =& $request;
ttp://www.stackasterisk.jp/tech/php/phpMvc01_02.jsp
もし、ご存知の方いらっしゃいましたら、教えてください<(_ _)>
0735nobodyさん
2006/12/03(日) 06:56:16ID:???http://jp.php.net/manual/ja/language.variables.php#language.variables.basics
0736719
2006/12/03(日) 07:30:46ID:LdRYMBElレスありがとうございました.
とりあえず一番簡単そうな実装として>>723を確認したところ,
WindowsXPでPHP_OS==WINNT,Linux環境ではLinuxとなることを確認しました.
当面はこれでOKです.多謝.
0737734
2006/12/03(日) 07:49:42ID:JsSZU6FPあ、参照代入でしたか。 はずかしい。
ありがとうございました。
0738726
2006/12/03(日) 09:46:41ID:WgFKbMzxスクリプトを使って、動的に画像ファイルを読み込み、
適切なContent-TypeとContent-Lengthを吐き出しているとします。
このとき、あるA.htmに画像が100個(毎回変わらない)含まれているとして、
A.htmに毎回アクセスされるたびに同じ画像をサーバから再度送信し続けています。
(レスポンスヘッダを見るとHTTP/1.1 200 OKとなっています)
これだと帯域の無駄遣いなので、画像が更新されてなければブラウザにキャッシュされてる(?)画像を
使ってもらうようにして、サーバから配信しないようにさせたいのですが、
どうすればいいのでしょうか??
0739nobodyさん
2006/12/03(日) 09:46:46ID:???どうやったら通常のメールとして認識されるようになるんでしょうか?
メール送信元アドレスや、内容、題名など通常のメールとして届いたものを真似て送信しましたが
どれも迷惑メールになってしまいました。
0744726
2006/12/03(日) 16:49:48ID:WgFKbMzxありがとうございます。今から調べてみます。
>>742
そうなんですか! それは画像が多い場合に困っちゃいますね。
仮に静的な画像だとしてもそうなんですか?? でも、IEとかのデフォルトではそういう設定じゃない・・・のかな?
>>743
いえ、変動するパラメータは一切渡しておりません。
クエリストリングとして渡してるのは、毎回固定のファイル名だけです。
0745726
2006/12/03(日) 16:52:52ID:WgFKbMzx「固定のファイル名」と書きましたが、
より丁寧に言いますと「各ファイルごとに固有のファイル名」を、
img srcとして指定している画像呼び出しスクリプトにパラメータとして渡している・・・という感じです。
0746nobodyさん
2006/12/03(日) 16:53:39ID:U5thVNJ+Fatal error: Out of memory (allocated -600571904) (tried to allocate 10448508 bytes) in .../Documents/main.php on line 210
というエラーがでてしまいました。
でphp.ini の memory_limit を40Mにしたのですが、同じエラーがでてしまいます。
(php.iniを変更した後でもtried to allocate10448508 bytesと同じ数値がでます。)
どなたか対処法をお教えいただければと思うのですが。
よろしくお願いいたします。
0747nobodyさん
2006/12/03(日) 17:04:33ID:???つかAlloc600MBって強力だな
0748nobodyさん
2006/12/03(日) 17:05:11ID:???phpinfo()で実際の設定が反映されているかを確認。
違うphp.iniを見ているかも知れないので、同様にphpinfo()でphp.iniの場所も確認。
0749nobodyさん
2006/12/03(日) 17:08:19ID:???メモリの使用制限は関係ないんじゃないかと
0750nobodyさん
2006/12/03(日) 17:42:58ID:???mySQLにテーブルつくりたいんですが、DBコネクトエラーでできません・・・
詳しい導入方法が載ってるサイトあれば教えてください
0751nobodyさん
2006/12/03(日) 17:47:51ID:???0752nobodyさん
2006/12/03(日) 18:00:41ID:???> nySQL
なんだかすごくセキュリティに問題がありそうなDBだなww
格納したデータを次々バラまくとかww
0753nobodyさん
2006/12/03(日) 18:02:28ID:???0754753
2006/12/03(日) 19:02:58ID:???preg_split とか駆使して。
汚い。
で、UTF-8 がらみのところは解決したのですが、
punycode がらみのところをやってくれるライブラリってありませんか?
0755nobodyさん
2006/12/03(日) 19:07:09ID:U5thVNJ+ってことは、何が原因?
本体の実装メモリが足りないのかな?
0756753
2006/12/03(日) 23:07:56ID:???http://pecl.php.net/package-info.php?package=idn
でできるようです。
Debian GNU/Linux Etch で
apt-get install libidn11-dev
pecl install --force idn
あとは php.ini か conf.d/ あたりに extension = idn.so
と書いて、読み込まれていることを php -m で確認。
自分はロケールを LANG = ja_JP.UTF-8 にしてて PHP
のソースも utf-8 で書いているのでコードはこんな感じ。
$utf8="総務省";
$puny=idn_to_ascii($utf8);
$utf8=idn_to_utf8($puny);
0757nobodyさん
2006/12/04(月) 01:51:50ID:UgsNdO+/HTTPヘッダでキャッシュ・コントロールをすればいいかと思ったのですが、それを無視しちゃうプロキシもあるそうですね。
たとえば会員限定の秘密コンテンツなどはどうやったら安全確実に会員「だけ」に配信できるのでしょうか…
通信をすべてSSL化しちゃえばいいのかなとも思いましたが、
SSLって画像とかも暗号化されるのでしょうか…。
もし暗号化されるなら、キャッシュされても大丈夫ですよね??
0758nobodyさん
2006/12/04(月) 02:25:35ID:???パラメータ付けてるとブラウザはキャッシュ使わなくなるよ。
PATH_INFOとか使って普通のURLに見せかけるとかの処置が必要なんじゃないかな、多分。
0760745
2006/12/04(月) 02:55:34ID:???ttp://ml.php.gr.jp/pipermail/php-users/2006-June/029861.html
の記述を参考にして、
<img src=image.php?filename=xxxx.jpg>
などとしていたのを
<img src=image.php/xxxx.jpg>
に変えてみたのですが、それでもやはりブラウザ(IE、Firefox)はキャッシュしてくれませんでした。
したがって、同じ画像に二度目以降にアクセスするときに「If-Modified-Since」を送信してくれないため、
アクセスがあるたびに、毎回サーバは画像を送信し続けるハメになっています。
(つまり、応答コードは 304でなく、毎回200です)
0761745
2006/12/04(月) 03:27:21ID:???たとえば、ある画像のURLが
http://〜/abc.php?zzzz
だとキャッシュされませんが、
http://〜/abc?zzzz
だとキャッシュされてるみたいです。
ttp://ml.php.gr.jp/pipermail/php-users/2006-June/029861.html によると
「?」を使わなければ大丈夫・・・と書いてありますが、
実はそうではなくて、拡張子を使わなければ大丈夫・・・なんだと思います。たぶん。
となると、mod_rewriteですかね?
0762nobodyさん
2006/12/04(月) 04:17:47ID:???だから ユーザーがブラウザのキャッシュを使わない設定なら鯖側の意図は無意味
どうしても304吐きたいなら
#==================================
# HTTP Header 出力関数。
#==================================
function http_header($last_modified_logfile){
global $code,$siteurl;
$unixtime = filemtime("$last_modified_logfile");
$gmtime = gmdate( "D, d M Y H:i:s \G\M\T", $unixtime );
$etag = '"'.md5($gmtime).'"';
if (
( isset( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) && strtotime( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) >= $gmtime ) ||
( isset( $_SERVER['HTTP_IF_NONE_MATCH'] ) && stripcslashes( $_SERVER['HTTP_IF_NONE_MATCH'] ) == $etag )
) {
header("HTTP/1.1 304 Not Modified");
exit();
}else{
header("Content-Type: text/html; charset=$code");
header("Last-Modified: $gmtime");
header("ETag: $etag");
header("X-Powered-By: PHP/5.2.x");
header("X-Generator-Script: $siteurl");
header("X-2ch: http://pc8.2ch.net/php/ , http://pc8.2ch.net/mysv/");
}
}
0763745
2006/12/04(月) 10:41:23ID:???いえいえ、当方のIEはキャッシュを使う設定になってます。
あくまでもキャッシュを使う設定になってる場合の話をしております。
それと、提示してくださったソースは、http://blog.drry.jp/2005/01/26/2357のを参考にされてますよね?
僕もそれはググって見つけましたので。
ですが、Last-ModifiedとETagを付加しても、URLがhttp://〜/abc.php?zzzz のような形式の場合、
少なくともIEはキャッシュしませんでしたよ。したがって、次回のアクセスでIf-Modified-Sinceも送信されません。
0766nobodyさん
2006/12/04(月) 12:34:16ID:nyh8nms1ためしに、現在時刻を出すだけのスクリプトで試してみたら?
0767nobodyさん
2006/12/04(月) 14:01:52ID:???IE・FireFox・Opera、いずれの場合もキャッシュされず。
?を/や_などに変えてみてもダメだった。→>>765
ETag・Last-Modifiedの有無も関係ないようだ。
>>763にも書かれてるが、そもそもブラウザがIf-Modified-Sinceを送ってくれないので
>>762の方法では絶対に304を吐けない。
つまり問題なのは304の吐き方ではなくIf-Modified-Sinceの吐かせ方。
もちろん上記環境で、apacheが配ってくれる静的な画像はキャッシュされた。
0769nobodyさん
2006/12/04(月) 14:14:39ID:???>>766の指摘通り、?があってもキャッシュされるぞ。
ためしに以下にアクセスしてみるといい。
http://services.windowsmedia.com/cover/200/drf200/f268/f26820yhodf.jpg?locale=411
この画像に二度目以降アクセスするときはキャッシュが効いて、304が返ってくる。
0770nobodyさん
2006/12/04(月) 14:21:35ID:???0771nobodyさん
2006/12/04(月) 14:31:05ID:???0773nobodyさん
2006/12/04(月) 14:39:29ID:???画像の後ろに ?更新日時 とかパラメータつけてたのに、これじゃダメってこと?
0774nobodyさん
2006/12/04(月) 14:43:23ID:???>そもそもブラウザがIf-Modified-Sinceを送ってくれないので
念のため確認したいんだけど、If-None-Match を知っててその発言をしてる?
0775nobodyさん
2006/12/04(月) 14:52:19ID:???SSL通信ならば、プロキシサーバは内容を知ることができないので、大丈夫です。
内容を知ることができるのは、配信しているサーバと、最終的なクライアントのみです。
画像も https で始まるURLならば暗号化されてます。
0776nobodyさん
2006/12/04(月) 15:34:50ID:+NWA2rgN誰かヒントでもいいから教えてください…
単位がやばいんでw
問題は
php、htmlをつかって二次方程式を解くプログラムです!!
0777nobodyさん
2006/12/04(月) 15:36:01ID:???0778nobodyさん
2006/12/04(月) 15:41:43ID:???ネタか?
phpで二次方程式ってふざけてるとしか思えないんだけど
普通はWebプログ言語でやることじゃないだろ
あと、そんなプログラムあったら漏れも欲しいぞ
Vector探しても何処探しても、二次方程式を解けるプログラム(や電卓)なんてみたことない。
当てはめでおよその小数解だすようなのはいくらでもあるけど、分数式・虚数・無理数などを使った
数学的に正しい解を出すプログラムはマジでないぞ。
0779nobodyさん
2006/12/04(月) 15:47:46ID:+NWA2rgNでもうちの先生がつくれとかぬかしてて…
当てはめでおよその小数解だすようなのはいくらでもあるけど
↑
教えてください
0781776
2006/12/04(月) 15:52:57ID:+NWA2rgN0782nobodyさん
2006/12/04(月) 16:00:08ID:???0783nobodyさん
2006/12/04(月) 16:01:21ID:???0785767
2006/12/04(月) 16:02:59ID:???>>768、>>772 拡張子は関係ない。mod_rewriteで、見かけ上「.jpg」にしてみたが、やはりダメだったので。
>>773 結論としてはそれじゃダメ。>>769に示されたURLにアクセスして、HTTP通信をキャプチャしてみるといい。
>>774 ETag付けてもキャッシュされてないんだから、If-None-Matchは関係ない。(っていうかキャッシュされない=If-None-Matchもリクエストされてこない)
0786770,774
2006/12/04(月) 16:07:07ID:???まさか If-None-Match が付いてるのに「If-Modified-Sinceが付いてない」って騒いでるのかと思ったんだよww
「条件付きGET」とか言えよ
0787767
2006/12/04(月) 16:07:19ID:???上記に追記というか補足。
.jpgにしたうえ、?も使ってない。それでもキャッシュされず。
具体的には、hogehoge.com/images/filename.jpgにアクセスすると
mod_rewriteでhogehoge.com/img.php/filename.jpg にリダイレクトするようにしたが、
これでもキャッシュされず、アクセスすると毎回200応答になっちゃう。
0788778
2006/12/04(月) 16:07:39ID:???漏れは実は 『分数式・虚数・無理数などを使った数学的に正しい解を出すプログラム』 が欲しいわけだけど
これのURLを教えてくれたら効率的で高速なphpプログラム書いてやるけど、まぁ現時点ではいい加減なので勘弁してくれ。
「当てはめでおよその小数解だすようなの」 でいいんだよね
X^2 + X = 23 を解くなら、
for ($i = -100000; $i < 100000; $i += 0.00001) {
$d = $i * $i // phpでの2条処理は異常に遅いので
if ($d + $i >= 23 ) {
$result = $i;
break;
}
}
だ。
くだらん設問つくる教師にはこれで十分だろう
0791nobodyさん
2006/12/04(月) 16:14:46ID:???mod_rewriteじゃブラウザを騙せない、ってことじゃないのかそれ。
mod_rewriteだと最終的なURLがブラウザにも通知されちゃうから。
.jpgでPHPが呼び出されるように.htaccessいじってみたらどうよ?
0792789
2006/12/04(月) 16:20:16ID:???あ、かぶったww
>>791
騙せるよ。っていうかmod_rewriteってapacheの内部的な処理だから、
クライアント(ブラウザ)はリダイレクトされたことすら分からない。
>mod_rewriteだと最終的なURLがブラウザにも通知されちゃうから。
こんな大嘘、どこで覚えたんだか・・・www
0793nobodyさん
2006/12/04(月) 16:23:52ID:???http://72.14.235.104/search?q=cache:GxIjusYf5ZAJ:blog.dawgsdk.org/weblog/archives/411011+mod_rewrite%E3%80%80%E5%86%85%E9%83%A8%E5%87%A6%E7%90%86
0794nobodyさん
2006/12/04(月) 16:26:14ID:???>.jpgでPHPが呼び出されるように
アイタタタタタ・・・・・・
お前、それがまさにmod_rewriteの機能の一つだよ。
中途半端な知識で知ったかぶって大恥をかく典型例だな。
0795776
2006/12/04(月) 16:32:20ID:HUF4lLmFまじで感謝です。
親身になってくれてあざすm(__)m
0797nobodyさん
2006/12/04(月) 16:48:12ID:???つーかお前、自分で考えなきゃ宿題の意味がないだろう。
これが「ゆとり教育の結果 & 大学生の質の低下」ってヤツか・・・
0798nobodyさん
2006/12/04(月) 16:48:22ID:???とありますが、内部文字エンコーディングって何でしょうか?
0799nobodyさん
2006/12/04(月) 16:50:43ID:???いちいち煽るなよ。
0801nobodyさん
2006/12/04(月) 17:00:45ID:???呼んだぜ
まずは「phpで二次方程式を解く」といったプログラムで何を学ばせたいのか教えてくれないか
ついでに大学名と配属教えてくれ
0803800
2006/12/04(月) 17:18:21ID:???>まずは「phpで二次方程式を解く」といったプログラムで何を学ばせたいのか教えてくれないか
変数の取り扱いと演算子だ。
何か文句あんのか?
>ついでに大学名と配属教えてくれ
○○大学×学部だ
0804nobodyさん
2006/12/04(月) 17:28:49ID:???>>778より、正解を導き出すと、
当てはめでおよその小数解だすようなのはいくらでも書けるけど、分数式・虚数・無理数などを使った数学的に正しい解を出すプログラムは書けません。
と書いて提出しる!
0805nobodyさん
2006/12/04(月) 17:32:24ID:???0807nobodyさん
2006/12/04(月) 17:51:57ID:???> 分数式・虚数・無理数などを使った数学的に正しい解を出すプログラムは書けません。
書けないこともないとおもうけどね。
二次方程式なら因数分解もいらない (解の公式にいれりゃ確実に出る) んだから
人間と同じロジックで処理すりゃいい。
0808nobodyさん
2006/12/04(月) 18:30:01ID:???0809770,774
2006/12/04(月) 18:39:52ID:???If-Modified-Sinceヘッダに使う文字列で "D, d M Y H:i:s \G\M\T" こういうの使うのやめろよ。
DATE_RFC1123 があるだろ。
0810nobodyさん
2006/12/04(月) 18:46:40ID:???あとIF_MODIFIED_SINCEは実装上はエコーなんだから文字列として==でいいんじゃ
strtotimeじゃパースできない形式返す端末の問題もあるよね
■ このスレッドは過去ログ倉庫に格納されています