【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カテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
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
確かにこれが出来てしまうと
マルチポストも簡単に出来てしまう・・・
やっぱ無理か・・・・
0772nobodyさん
2006/10/21(土) 13:26:54ID:???0773nobodyさん
2006/10/21(土) 13:27:15ID:jCNqCJC6自サイトのPHPにPOSTされてきたデータを
PHPで処理させて他サイトへ
POSTデータと一緒にそのサイトへ
飛ばしたいと言ってるのだが
スレ違いなのか?
PHPで処理させてるのに?
0774nobodyさん
2006/10/21(土) 13:32:09ID:???0775nobodyさん
2006/10/21(土) 13:33:03ID:???○ header
0776nobodyさん
2006/10/21(土) 13:40:10ID:???HTTP_Requestとか使ってPOSTで受け取ったデータをそのまま渡して
POSTでリクエストするだけ
0777nobodyさん
2006/10/21(土) 13:50:58ID:jCNqCJC6やってみましたがダメっぽいです
>>776
HTTP_Requestってリクエストして
そのレスポンスを取得し表示する為に使ったり
PHPで簡易ブラウザを作るための物だと思ってたのですが
もうちょっと調べてみます
0778nobodyさん
2006/10/21(土) 13:52:21ID:???マニュアルにはこう書いてある。
http://us2.php.net/manual/ja/function.header.php
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Redirect the POST like this:
header("HTTP/1.0 307 Temporary redirect");
header("Location: https://myserver.redcetus.com/otherlocation");
~~~~~~~~~~~~
ただこれだと
> 自サイトのPHPにPOSTされてきたデータを
> PHPで処理させて他サイトへ
> POSTデータと一緒にそのサイトへ
これはできないと思う。
俺なら、formのhiddenに色々入れたHTMLをこしらえて
クライアントに投げ返して、そのHTMLに仕込んだJSで
自動的に即POSTさせようとするかな。
0779739
2006/10/21(土) 13:57:00ID:???Flash動画をHPにおきたいのですが負荷が心配です。
test.phpへアクセスあったら
test1.phpとtest2.phpに分けたいです。
test1.phpとtest2.phpは見た目まったく同じPで
動画のリンクが埋め込んでいるのですが、
リンク先のサーバーが違うということです。
ってかアクセス数で分けるなんて無理か
単純に2分することになりますかね
0780nobodyさん
2006/10/21(土) 13:58:19ID:???0781739
2006/10/21(土) 14:00:19ID:???初心者ですまそ。
0782nobodyさん
2006/10/21(土) 14:04:09ID:???0783nobodyさん
2006/10/21(土) 14:04:13ID:???test.phpが吐き出すHTMLに書いてある動画リンク先を二箇所にする、って
いうのは普通にできると思うけどね。
0784739
2006/10/21(土) 14:12:17ID:???なんか漠然としたイメージだと、
ばぁ〜っとアクセスがあって(test1.php)ある程度アクセス数が
例えば100件あったら、別ページ'(test2.php)に切り替わるみたいな
イメージだったんですが・・・普通に無理そうですね。
アクセス数っていうか接続数ってか。PHPのレベルとは関係ないか
0787nobodyさん
2006/10/21(土) 14:25:59ID:???大人しくそれ専用のシステムを鯖から作れ
0788739
2006/10/21(土) 14:35:30ID:???出直してきますわ。
0789nobodyさん
2006/10/21(土) 14:35:37ID:???同時アクセス数が一定数を超えたら、他の場所に分散した動画を参照させたいって事か?
PHPでアクセス時刻管理して、一定時間経過するまで接続していると見なすとかは
0790nobodyさん
2006/10/21(土) 14:59:39ID:???単純に埋め込む動画リンクの中身(aタグのリンク先)を
生成する際に任意に振り分ければいいだろ。
アクセス毎にサーバAとサーバBを交互に使うとか。
なんでそんな簡単なことすら自分で考えつかないんだお前は。ミジンコ以下の脳みそだな。
上記の説明でも理解できなければ、「ラウンドロビン」について調べまくれ。
で、それと同じ原理をスクリプトに仕込め。
0791nobodyさん
2006/10/21(土) 15:10:38ID:???最初からランダムで2サーバーに振り分けた方が確かに早いw
0792nobodyさん
2006/10/21(土) 15:53:04ID:jCNqCJC6やはりPHPだけでは無理そうですねぇ・・・
0793nobodyさん
2006/10/21(土) 15:55:28ID:???基本的にはクライアントのブラウザ自身に再送信させないといけないからな。
GETはURLがそのものだからLocationでブラウザに指定させることができるけど、
POSTの再送信指定は自動では厳しいだろう。
0795nobodyさん
2006/10/21(土) 16:05:30ID:???>>778の言う通り、ちょっとしたJSを仕込めば済む話だろ。
なんでPHP「だけ」にこだわるんだよ?
JSなどと組み合わせたほうがよっぽど効率的だ。
0797nobodyさん
2006/10/21(土) 16:48:52ID:???結果的に、半々に振られるんだから。
0798nobodyさん
2006/10/21(土) 16:54:22ID:???0799nobodyさん
2006/10/21(土) 17:02:04ID:???0800nobodyさん
2006/10/21(土) 22:00:50ID:???よくある大文字アルファベットと数字で構成された5*5のシリアルキーは
どう発行してどう正当性を確認してるのかね?
0801nobodyさん
2006/10/21(土) 22:11:59ID:???その結果が特定の桁の部分と一致するか、っていう
チェックサムやCRCの発展みたいな手法でしょ。
計算式やルールはそれぞれが好き勝手にやってると思うけど。
0802nobodyさん
2006/10/21(土) 23:18:46ID:???ありがとう。
0803nobodyさん
2006/10/21(土) 23:38:19ID:???curlだと思うけど。
そのへんのblogのトラックバック送信のところ調べてみ。POSTで送ってるところがあるはず。
今すぐ思いつくのがsnoopy
snoopyなら何も考えずに
snoopy->submit($URI, $formvars="", $formfiles="")
これで$URIへPOSTデータを飛ばせる。
PEARでもどうと機能があったと思うが、調べてない。
0804nobodyさん
2006/10/21(土) 23:50:16ID:???いやだから、それだと単にPOSTデータを飛ばすだけで、
ユーザのブラウザ画面はPOST先のページに移動しない、
って>>763は書いてるわけじゃない。
0805nobodyさん
2006/10/22(日) 01:09:59ID:???http://news.goo.ne.jp/news/rss/topics/geino/index.rdf
foreach ($gooRss as $item) {
var_dump($item->title());
}
これで拾えません。
$gooRss->title();
channel は拾えるんですが、ナゼでしょうか。
0806nobodyさん
2006/10/22(日) 01:18:11ID:???>>763はPHPの何たるかを分かっていない。JavaScript使えでFAだな
そもそもPOSTされたデータを持たせて他サイトに飛ばす必要があるって・・どんな場合だ?
0807nobodyさん
2006/10/22(日) 01:57:05ID:???0808nobodyさん
2006/10/22(日) 02:34:55ID:???0809nobodyさん
2006/10/22(日) 04:27:49ID:b7CANJCxmysqlデータベースにフィールド名が「name」で「一郎」、「二郎」、「三郎」、「四郎」、「五郎」、「六郎」の6レコードがあります。
それをPHPで読み込んで
<table>
<tr><td>一郎</td><td>二郎</td><td>三郎</td></tr>
<tr><td>四郎</td><td>五郎</td><td>六郎</td></tr>
</table>
とするのが目的です。
で質問の内容なんですが〜whileで繰り返し処理をする時、
<table>
<tr>
<?php do { ?>
<td><?php echo $row_record['name']; ?></td>
<?php } while ($row_record = mysql_fetch_assoc($record)); ?>
</tr>
</table>
とすると、
<tr><td>一郎</td><td>二郎</td><td>三郎</td><td>四郎</td><td>五郎</td><td>六郎</td></tr>
と横に一列になってしまい、また
<table>
<?php do { ?>
<tr>
<td><?php echo $row_record['name']; ?></td>
</tr>
<?php } while ($row_record = mysql_fetch_assoc($record)); ?>
</table>
とすると
<tr><td>一郎</td></tr>
〜
<tr><td>六郎</td></tr>
のように縦に一列になってしまいます。
目的のような結果になるよう表示させるには、どのような繰り返し処理を記述すればよいのでしょうか?
0810nobodyさん
2006/10/22(日) 04:30:23ID:???0811nobodyさん
2006/10/22(日) 05:16:39ID:???余りの数で折り返すのが良いと思います。
例の場合なら3列なのでレコード数を3で割って余りが0のときに</tr><tr>を入れる。
あとは例外処理だけ
0812809
2006/10/22(日) 07:25:20ID:b7CANJCx>>811
お答えいただき、ありがとうございます。
申し訳ないのですが、具体的にどのように記述すれば良いのでしょうか?
今まで調べていたのですが、どうにも分からなかったので再度質問です。
度々お手数をお掛けしますが、よろしくお願いします。
なお本日は限界な為、もう寝ます・・・。
お返事は起きてから致します。
0814nobodyさん
2006/10/22(日) 08:22:28ID:???ニートに金渡してやらせればニート問題も解決しねぇ?w
0815nobodyさん
2006/10/22(日) 08:27:36ID:???810か811でFAだけど、本当にわかってなさそうなので教えてみる。
<tr>
<?php
for ($i = 1; $row_record = mysql_fetch_assoc($record); $i ++) {
?>
<td><?php echo htmlspecialchars($row_record['name'])?></td>
<?php
if ($i % 3 == 0) {
?>
</tr>
0816815
2006/10/22(日) 08:28:49ID:???<tr>
<?php
}
}
?>
</tr>
0817nobodyさん
2006/10/22(日) 09:43:07ID:???そりゃ難しい話でもなんでもないぞ。
PHPがどうこうという話ですらない。
それ宿題でやってるの?
仕事としてやってるの?
前者なら、考えるのが仕事なんだから悩めばいいし、
学校で友達や先生にわかるまで聞きなー
後者なら、転職したほうがいいよ。会社辞めなー
0818nobodyさん
2006/10/22(日) 09:51:11ID:???つーか何のためにそんなことするんだ?
一列だろうと二列だろうと、レンダリング結果は一緒だろうが。
んで、>>817の言うように、それくらい自分で考えられないなら
氏んだほうがいいと思う。
0819nobodyさん
2006/10/22(日) 10:26:26ID:???1行と2行は大違いだろ。
0820nobodyさん
2006/10/22(日) 11:40:58ID:???こうしようぜ。
<tr>
<?php for ($i = 1; $row_record = mysql_fetch_assoc($record); $i ++) : ?>
<td><?php echo htmlspecialchars($row_record['name']); ?></td>
<?php if ($i % 3 == 0) : ?>
</tr>
<tr>
<?php endif; ?>
<?php endfor; ?>
</tr>
0821nobodyさん
2006/10/22(日) 12:09:44ID:BSjdszSlおすすめのPHP本を教えてくれ!
ハローワールドしかできない!
0823nobodyさん
2006/10/22(日) 12:21:48ID:BSjdszSlレッツって何?
0825824
2006/10/22(日) 12:25:40ID:???レス間違えたorz
0826nobodyさん
2006/10/22(日) 13:10:15ID:???0827nobodyさん
2006/10/22(日) 13:37:35ID:???なんか<?php 〜〜〜 ?>
が凄く多い気がするんですけど。皆さんも必要部?だけphpの記述をする感じですか?
私の場合、例のような感じですと<tr>なども全て出力させるのて
おおきく<?php で囲ってしまうのですがどうなのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています