【PHP】下らねぇ質問はID出して書き込みやがれ 76
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/11/13(木) 04:15:32ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 75
http://pc11.2ch.net/test/read.cgi/php/1224168721/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0713nobodyさん
2008/11/28(金) 15:51:04ID:skXTPrJyありがとうございます。
よくわかりました。
>>712
なるほど、マニュアルに書いてあったんですね。
ありがとうございました
0714nobodyさん
2008/11/28(金) 21:21:59ID:fzzy5FaA0715nobodyさん
2008/11/28(金) 21:24:16ID:???ウェブで見てもエディタで見ても改行されて見えるからやがな
0716nobodyさん
2008/11/28(金) 21:35:12ID:fzzy5FaA意味がわかりませんが
0717nobodyさん
2008/11/28(金) 22:02:12ID:???<br>\n<br>\nってやれば
出力されるhtmlのソースは
<br>
<br>
という具合に改行されるが、
<br><br>とやれば
そのまま<br><br>と改行されずに出力される
ソースの見た目であってhtmlの見た目上は問題ない
0718nobodyさん
2008/11/28(金) 22:27:32ID:dY3rvFPa最強、定番のって、どれ?
自動スクリプトで5000通とか送信されて
ぶっこわれたりしない、対策がちゃんと考えられてるやつ。
0719nobodyさん
2008/11/28(金) 22:41:20ID:dY3rvFPaアホが作るとこういう悲惨なことになるから。
最初からちゃんと聞いたほうがいい。
0720nobodyさん
2008/11/28(金) 22:46:47ID:dY3rvFPaもしかして、サーバー側で
sendmailが停止されている場合、
メール送信フォームを設置しても
動かない可能性が高いのか?
0721nobodyさん
2008/11/28(金) 23:04:13ID:???0722nobodyさん
2008/11/28(金) 23:06:34ID:???コンパイル時にsendmailのパスを含んでないと駄目。
サーバ管理者がメール送らせたくないって思ってんだから諦めろ。
0723nobodyさん
2008/11/28(金) 23:10:48ID:HHS1We1tqmailとかで送れってか?
0724nobodyさん
2008/11/28(金) 23:37:30ID:???PHPにあるのはmail関数。
mail関数を使っても、送られてきた情報を
そのままアパッチのsendmailに丸投げするだけだけど。
0725nobodyさん
2008/11/28(金) 23:56:55ID:???0726nobodyさん
2008/11/29(土) 00:00:45ID:???sendmail_path = /usr/sbin/sendmail
と
SMTP = localhost
smtp_port = 25
っていう設定があるけど、mail関数を使った時は、sendmailコマンドに
送られるのかね、それとも、SMTPを直接叩いてくれるんだろうか
0728nobodyさん
2008/11/29(土) 01:35:49ID:???0729nobodyさん
2008/11/29(土) 01:52:20ID:Zwy93qXL0730nobodyさん
2008/11/29(土) 08:12:28ID:Q7h0AD5bやっぱりZendFWやPearの本に載ってるような簡単なサンプルじゃ
大量の送信とかでエラー起こすものなんですか?
0731nobodyさん
2008/11/29(土) 08:19:35ID:???0732nobodyさん
2008/11/29(土) 09:19:26ID:???その簡単なサンプルがどの程度のものか知らんが、
スパムメール配信システムでも作るの?
メールサーバーによっては同時配信数に制限をかけているものがあるから、
その最大数に合わせて分割配送とか独自のキューを実装する必要があるかもね。
Web経由でやるんなら、タイムアウトとかもケアするとか。
0733nobodyさん
2008/11/29(土) 09:20:37ID:???放置放置
0734nobodyさん
2008/11/29(土) 10:14:58ID:Q7h0AD5bいや、そんなの作る気ないよ>スパム
せっかくサーバ借りるからやってみようって好奇心だけなんだけど
変なものできてトラブりたくないから聞いてみた 気に障ったならごめんね
0735nobodyさん
2008/11/29(土) 14:10:37ID:???とかの or die の使い方がのっているマニュアル該当部分てありますか?
探したんですが、orじゃ検索できないしいまいち動作がはっきりしないので情報を探しています。
論理演算子の or と同じ意味でしょうか。
0737735
2008/11/29(土) 14:27:57ID:khza+QN5function test(){
print "in test()!!";
return true;
}
とか色々やってみてやっぱり演算子なんですね。
しかも、die以外もprintなら使えるけど、date()は使えない。
でも、自作関数使えるみたいで
test() and test();
は出来た。
dateは駄目で、自作関数は駄目って基準が分からないw
0738nobodyさん
2008/11/29(土) 14:29:57ID:???0739nobodyさん
2008/11/29(土) 14:37:15ID:???式を評価する優先度と順番の問題。
A or B
でAがtrueならBは評価しない。だから、Aがfalseの時にしたい処理をBに書く。
C and Dで
CがfalseならDは評価しない。
0740nobodyさん
2008/11/29(土) 14:43:38ID:???737のはどちらも実行されますよ。
その上でprintと自作関数は実行されるのに、dateとかは駄目というのが現在の疑問です。
>>738
論理演算子
http://www.php.net/manual/ja/language.operators.logical.php
は読んだんですが・・。
ここまで書いて、booleanを返さないといけないということに気づきました。
ありがとうございました。
0741735
2008/11/29(土) 14:48:51ID:khza+QN5dateに限ってはprintを実行してなかっただけという orz
test() or print(date("Y"));
function test(){
print "in test()!!";
return false;
}
function test2(){
print "in test()!!";
//return false;
}
0742nobodyさん
2008/11/29(土) 14:51:43ID:???function testがtrue返してんだから、
test() and test()
は、最初がtrueだから、次をチェックしにいくんだから、両方実行されて当然でしょ。
仮にtestでfalse返してみなよ
test() and test()は1度しか実行されないから
0743745
2008/11/29(土) 14:52:05ID:???だらだらと書きましたが、誰かの参考になれば幸いです。
test() or ($test = date("Y"));
print $test;
function test(){
print "in test()!!";
return false;
}
とかやって、エラーフラグを変数に代入していけば、一個ずつif書くよりいいかもとか思いました。
0744nobodyさん
2008/11/29(土) 14:52:19ID:???0745nobodyさん
2008/11/29(土) 14:52:27ID:???perlのほうで調べてみ
0746nobodyさん
2008/11/29(土) 14:53:07ID:???0747735
2008/11/29(土) 14:54:31ID:khza+QN5えーと、そこは意図してそのような動作に・・。
既に書きましたが、test() or の後にdie以外を見たことが無かったので試していたら混乱したということです。
結果的には普通に何でも出来ますね。
アドバイス頂きありがとうございました。
0749735
2008/11/29(土) 15:01:17ID:khza+QN5なるほどそのあたりも漏れてました。
しかし、>>741のtest2()で試したところ返り値があるかないかは、論理演算子の右辺は関係ないかと。
>>745
情報ありがとうございます。
perl絡みで調べてみます。
どうもこの構文はPHPとしては唐突でしっくりこなかったんですが、そういう経緯もあるんですね。
0750735
2008/11/29(土) 15:02:35ID:khza+QN5ここってくだ質じゃないんですか?
何か勘違いしていたらすいませんw
0751nobodyさん
2008/11/29(土) 15:07:41ID:???いい加減にしてくれ
0752nobodyさん
2008/11/29(土) 15:20:06ID:???構文のパースに過ぎないんだから。
チューリングマシンの基礎だな。
> 論理演算子の右辺は関係ないかと。
そう書く気持ちはわかるが、そういう考えでは本質は理解できんよ。
0753nobodyさん
2008/11/29(土) 15:28:41ID:???0754735
2008/11/29(土) 15:34:46ID:khza+QN5個人的には基礎が足りないというのは理解しております。。
もしよろしければですが、どういうアプローチをしたら右辺の意味について理解できるでしょうか?
0755nobodyさん
2008/11/29(土) 15:57:48ID:Q7h0AD5b「まあ答えてやるか」って人間がいる限り、そういう書き込みが一番空気悪くする
いやなら答えなきゃいいし見なきゃいいだけだと思うが
0756nobodyさん
2008/11/29(土) 16:27:03ID:yRFYIZ4c・式だけでも正しい構文
・PHP では and/or は短絡評価
・functionはreturn文が実行されなかったときはNULLを返す
バージョンによる違いは調べてません。
0757nobodyさん
2008/11/29(土) 17:19:53ID:N9fdCVij単体の値を抜き出せるのに、Zend_Db_Table使うと、
結局イテレータで出てきちゃうので、
$row->カラム名
ってしないと値が取り出せず、面倒な気がするんですけど・・・。
何か良い解決方法があったら教えてください。
0758nobodyさん
2008/11/29(土) 17:30:09ID:???0759735
2008/11/29(土) 17:30:45ID:khza+QN5ありがとうございます。
・式だけでも正しい構文
というのは計算式だけでもOKって事でしょうか?
自作関数だけでもnullが返ってるんですね。勉強になりました。
たしかにvar_dumpで見たらnullが返ってました。
これもざっと見るとマニュアルに書いてないような・・。
やっぱりorの両辺は返り値(何らかの値)が無ければ駄目って事かな・・。
0760nobodyさん
2008/11/29(土) 18:44:16ID:???論理演算子で解釈できるようなものならOK
基本、関数ならいいけど命令ならダメ。
右辺なら関係ないとかやめてね
test1() or test2() or test3()
こういうことも可能なわけで、右辺はいつでも左辺になる可能性がある。
test() or echo "error";とかダメだから
0761nobodyさん
2008/11/29(土) 18:55:54ID:yRFYIZ4c0762nobodyさん
2008/11/29(土) 18:57:37ID:???0763nobodyさん
2008/11/29(土) 19:02:02ID:???0764nobodyさん
2008/11/29(土) 19:04:04ID:???0765nobodyさん
2008/11/29(土) 20:05:02ID:dnGnExVM自分に渡された引数が自分自身(同じインスタンス)かどうかを調べるには
どうすればいいですか?
===は、ちょっと違いますよね?
0766nobodyさん
2008/11/29(土) 20:06:02ID:???なんで?
0767nobodyさん
2008/11/29(土) 20:19:38ID:???まぁ、省略したらphp5ってことで桶てなら、>>1のテンプレに加えた方がいいかも。
0768nobodyさん
2008/11/29(土) 20:35:59ID:yRFYIZ4c「先にいえボケ」って言えばいいんだよ。
0769nobodyさん
2008/11/29(土) 22:44:20ID:oQuyl2Tg===は、値と型の同一性チェックで、
オブジェクトが自分自身の場合のチェックには使えないのでは?
0770nobodyさん
2008/11/29(土) 22:45:12ID:???0772nobodyさん
2008/11/29(土) 22:58:17ID:???マニュアルの「PHP 5におけるオブジェクトの比較」読みました?
===はインスタンスの同一性チェックって書いてない?
0774nobodyさん
2008/11/30(日) 22:01:17ID:l1FWuDL6CSVは一つ一つデータを検索する必要がありますが、XMLだとどうなんですか?
XMLの方がデータ検索は高速になるんでしょうか?
mysqlはナシで
0775nobodyさん
2008/11/30(日) 22:05:26ID:???0776nobodyさん
2008/11/30(日) 22:25:19ID:???関数が実装されてるかどうかの違いじゃないの。
0777nobodyさん
2008/11/30(日) 22:48:33ID:???試してみればいい。そして結果をここに報告すればみんな幸せ。
0778nobodyさん
2008/11/30(日) 23:11:39ID:???イメージではパースする分XMLの方が遅い
0779nobodyさん
2008/12/01(月) 02:35:22ID:L8HEfjQ3下手くそなプログラムが災いして暴走し出した場合、これを止めるにはどうしたらいいと思う?
たとえば誤って無限ループを入れてしまったりした場合とか。
0780nobodyさん
2008/12/01(月) 02:39:01ID:???0781nobodyさん
2008/12/01(月) 03:10:28ID:???0782nobodyさん
2008/12/01(月) 12:02:32ID:qgihvL7P日がたつとIPからホスト名への変換は正しくできるのか疑問でして
たとえば11/1に121.32.2.1というOCNのIPがあったとします。
そのIPを12/1にホスト名変換したときにOCNとして取得できるのでしょうか?
IPとホスト名は両方ログに書き込んだほうがいいですか?
0784nobodyさん
2008/12/01(月) 12:09:17ID:???0785nobodyさん
2008/12/01(月) 12:12:39ID:???ホスト変換に時間が掛かる。俺もログに書込む時はIPアドレスだけにして、
cronで、ホスト変換するプログラムを書いている。
そのプログラム分けて上げても良いけど、20万円でどう?期間は無制限でいい。
0786nobodyさん
2008/12/01(月) 12:14:18ID:???0787nobodyさん
2008/12/01(月) 12:14:56ID:???0788nobodyさん
2008/12/01(月) 12:16:16ID:???0789nobodyさん
2008/12/01(月) 12:16:29ID:???0790nobodyさん
2008/12/01(月) 12:18:49ID:qgihvL7Pホスト名でu1.p102.tokyo..setagaya.OCN.jpみたいに取得しておけたら
ピンポイントで規制できると考えてます。
プロバイダへ接続の度にIPが変わる所もあるのですが、そうアクセス拒否する機会もそんなにないとは思うのですが
規制する時になったときのことを考えてどうしたらいいのかわかりません。
ちなみにcronは使えません。
0791nobodyさん
2008/12/01(月) 12:21:59ID:???0792nobodyさん
2008/12/01(月) 12:23:23ID:qgihvL7Pネタは情報発信系です
0795nobodyさん
2008/12/01(月) 12:32:42ID:L8HEfjQ3>>781
どうも(・ω・)ノシ
つまりレン鯖のユーザーとしては一度暴走を許してしまったプログラムに関しては
鯖管が見つけて止めてくれるまでどうしようもないということでok?
0796nobodyさん
2008/12/01(月) 12:33:46ID:qgihvL7P>>785さんのプログラムだと私のサーバではcronが使えないのです
ホスト名で取得することにします
どうもありがとうございました
0798nobodyさん
2008/12/01(月) 12:39:31ID:???0799798
2008/12/01(月) 12:40:28ID:???ネットワークプログラミングってむずかしいね
0800nobodyさん
2008/12/01(月) 12:52:20ID:L8HEfjQ3シグナルアラーム( ´・ω・)?
0801nobodyさん
2008/12/01(月) 12:52:55ID:???0802 ̄ ̄ ̄ ̄ ̄)/ ̄ ̄ ̄ ̄ ̄ ̄ ̄
2008/12/01(月) 12:58:29ID:???/ ^ ω^j、
_, ‐'´ \ / `ー、_
/ ' ̄`Y´ ̄`Y´ ̄`レ⌒ヽ
{ 、 ノ、 | _,,ム,_ ノl
'い ヾ`ー〜'´ ̄__っ八 ノ
\ヽ、 ー / ー 〉
\ \`ヽ-‐'´ ̄`冖ー-く
|| \ \ \ ∧_∧
|| \ \ \ ( ´Д`) オイ、なんか変なのがいるぞ
|| \ \ \ / ヽ
|| \ \ / | | |
|| \ \∧_∧ (⌒\|__/ /
ヽ( )絶対目合わせるな ∧_∧
/ く \ ( ) うわー、なんか言ってるよ
| \ \/ ヽ
0803nobodyさん
2008/12/01(月) 13:22:43ID:???0804nobodyさん
2008/12/01(月) 13:24:10ID:???0805nobodyさん
2008/12/01(月) 15:04:18ID:YUzphIUVこれってphpでどうやってんですか?
0806nobodyさん
2008/12/01(月) 15:37:34ID:L8HEfjQ3> >>795シグナルアラーム使えば?
signal()
alarm()
に関してもう少しkwsk・・・
0807nobodyさん
2008/12/01(月) 17:55:32ID:???PHPの実行は停止されるよ。
ignore_user_abort() とか調べてね。
0808nobodyさん
2008/12/01(月) 18:11:17ID:L8HEfjQ3それだとwhile(ture)ループや、一度始めると時間がかかる処理を途中で停止させることはできないよね?
0809nobodyさん
2008/12/01(月) 18:41:30ID:???PHP内部の処理なら、ループの中だろうとなんだろうと接続断で死ぬ。
外部コマンドをコンソールを切り離して(1>&2 > /dev/nullとかで)実行してたなら
そいつは生き残るはず。
0810nobodyさん
2008/12/01(月) 18:47:06ID:L8HEfjQ3> PHP内部の処理なら、ループの中だろうとなんだろうと接続断で死ぬ。
え?そういう仕様だったの?
> 外部コマンドをコンソールを切り離して(1>&2 > /dev/nullとかで)実行してたなら
> そいつは生き残るはず。
一度プログラムが呼び出されればユーザーがいなくても処理を続行させる方法と、
そうやって一度動か始めたプログラムを途中で好きなタイミングで停止させる方法を
解説してくれたサイトってない(´・ω・`)?
0812nobodyさん
2008/12/01(月) 19:16:24ID:L8HEfjQ3マニュアル無さす(´・ω・`)
■ このスレッドは過去ログ倉庫に格納されています