【PHP】下らねぇ質問はここに書き込みやがれ 34
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/12/08(金) 04:22:54ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
◆質問する時の注意
・ 自分の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
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0529nobodyさん
2006/12/13(水) 16:36:04ID:???返信ありがとうございます〜 勉強させて頂きました感謝です。
結論から言うと、
$this->_forward('IndexController', 'errorAction');
で、確かにページは出ました。 「<div>タグ」の中に;;
クライアント XMLHttpRequestを送信
↓
鯖 forwardで違うアクションのページを出力
↓
クライアント あ、戻り値?何? XMLHttpRequestでしょ? タグの中にinnerHTMLねw
戻り値が何であろうと、根こそぎjs上で指定された場所っぽいです
アクションは、途中で変わったので、正規アクションが動く前に処理できる所まで着ました。
もう少しの所まで来た気がします。
0530nobodyさん
2006/12/13(水) 16:36:09ID:+OBhpWUXどうするのが簡単でしょうか?
0532nobodyさん
2006/12/13(水) 17:04:00ID:???$str = preg_replace('/年|月/', '/', $str);
$str = preg_replace('/日/', '', $str);
echo $str;
0533nobodyさん
2006/12/13(水) 17:05:22ID:???したいんですけど、何か方法はないでしょうか?
0534nobodyさん
2006/12/13(水) 17:25:49ID:+OBhpWUXありがとうございました。
0535nobodyさん
2006/12/13(水) 17:28:41ID:???感覚的にこんなことがしたいのですがどうすればいいでしょうか?
$numには英数字が入っています
0536nobodyさん
2006/12/13(水) 17:35:20ID:???${"hoge".$num}
>>533
ディレクトリなめて
拡張子がそれらか比較
該当したらファイル削除
0537nobodyさん
2006/12/13(水) 17:37:15ID:dNCg3wG00538nobodyさん
2006/12/13(水) 17:41:09ID:F8GTcB6wを参考にwebサーバ上にあるtxtファイルをダウンロードさせたいのですが、
ダウンロードダイアログが開かず、普通にブラウザ上で中身が表示されてしまいます。
原因は何でしょうか?
0539nobodyさん
2006/12/13(水) 17:42:48ID:???0540nobodyさん
2006/12/13(水) 17:49:49ID:???0541nobodyさん
2006/12/13(水) 18:32:58ID:???やりたいことはアップロードされた.aiデータをswfをリアルタイム変換したいんですけど。
0542nobodyさん
2006/12/13(水) 18:51:42ID:???$url = "http://2ch.se/";
$fp = @fsockopen($url,80,$errno,$errstr,5) or die("ゴメン無理");
print $fp;
?>
なぜか表示されません原因は何でしょうか?
0543542
2006/12/13(水) 19:01:39ID:???目的のURLが表示されません
0544nobodyさん
2006/12/13(水) 19:02:52ID:???http://jp2.php.net/fsockopen
0545nobodyさん
2006/12/13(水) 19:11:59ID:???0546542
2006/12/13(水) 19:21:00ID:???$url = "http://2ch.se/";
$fp = @fsockopen("$url", 80, $errno, $errstr, 30) or die("ゴメン無理");
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: $url\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
これでも無理でした
0547nobodyさん
2006/12/13(水) 19:32:53ID:???0548542
2006/12/13(水) 19:58:14ID:???0549505
2006/12/13(水) 21:54:09ID:???本気で言ってるのか、ただ煽りたいだけなのか・・・
まず500のforの部分をforeach ($lines as $line)とでも書いたらどうよ。
しかもそのケースだったら、Iterator使っても意味なさすぎ。
0550542
2006/12/13(水) 22:06:51ID:???>>546でページを表示したときに出る
HTTP/1.0 200 OK content-type:text/html
という表示を消したいのですが
>>546のどこをどう変えればいいのでしょうか?
0552538
2006/12/13(水) 22:24:45ID:sfCDWF8Rkwsk
0553nobodyさん
2006/12/13(水) 22:24:59ID:???三項演算子が不便!?なにこのド素人。
お前一回くらいオープンソースで開発されてるアプリケーションの
ソース見てみろよ。自分がいかに恥ずかしいことを言ってるか気づ
くよ。
0555nobodyさん
2006/12/13(水) 22:31:28ID:???なるほど。それは知らなかった。
>どこのコーディング規約でもたいてい禁止されてる。
では早速、禁止されてる有名なプロジェクトあげてみてくれる?
0557nobodyさん
2006/12/13(水) 22:39:02ID:???なんて大したことないだろ。
大口をたたいたやつは、早く三項演算子禁止のプロジェクトをあげろよ。たいていは禁止らしいか
ら山ほどあるはずだろ。
0558nobodyさん
2006/12/13(水) 22:45:55ID:???三項演算子なんて一般的じゃないし、可読性が大事だからね。
0559nobodyさん
2006/12/13(水) 22:48:33ID:???>そもそも三項演算子も理解できない、読みにくいとか言うレベルの人間が参加してるプロジェクト
>なんて大したことないだろ。
何言ってるんだ・・・
個人的に理解できてても、読みなれてても、
複数人がらみのプロジェクトなら
読みやすいほうを採用するに決まってるだろう・・・
0560nobodyさん
2006/12/13(水) 22:48:42ID:???return $a[1] < $b[1] ? -1 : $a[1] > $b[1];
〜〜〜〜〜〜
これ何か意味あるの?
0561nobodyさん
2006/12/13(水) 22:51:28ID:???お前の言うこともわかる。たしかにforeachのほうが若干すっきりするしな。
でも、pythonとかjavaをやった人間には>>500のほうがしっくりくる気がする。
PHPにはPHPの流儀があるだろうから、それぞれ好きにやればいいんじゃないの?
0563nobodyさん
2006/12/13(水) 22:55:56ID:???順番を後ろから出力する載ってどうやったらいいでしょうか?
1〜10行までデータがあった場合、10行目から出力したいのです。
0564nobodyさん
2006/12/13(水) 23:00:14ID:???自分で調べろよ。
PGになればわかるからそういう会社入れ。
禁止っていうのは言い過ぎたかもしれんが、
よほどの事情がない限り使うなとは言われるだろう。
0565nobodyさん
2006/12/13(水) 23:02:56ID:???そのままコピペしたらいけたよ。
IEでもだめかい?
header出力するまえに何も出力ないよね?
>>550
それらの文字列なら出力しないようにすればどう?
もしくはfile_get_contents使えば?
0566nobodyさん
2006/12/13(水) 23:04:43ID:2BlCBXrB送信→Now loadingの画面→送信完了ページ
のようなプログラムがありますが、これはどうやっているのでしょうか?
構造のヒントだけでもいいので、アドバイスいただければと思います。
0567556
2006/12/13(水) 23:06:35ID:???>禁止っていうのは言い過ぎたかもしれん
潔いじゃん。負け惜しみを言うよりよっぽどカコイイな。
完全に見直した>>564=>>554=>>559。きつく言って悪かったな。
0574nobodyさん
2006/12/13(水) 23:56:39ID:???0575nobodyさん
2006/12/13(水) 23:57:08ID:???0577nobodyさん
2006/12/14(木) 00:07:49ID:???0578nobodyさん
2006/12/14(木) 00:18:53ID:???ん?PHPのIteratorはforeachでまわせるってことだよ。
Iteratorの5つのメソッドを明示的に呼び出す必要はないの。
明示的に呼び出すのは、イテレーションの途中で中断してもう一回再開したり、細かいことをするために使う面もあるが、Webサイトの構築でそんなシチュエーションには残念ながら出会ったことはない。
通常はforeachを用いておけば、rewindやcurrentなど、>>500と全く同じ順序で自動的に呼び出される。
pythonやjavaをやっていると>>500がしっくり来るってのは、よーわからんな。
C++のSTLと比較するなら、しっくりくるってのもまだわかるけど。
0580nobodyさん
2006/12/14(木) 00:35:34ID:???PHPは似たような関数を各種取り揃えてる辺りからも
そういったニーズに応えようとしてるわけだから、
「PHPの構文にある限りは好きなの使えばよろしい」
でFAなんでないの?
PHPならこの書き方!みたいのはそんなに無いと思う。
(大抵は制約くらいでしかそんな場面にならない)
0581nobodyさん
2006/12/14(木) 00:43:01ID:???それ俺が知らないと思って言ってるの?何を主張したいのか全然わからないんだけど・・・。
javaの拡張for文もやっていることはイテレーション(リスト状の構造を順番に走査)なわけで。
むしろ拡張for文(=構文糖)を使うってのは、PHPでいうとfor ($lines->rewind();・・・のかわりにforeach ($lines・・・を構文糖として使うことと方向が同じじゃないか。
>>580
いや、言いたいことはわかるけど、そもそも>>500で無意味にIteratorを持ち出している点、foreachで書けるものを無意味&煩雑なfor文に展開している点などは、俺的につっこみどころなんだが。
そもそも俺の経験上、PHPのIterator自体お勧めしないものの一つだしな。
0582nobodyさん
2006/12/14(木) 00:51:48ID:6QjdxOSQ変数に文字列を格納していて、その中から特定の文字を2箇所見つけて
その間にある文字列を取り出したいのですが、どのように記述したらよいのでしょうか?
nfai_usdgvga_jgmandfak_flahogek_glangol_ialgkka
のアンダーバーから次のアンダーバーの間を取り出し、その中にhogeが含まれる時に、
別の変数に取り出すということをしたいです。
突然の質問で、大変申し訳ありませんが何卒よろしくお願い致します。
0583nobodyさん
2006/12/14(木) 00:56:35ID:???0585nobodyさん
2006/12/14(木) 01:06:07ID:6QjdxOSQ0586nobodyさん
2006/12/14(木) 02:09:24ID:???大体、explode, implode, array_search, array_shift, foreach, eregとかで、答えが出る感じに思う。
と、徹夜中のリーマンより。
0587nobodyさん
2006/12/14(木) 04:08:49ID:???0588nobodyさん
2006/12/14(木) 10:09:59ID:???一度、全部読んでおくだけで十分
0589nobodyさん
2006/12/14(木) 10:22:37ID:???あとはリファレンスを見ればいいし。
0590500
2006/12/14(木) 10:38:40ID:???オレが変な書き方をしたせいで迷惑をかけてるようで申し訳ないです。
あとから拡張とか変更が楽かな?と思って、ついくせでIteratorを使ってし
まいました。でも、みなさんの書き込みを読んでるとその必要も無さそうな
のでこれからはforeachでまわすことにしようと思います。
煽りの原因をつくってしまってすいません。
0591nobodyさん
2006/12/14(木) 10:41:27ID:???たとえばループ処理系の構文(for等)は、
breakでループを抜けさせることができるようですが、
if構文内で、処理を途中でも抜けさせるような関数はありますか?
0592nobodyさん
2006/12/14(木) 10:58:49ID:???0593nobodyさん
2006/12/14(木) 10:58:53ID:???ないよ。なぜなら必要性がないから。
処理させたくないなら、単にif文をネストして処理する条件を
増やしていけばいい。
if ($a) {
if ($b) //ここで$bがfalseならbreak;したのと同じになる
{}
//もちろん$bの評価にかかわらずここは実行されるけど、それは
//書き方を工夫するしかない。
}
0594591
2006/12/14(木) 11:07:47ID:gRu0cvf6トンクス!
あぁ、なるほど。
若干書き方を変えるだけでどうにもなりますものね。
1個勉強になりました、ありがとうございます!
0595nobodyさん
2006/12/14(木) 11:13:10ID:???全て入力されているかどうかのチェックが入っています。
入力してなかった箇所は入力してくださいと出すのですが、
送信した際、入力してた方の値もリセットされるので、
inputのvalue属性に入力した値を入れて、入力を保持した感じにしているのですが、
入力値がバックスラッシュ(\)だった場合、
なぜかバックスラッシュが2倍の数になって値に入っているようです。
これは何が原因なのでしょうか?
0597nobodyさん
2006/12/14(木) 12:39:41ID:???0598nobodyさん
2006/12/14(木) 13:05:13ID:???phpのみでフォルダごとアップロードするのって不可能でしょうか?
javaアプレットあたりとからめる方法しか思いつかないですが・・。
0599nobodyさん
2006/12/14(木) 13:22:58ID:???それはブラウザ側の問題なのでPHPの処理では無理
input=fileの制限上無理
ありえるとすればzipを鯖で解凍してディレクトリ生成後その中に展開
0600nobodyさん
2006/12/14(木) 13:44:49ID:???単一のクライアントならクライアントのほうにFTPDを立てて、
サーバーからFTP接続してダウンロードさせるってのもトリッキーながら出来る。
0601nobodyさん
2006/12/14(木) 16:53:49ID:???関数を使って処理した方が覚えるにはいいですか?
0603nobodyさん
2006/12/14(木) 17:16:12ID:???for($i = 0; $i <= strlen($str); $i++) { echo substr($str, $i); }
とか。
0606nobodyさん
2006/12/14(木) 18:32:11ID:???0607nobodyさん
2006/12/14(木) 18:36:32ID:???____
/⌒ ⌒\ ホジホジ
/( ●) (●)\
/::::::⌒(__人__)⌒::::: \ <で?マルチバイトの文字数える時はどうやるのかな?
| mj |ー'´ |
\ 〈__ノ /
ノ ノ
0609nobodyさん
2006/12/14(木) 20:25:40ID:???new XXXみたいにしてから使う関数とかもあるのですが、
これは普通の関数とは何が違うのでしょうか?
0610nobodyさん
2006/12/14(木) 21:08:15ID:IgfNuu2kまたファイルに書き込みたいのですが、流れがわかりません。
現在のやりかたは、
1.file関数でファイルAを配列に読み込む
2.不必要なデータをunset関数で配列から削除
3.削除した後の配列をファイルBに書き込む
4.ファイルAをunlink関数で削除し、ファイルBの名前をrename関数でファイルAにする
というやり方を行っていますが、もっと効率の良いやり方がありましたらご教授お願いいたします。
【テキストファイルの内容】
一行目:あか
二行目:きいろ
三行目:ぴんく
四行目:むらさき
0612nobodyさん
2006/12/14(木) 21:25:01ID:???要らない部分は流さない。
最後までいって変数の内容を元のファイルに上書き。
じゃだめなのか?
0613nobodyさん
2006/12/14(木) 21:26:23ID:???$lines = file($filename);
//ここで余分な行削除
file_put_contents($filename, implode('', $lines));
// もしくは$fp = fopen($filename, 'w'); fwrite($fp, implode('', $lines)); fclose($fp);
0615610
2006/12/14(木) 21:52:13ID:IgfNuu2kphp4と互換性もたせるために>>613さんの後者の記述を拝借させていただきましたが、
implodeがないとファイルへの書込みがおかしくなってしまいます。
fwriteは複数行のデータ(多次元配列ですかね?)は書き込めないんですね。
0620nobodyさん
2006/12/14(木) 23:01:36ID:???0621nobodyさん
2006/12/14(木) 23:06:40ID:???0622nobodyさん
2006/12/14(木) 23:12:27ID:???見つかったら停学だがそのスリルがいい。
0623nobodyさん
2006/12/14(木) 23:16:39ID:???062427
2006/12/14(木) 23:33:48ID:???0625nobodyさん
2006/12/14(木) 23:40:37ID:???まずコンソールからmysqlのコマンド叩いて更新されるか確認したらいいよ。
つーか、エスケープはちゃんとできてるわけ?
0626nobodyさん
2006/12/15(金) 00:13:14ID:0FUvK34I0627nobodyさん
2006/12/15(金) 00:29:42ID:???このスレでまともな回答が得られるかどうか
世の中は間違いだらけだ
http://ya.maya.st/web/RTFM.html
0628nobodyさん
2006/12/15(金) 00:45:12ID:???mysql_query( 〜 ) or die(mysql_error();
でエラーでないか確認してみれ。
あと俺は確実に
mysql_query("update table_$t set col_$r = '".$q."' where col_1 = '".$max2."'");
な感じに書いてるよ、めんどいけどね
■ このスレッドは過去ログ倉庫に格納されています