【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等)・フレームワークは各該当スレへ
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マニュアル無さす(´・ω・`)
0813nobodyさん
2008/12/01(月) 19:19:38ID:???0814nobodyさん
2008/12/01(月) 19:36:18ID:???一括で処理する方法はありますか?
0815nobodyさん
2008/12/01(月) 19:38:01ID:???0816nobodyさん
2008/12/01(月) 19:38:42ID:g9VSv8cf0818814
2008/12/01(月) 19:39:43ID:???816は偽者です
0819nobodyさん
2008/12/01(月) 19:41:16ID:???思い出せない・・・
0821nobodyさん
2008/12/01(月) 19:49:07ID:???$_POST = array_map("addslashes", $_POST);
って感じかな
0822814
2008/12/01(月) 19:50:47ID:g9VSv8cf>>821を試してみます
0823nobodyさん
2008/12/01(月) 19:57:15ID:L8HEfjQ3具体的にどのあたりでしょうか?
0824nobodyさん
2008/12/02(火) 00:24:01ID:PVQb/nvwPHP的にはどっちを使うの。違いあるのですか?
1 != 1
1 <> 1
あと、&&をandとか||をorとかも
どっちで書くこと多い?
0826nobodyさん
2008/12/02(火) 00:47:56ID:PVQb/nvwhttp://search.net-newbie.com/php/language.operators.comparison.html
ここですよね?
!=と<>の違いは結果の文章の最後に「。」があるか、無いかしかわかりませんでした
0827nobodyさん
2008/12/02(火) 00:58:49ID:???0828nobodyさん
2008/12/02(火) 04:54:35ID:???好きなの使えばいい
他言語に慣れてる人を考慮していくつか用意してるだけだから
!=なんかはほとんどの言語で一般的に使われる
<>はSQLなんかで使う
else ifなんかもelseifと半角スペースあけなくてもPHPの場合問題ない
0829nobodyさん
2008/12/02(火) 09:14:45ID:???別に違いは書き方が違うだけでコチラじゃないと駄目というものは
無かったと思う
自分ひとりがメンテし続けるなら好きにしても良いんじゃないの?
828じゃないがif():endif;なんて書き方もあったりする
0830nobodyさん
2008/12/02(火) 09:32:14ID:???0831826
2008/12/02(火) 12:45:41ID:???ありがとうございました。
好きなほうを使います。
>>830さんの書き込みが気になりますが・・・
0832nobodyさん
2008/12/02(火) 12:49:24ID:???0833nobodyさん
2008/12/02(火) 13:03:23ID:???0834nobodyさん
2008/12/02(火) 19:42:23ID:???優先順位のことならこっち
http://www.php.net/manual/ja/language.operators.php
0835nobodyさん
2008/12/03(水) 14:18:09ID:769N0vO+Start
>>1 >>3 こんにちわ
End
上記の文章で2chのようなテキストの「>>1」をURLリンク付けて置き換えしたいと思ってます。
eregなどで >>[0-9]+ これで対象部分はマッチ可能なんですが
マッチされたものを取得する方法等はありますか?
ereg_replace等であれば 変換された後のテキスト取得となってしまいます。
置き換えできればいいじゃないと思われますが、>>の後の数値が必要でして。。
何か良い事例などあるでしょうか。
0837835
2008/12/03(水) 14:39:18ID:769N0vO+色々と繰り返す中eregの第三引数で取得できると判明しました。すません
$match=">>[0-9]+";
$text=">>1 >>2 おはよう";
ereg($match,$text,$getstr);
var_dump($getstr);
しかしながら、2つめを取得できません。どうしたものでしょう・・><
0838835
2008/12/03(水) 14:41:52ID:769N0vO+ありがとう!そこまではなんとか辿りつきました。
■ このスレッドは過去ログ倉庫に格納されています