【PHP】くだらねぇ質問はここに書き込みやがれpart4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
05/03/13 16:08:32ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
0002nobodyさん
05/03/13 16:13:46ID:???0003nobodyさん
05/03/13 16:28:43ID:D632M8O2urlencode/urldecode関数を使うだけじゃなくてもう一工夫必要ですかね?
文字化けしちゃうんですが。
環境はRedhatLinux、PHP4.3.10です。
0004nobodyさん
05/03/13 16:55:32ID:???マルチバイト周りの設定の不備のような気もしますが、
bin2hex()を使って比較してみれば正確に渡っているかどうか確認できますよ
0005nobodyさん
05/03/13 17:02:09ID:???0008nobodyさん
05/03/13 21:01:59ID:???php.iniのmbstring.http_inputとかですかね?
ちょっとやってみます。
ちなみにFORMタグのデータは日本語でもちゃんと受け取れるのですが、
phpでURLエンコードしたデータは文字化けしてしまいます。
0009nobodyさん
05/03/13 22:51:58ID:nnVcNb6z"abc" "def" "ghi"を含まなければtrueとしたいのですが、
if(!ereg("abc"$a)||!ereg("def",$a)||!ereg("ghi",$a)){
echo true;
}
↑このように書いたところすべてtrueになってしまいました。
なぜですか?一個ずつ三回ifを書けば期待どうりの結果になります
00109
05/03/13 23:05:50ID:???思いっきり勘違いしてました
0011nobodyさん
05/03/13 23:08:30ID:???$a="abc"をそいつに放り込んでみると、
ereg("abc",$a) -> true , ereg("def",$a) -> false , ereg("ghi",$a) -> false
したがって、if(false || true || true) -> if(true) になる。
$a="xyz"を入れると同様にして
if(true||true||true) -> if(true) になる。
何も不思議はあるまい。
0012nobodyさん
05/03/13 23:19:16ID:???0013nobodyさん
05/03/13 23:20:25ID:???わかりやすい説明ありがとうございます。
|| ←これは左右のどちらかがtrueならtrueですよね?
だから || をいくつ並べても一つでもtrueがあればtrueですよね?
0014nobodyさん
05/03/13 23:29:31ID:???論理演算でググれば絵付きで説明が見つかりますよ。
"abc" "def" "ghi"を含まない
= abcを含まない かつ defを含まない かつ ghiを含まない
= (! abcを含む) && (! defを含む) && (! ghiを含む)
= !(abcを含む || defを含む || ghiを含む) [ド・モルガン]
= !( ereg("(abc|def|ghi)",$a)) [正規表現のクラス化]
= !(abcを含む または defを含む または ghiを含む)
■ このスレッドは過去ログ倉庫に格納されています