トップページ⇒php
1001コメント339KB

【PHP】くだらねぇ質問はここに書き込みやがれpart4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/03/13 16:08:32ID:???
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>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:D632M8O2
日本語の文字列をPHPでURLエンコード・デコードするのって
urlencode/urldecode関数を使うだけじゃなくてもう一工夫必要ですかね?
文字化けしちゃうんですが。
環境はRedhatLinux、PHP4.3.10です。
0004nobodyさん05/03/13 16:55:32ID:???
>>3
マルチバイト周りの設定の不備のような気もしますが、
bin2hex()を使って比較してみれば正確に渡っているかどうか確認できますよ
0005nobodyさん05/03/13 17:02:09ID:???
Pukiwiki の スレ が キチガイ に占領されてるんですが、どうしたらいいですかね?
0006nobodyさん05/03/13 17:07:45ID:???
>>5
おまえもキチガイになる
0007nobodyさん05/03/13 19:00:36ID:???
>>6
ありがとうございました。長年の悩みが解けました。
0008nobodyさん05/03/13 21:01:59ID:???
>>4
php.iniのmbstring.http_inputとかですかね?
ちょっとやってみます。
ちなみにFORMタグのデータは日本語でもちゃんと受け取れるのですが、
phpでURLエンコードしたデータは文字化けしてしまいます。
0009nobodyさん05/03/13 22:51:58ID:nnVcNb6z
$a=半角の英字だけの文字列
"abc" "def" "ghi"を含まなければtrueとしたいのですが、

if(!ereg("abc"$a)||!ereg("def",$a)||!ereg("ghi",$a)){
echo true;
}

↑このように書いたところすべてtrueになってしまいました。
なぜですか?一個ずつ三回ifを書けば期待どうりの結果になります


0010905/03/13 23:05:50ID:???
原因わかりました。
思いっきり勘違いしてました
0011nobodyさん05/03/13 23:08:30ID:???
>>9
$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:???
>>11
わかりやすい説明ありがとうございます。
|| ←これは左右のどちらかがtrueならtrueですよね?
だから || をいくつ並べても一つでもtrueがあればtrueですよね?
0014nobodyさん05/03/13 23:29:31ID:???
>>13
論理演算でググれば絵付きで説明が見つかりますよ。

"abc" "def" "ghi"を含まない
= abcを含まない かつ defを含まない かつ ghiを含まない
= (! abcを含む) && (! defを含む) && (! ghiを含む)
= !(abcを含む || defを含む || ghiを含む) [ド・モルガン]
= !( ereg("(abc|def|ghi)",$a)) [正規表現のクラス化]
= !(abcを含む または defを含む または ghiを含む)
0015nobodyさん05/03/13 23:31:43ID:???
教えてください、
PHP+MySQLで、MySQLに書き込む際にSJISの文字化けを起こしてしまいます。
クエリは"INSERT INTO table(name) VALUES('$name')" 、$name=mysql_escape_string($_REQUEST['name']); です。
$_REQUEST['name']='表示'とすると侮オになってしまいます。
文字コードはSJIS、magic_quotes_gpcはoffで変更は出来ません。
addslashes()を加えても駄目でした。どうすれば良いのですか?
■ このスレッドは過去ログ倉庫に格納されています