【PHP】下らねぇ質問はここに書き込みやがれ 30
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/10/05(木) 01:38:25ID:y1WWhz/pまず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0672658
2006/10/19(木) 09:55:25ID:???向いているか向いていないかを前提とした質問です。
あと、CGI=Perlです。CGIはPerl以外でもあるのは知ってますが、とりあえず。
それでなぜ>>658のような質問をしたのかというと、MTの場合、表示ページを
HTMLで書き出しますよね?PHPでもHTMLを書き出すことが出来ますが、
他のPHP型ブログを見てもだいたいはDBと連携してDB内を読む仕様なんです。
当然HTMLで書き出した方がSEO的にも良いし、複数ブログ作成の時も
1つのプログラムだけで複数のブログを作ることが出来るので、汎用性も高い。
そんなこんなを考えると、PHPで作る事でCGI(Perl)よりもメリットがあるのかな?
っと思った次第です。自分のPHP知識レベルも低いもので。。
0673nobodyさん
2006/10/19(木) 10:05:56ID:???向いてるか向いてないかなんて、
>>670で答えでてるじゃん。
>PHPはWeb特化という位置づけだけど、基本的にできることはほぼ同じ。
できることが同じということは、
同じ様にできる=どっちもどっちってことでしょ?
>>671も
>個人的意見で言えば特にPHPでやるメリットや特徴があるわけではないが、
>Perlと比べて遜色があるわけでもなく、どっちも同じ程度じゃないの?
と言っている。
>他のPHP型ブログを見てもだいたいはDBと連携してDB内を読む仕様なんです。
それは作ってる人が、そういう作り方のほうが慣れてたり、
そっちのほうが作者的にはいいと思ってるから、そういう設計にしてるだけ。
なぜPHPで作ってるかという最大の理由は、
あなたがPHPでCMS作ってるように、その人にとって得意言語だからなはず。
と、ここまでいっといてなんだけど、
Perlで作る最大のメリットは、Perlに対応してるサーバが圧倒的に多いこと。
0675nobodyさん
2006/10/19(木) 10:32:56ID:???> 当然HTMLで書き出した方がSEO的にも良いし、
そういう意味では、動的生成でも.htmlの拡張子が(設定次第で)使えるApacheモジュールの方が有利だよ。
.htmlの拡張子を使いつつ、静的書き出しと動的生成のどちらでも自由に選択ができる。
あと、1つのプログラムで複数blog生成の話は意味不明。
DBにデータを保持する方式でも作ろうと思えば簡単に複数対応できると思うけど。
動的生成もDB保持も単にユーザニーズの問題なだけじゃないの?
どっちもPerlだからとかPHPだからとかCGIだからとかいう問題じゃないでしょ。
唯一、SEO対策としての.html拡張子の件だけは、CGIでこれを動的生成にするような真似は
ふつーやらない、ってくらいかな。
でも昨今のgoogle辺りじゃ、拡張子はあまり区別しない傾向が強くなってきてると思うけどね。
パラメータ付加の有無くらいじゃないの?影響するのって。
0676nobodyさん
2006/10/19(木) 10:52:37ID:???動的表示ならPHPのがどう考えても軽いでしょ
phpじゃスタティックなHTMLは吐けないと思ってんのかな?
googlebotは以前は負荷を考慮して動的ページのクロール頻度は
控えめにしてたらしいけど
0677nobodyさん
2006/10/19(木) 11:39:16ID:???0678nobodyさん
2006/10/19(木) 12:00:54ID:???読む人を混乱させたのがわからないのだろうか?
それがわかっていて、それでもなお、「とりあえず」と、PerlのことをCGIと呼び続ける理由が理解できない。
0679nobodyさん
2006/10/19(木) 12:10:25ID:???0680nobodyさん
2006/10/19(木) 12:18:19ID:???PHP使いの俺には理解出来ない。一般的にはperl=cgiと思ってもいいんじゃねぇ?
0681nobodyさん
2006/10/19(木) 12:20:01ID:???0682nobodyさん
2006/10/19(木) 12:28:25ID:???マニュアルをちゃんと読んだことのある「PHP使い」は CGI≠Perl ってのが理解できるんだけど
読んだこと無い「PHP使い」は、「なんでいちいち聞くんだろう」と思うと。
けっこうマニュアルのさいしょのほうに書いてあるんだけどね
0683nobodyさん
2006/10/19(木) 12:32:56ID:???それに>>672の言い分からすると、実際はPerlかどうかは関係なくて、
本当にSAPIとCGIとでどっちがblog向きなのかを問うてるようにも思える。
あとblogを作成する際にRDBMSを用いるべきかどうか、だよね。
ただ、個人的意見を言わせてもらえれば、PerlでDBを使ってないのは
単に標準のPerlではDBにアクセスするのが面倒くさいでだからだと思う。
これが簡単ならPerlでだってDBにデータ突っ込んでるよ。
DBにデータを入れることと動的生成は全く関係ないことは質問者も分かってるよな?
・.html拡張子のまま動的生成もSAPIのPHPなら容易にできる
・静的HTMLへの吐き出しも出力バッファ関数を持つPHPの方が簡単
・安全確実なDBでのデータ保持もPHPなら簡単
Perlを選択するのは普及率と作成者の慣れ以外に理由はあまり無いと思う。
0684nobodyさん
2006/10/19(木) 12:40:24ID:JzmElHR8669の件です
DBの照合順序 を utf8_general_ci に設定することで解決できました。
0685nobodyさん
2006/10/19(木) 12:44:13ID:???考えは必ず入ってくるだろうね、設計する時に。だから静的書き出ししたくなる。
PHPのSAPIだったら設計する時にそういうのを気にする人はたぶん少ない。
だから動的に出すのが多いと。
0686nobodyさん
2006/10/19(木) 13:00:05ID:???メリットじゃなく単なる制約によるものだよね >CGI/Perl
0688nobodyさん
2006/10/19(木) 13:58:18ID:WNEBG+ggContent-Type: image/形式(jpeg等)
echo $file;
とやっても出来ません
0690nobodyさん
2006/10/19(木) 14:08:05ID:???とりあえずぐぐれや
http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-18,GGGL:ja&q=PHP+%E7%94%BB%E5%83%8F+%E8%A1%A8%E7%A4%BA
0691nobodyさん
2006/10/19(木) 18:04:54ID:RDYn6fyD文字コードは何で保存しておくべきでしょうか?
たいていの配布サイトを覗いてみたのですが、
明確にされておりませんでした。
それぞれの文字コードで別々に公開するのがベターでしょうか?
0692nobodyさん
2006/10/19(木) 18:17:27ID:???(個人的にはあまりすきじゃないんだが)
Unicode対応しておけば朝鮮人とか中国人にも使ってもらえるわけだしし。
0693nobodyさん
2006/10/19(木) 18:18:17ID:???マルチバイトが入るならUTF-8
0694nobodyさん
2006/10/19(木) 18:22:03ID:???0695nobodyさん
2006/10/19(木) 18:25:56ID:???0696nobodyさん
2006/10/19(木) 18:38:36ID:???中国人とか朝鮮人が大勢アクセスしてくるから損って言う意味?
それとも一文字三バイトだから、って話?
0697nobodyさん
2006/10/19(木) 18:40:24ID:???テキストの転送量が問題になるようなサーバなんてこの世にあるのか?w
0698nobodyさん
2006/10/19(木) 18:49:19ID:???2chはUTF-8じゃないけど転送量のことで閉鎖しかけたじゃん
それは確かgzipで解決したけど転送量が問題になることは無きにしも非ず
まぁ普通は気にしないか
0699nobodyさん
2006/10/19(木) 18:55:09ID:???たとえば、
ほげほげtoはげはげ で
to以前と以後を分けたいんです。
0702nobodyさん
2006/10/19(木) 19:32:05ID:???いろんな方にさわってもらいたいのでEUC-JPとShift-JSとUTF-8で
それぞれ用意して配布しようと思います。
0704nobodyさん
2006/10/19(木) 19:39:29ID:RDYn6fyDこのときデータを改ざんして、『名無し』『sage』『あああ』を書き換えることに対しては
対策されているかと思います。
hiddenから受け取ったデータをそのままログに書き込んでいるとは思えないのですが、
どのようにしてデータを受け渡して書き込んでいるか推測してください。
<form method=POST action="../test/bbs.cgi">
<input type=hidden name=subject value="">
<input TYPE=hidden NAME=FROM value="名無し">
<input TYPE=hidden NAME=mail value="sage">
<input type=hidden name=MESSAGE value="あああ">
</ul>
<input type=hidden name=bbs value=php>
<input type=hidden name=time value=1161249710>
<input type=hidden name=key value=1094842959>
<input type=hidden name="hana" value="mogera">
<input type=submit value="上記全てを承諾して書き込む" name="submit">
</form>
0705704
2006/10/19(木) 19:42:30ID:RDYn6fyD2chなのでperlスクリプトに埋め込まれたものですが、
phpとしてお考えいただけると助かります。
0706nobodyさん
2006/10/19(木) 19:45:08ID:D9BD7psJ$a = "ほげほげtoはげはげ";
$b = explode("to",$a);
$b[0]は、ほげほげ
$b[1]は、はげはげ
0710nobodyさん
2006/10/19(木) 20:26:38ID:???今はereg_replaceでァからォまで1行ずつ書いているんですけど・・
0711nobodyさん
2006/10/19(木) 20:54:24ID:???あっ片仮名か。
0712nobodyさん
2006/10/19(木) 20:56:06ID:N/IEl6YXそれでいいんじゃない
0714nobodyさん
2006/10/19(木) 21:26:43ID:RDYn6fyDなまえ
<input type="text" name="name">
<input type="submit">
</form>
上記のコードをブラウザから実行して、名前を入力した場合、
値は$_POST['name']でとれますが、
この値はクライアントに保存されているのでしょうか?
それともサーバに保存されているのでしょうか?
0715nobodyさん
2006/10/19(木) 21:28:35ID:???0716nobodyさん
2006/10/19(木) 21:29:31ID:???鏡を見ながら、おでこにマジックでメモッて保存してください。
0717nobodyさん
2006/10/19(木) 21:32:38ID:???0718nobodyさん
2006/10/19(木) 23:23:00ID:34r0Z/Nkレンタルサーバなんですが。
0719nobodyさん
2006/10/19(木) 23:30:54ID:???0720nobodyさん
2006/10/19(木) 23:42:58ID:???マニュアル嫁
http://www.php.net/manual/ja/install.pecl.php
「コンパイル」の意味がわからないならぐぐれ
0721nobodyさん
2006/10/20(金) 00:17:25ID:???うっぷんはここでさらせ
ttp://pc8.2ch.net/test/read.cgi/php/1158647441/l50
0722nobodyさん
2006/10/20(金) 06:29:42ID:nmqka2TX├□foo
└index.php
□はフォルダです。
index.php内に以下のようにしてもfoo内のファイル名の取得ができずに、
exampleフォルダ内のファイル名が取得されてしまいます。
どこが間違っているのでしょうか?
$dir = opendir("foo");
while(($fname = readdir($dir)) !== false){
〜〜
}
0724nobodyさん
2006/10/20(金) 10:18:01ID:???$x = (0.1 + 0.7) * 10;
echo $x."\n";
echo (int)$x."\n";
これを実行すると、
8
7
と表示されますが、なぜ最初に「8」が表示されるのか、理由がよくわかりません。
なぜでしょうか。
(例えばJavaScriptで同じ計算をすると「8」にはなりません)
0725nobodyさん
2006/10/20(金) 10:34:38ID:???0.8*10で8だとおかしいんでしょうか?
俺的には7が返ってくるほうが理由わかりません。
0726nobodyさん
2006/10/20(金) 11:27:42ID:???0727nobodyさん
2006/10/20(金) 11:36:13ID:???0.1とか0.7とかは正確に二進数浮動小数点では表現できないから誤差が出る。
PHPやPerlみたいに数値を文字でも表現するような言語では
そこで違った動きになるんじゃないかな。
0728722
2006/10/20(金) 11:58:57ID:+hAC6M3g>>723
フォルダの属性はexample、foo共に777ですができません。
0729nobodyさん
2006/10/20(金) 12:17:28ID:???727の言うように「誤差は出るものである」って点はもっともなんだけど、ちょっと気になったので計算してみた。
IEEEのdoubleのフォーマットに従えば、最初に出現する1の次から52ケタ保持できるはず。
0.1(10進) = 0. 0 0011 0011 0011 ... 0011 001 (2進)
0.7(10進) = 0. 1 0110 0110 0110 ... 0110 (2進)
これで素直に足し算すると、
0.1(10進) + 0.7(10進) = 0. 1 1111 1111 1111 ... 1111 (2進)
で、内部表現のレベルでは0.8(10進)と偶然ながら一致する。
ただ、10(10進) = 1010(2進)を掛け算したときに、おそらく
111. 1111 1111 1111 ... 1101 (2進)
になると思うんだけど(掛け算の実際のアルゴリズムはよく知らないので、筆算でやったorz)、これは8(10進)の値よりもわずかに小さい。
ちなみに当たり前だけど、8(10進) = 1000. 0000 0000 0000 ... (2進)になる。
たぶん724の質問の仕方からすると、すでに緻密に計算した上での釣りのようにも見えるが、一応エスパー以外の人にも検証してもらえるように、俺なりに書いてみた。
問題は、111. 1111 1111 1111 ... 1101 (2進)は8とは内部表現レベルで一致しないのに、なぜPHPのechoは8と表示できたのかってことかと思う。
(int)をつけると、いわゆるfloorになるので、7になるのは納得できるけど。
たしかprintfの%gは10進での小数点以下6ケタ程度で四捨五入っぽかった気がするので、その関係ではないかと想像。
0730729
2006/10/20(金) 12:19:05ID:???× 0.1(10進) + 0.7(10進) = 0. 1 1111 1111 1111 ... 1111 (2進)
○ 0.1(10進) + 0.7(10進) = 0. 1 1001 1001 1001 ... 1001 (2進)
0731nobodyさん
2006/10/20(金) 12:38:21ID:???へぇぇぇ、面白!! 勉強になるなあ。
どうもありがとう。
(しかし、、おれんちのmanでprintf(3)がひけないのはなんでだろう・・・)
0732nobodyさん
2006/10/20(金) 13:17:10ID:???0734nobodyさん
2006/10/20(金) 14:06:49ID:???.forwardやaliasesでメール受信からシェルスクリプトを自動起動して本文取り込み。
メール本文のマルチパートを分解→base64をデコードして画像ファイル取得。
サーバー設定がいじれなくてスクリプト自動起動が困難なら、
手動で任意、または数分おきに定期的にPOP3でメールを受信して以下同様。
0736nobodyさん
2006/10/20(金) 18:54:20ID:QYiDpVQJ0738nobodyさん
2006/10/20(金) 22:43:08ID:CXNhs/e2$FILE=fopen("〜〜","a+"); rewind($FILE);
とやってもうまくいきません。
どのような手段をとればよいのでしょうか。
お願いします。
0739nobodyさん
2006/10/20(金) 23:26:50ID:???たくさんアクセスがあった場合落ちる可能性を避けたいので
PHPでアクセス数によって振り分けたいのですが、
可能なのでしょうか、可能でしたら教えてください。
0740nobodyさん
2006/10/20(金) 23:36:47ID:???負荷を心配しているのに、高負荷時の対応のために、
さらに負荷かけてどうする・・・
Max Clientとか鯖のチューニングをすべ氏
0741nobodyさん
2006/10/20(金) 23:43:00ID:???0743nobodyさん
2006/10/21(土) 00:01:01ID:???追記できるのは末尾だけ。
$fp = fopen("テンポラリファイル", "w");
fwrite($fp, "文字列" . file_get_contents("元ファイル"));
fclose($fp);
unlink("元ファイル")
rename("テンポラリファイル", "元ファイル");
みたいに、1度別のファイルに追記内容+元ファイルで吐き出して
その後、元ファイルにリネームで被せてやるしかないかと。
0744nobodyさん
2006/10/21(土) 00:02:37ID:???そういうのはPHPでやらずに、ロードバランサーとかの外部の機器を使います。
そもそもWEBサーバーに到達しちゃってる時点で振り分けても遅いです。
0745743
2006/10/21(土) 00:04:58ID:VQhvLI4Xわかりました。
すばやい対応ありがとうございます!
0747nobodyさん
2006/10/21(土) 02:55:34ID:???0748nobodyさん
2006/10/21(土) 03:28:22ID:???動画送信するぶんの負荷は減らせるだろうな。
0749nobodyさん
2006/10/21(土) 03:44:16ID:???0750nobodyさん
2006/10/21(土) 08:09:33ID:???> PHPでアクセス数によって振り分けたいのですが、
個人向けのレンタルサーバーでたまに月間の転送量の上限が決まってると個
があったりするけど、例えば「概算80%ぐらい転送量消費したところで
動画を配信しないようにしたいんだけど」とかいうことではないのだろうか?
0751nobodyさん
2006/10/21(土) 09:23:10ID:???バカかお前は。
質問の仕方を知らない>>739に教えてやってんだよボケ。
>>741と同意見だ。
もしやお前が>>739かな? だとしたら顔洗って出直してこいよチンカス。
0752nobodyさん
2006/10/21(土) 09:29:07ID:???0753nobodyさん
2006/10/21(土) 09:33:17ID:???例のコピペ嵐のコピペをコピってくれるかな。
0755nobodyさん
2006/10/21(土) 10:32:51ID:???0757nobodyさん
2006/10/21(土) 11:21:23ID:???ありがとう。
0758nobodyさん
2006/10/21(土) 11:39:57ID:???ダブルクオーテーションで囲う、
なにも付けない。
3つの方法があるけど、どんな時にどの方法を取ればいいかっていう
ルール付けがうまく出来ません。
0760nobodyさん
2006/10/21(土) 12:02:12ID:???0761nobodyさん
2006/10/21(土) 12:18:23ID:???キーに変数使ってるならダブル。
それ以外はシングル。
何も付けないってのは数字?<それ連想配列じゃないと思う
define定数ならそりゃ括っちゃダメだよね。
Perlと違って、普通の文字をクオートしないのはPHPじゃ非推奨です。
0763nobodyさん
2006/10/21(土) 12:32:51ID:jCNqCJC6他サイトへPOSTデータと共に
移動させてやる事は可能ですか?
(JavaScript等使わずにPHPのみで)
0764nobodyさん
2006/10/21(土) 12:37:42ID:yrD6q3vzMETAで…と思ったらPOST限定なの?
0765nobodyさん
2006/10/21(土) 12:41:22ID:jCNqCJC6GETならLocationとか使えば可能なのですが
POST限定なのです
POSTされてきたデータを
外部POSTしてそのデータを取得する事はできるのですが
一緒に移動となるどうしたら良いのか解らず・・・
ただ、これが出来るといろいろ問題でそうだなぁーとも思いつつ・・・
0767nobodyさん
2006/10/21(土) 13:03:35ID:???0768nobodyさん
2006/10/21(土) 13:05:27ID:???0769nobodyさん
2006/10/21(土) 13:06:43ID:???業者ぽいw
0770nobodyさん
2006/10/21(土) 13:13:39ID:???それだとサイトでワンクッション置かれてしまう・・・
>>769
確かにこれが出来てしまうと
マルチポストも簡単に出来てしまう・・・
やっぱ無理か・・・・
■ このスレッドは過去ログ倉庫に格納されています