【PHP】下らねぇ質問はID出して書き込みやがれ 89

このエントリーをはてなブックマークに追加
952nobodyさん:2009/11/13(金) 10:59:46 ID:???
>>949
日本でもマイナーな部類なのに海外の先生方が使うはずねえだろks
953nobodyさん:2009/11/13(金) 11:13:50 ID:???
PHPコードからMySQL使ってブラウザに出力したのですが、文字化けします
954nobodyさん:2009/11/13(金) 11:15:09 ID:???
my.iniの文字コードの設定とか確認しろ屋ksg
あとphpとmysqlのバージョンぐらい書け出来損ない
955953:2009/11/13(金) 11:17:47 ID:TXCm92bg
ごめんなさい、途中なのに送信してしまいました・・・

PHPコードからMySQL使ってブラウザに出力したのですが、文字化けします
OSはWindows XPで、php.iniの設定はdefault_charset = Shift_JIS、my.iniの設定はdefault-character-set=sjisです

PHP側で、
<?php
$s=mysql_connect('localhost','test','1234');
mysql_select_db('db1',$s);

$q=<<<EOT
SELECT bang,AVG(uria)
FROM tb
WHERE uria>=50
GROUP BY bang
HAVING AVG(uria)>=120
ORDER BY AVG(uria) DESC;
EOT;

$re=mysql_query($q);
while($kekka=mysql_fetch_array($re)){
print '社員番号:';
print $kekka[0];
print '売上平均:';
print $kekka[1];
print '<br />';
}
mysql_close($s);
?>
のようなコードを書きました
どのようにすれば文字化けを解消できるのでしょうか?
956nobodyさん:2009/11/13(金) 11:22:32 ID:???
社員番号も売上平均も数字じゃないの?
957nobodyさん:2009/11/13(金) 11:24:04 ID:???
skip-character-set-client-handshakeでもmy.iniに設定してろks
958nobodyさん:2009/11/13(金) 11:31:36 ID:TXCm92bg
>>956
SQL自体は数字と英字です
社員番号、売上平均という文字が文字化けします

他のコードですが、SQLiteでは文字化けせずに出るので、mbstringの設定がおかしいのではないと思います
959nobodyさん:2009/11/13(金) 11:37:12 ID:???
>>958
日本語読めますか?

my.iniの文字コードの設定とか確認しろ屋ksg
あとphpとmysqlのバージョンぐらい書け出来損ない
skip-character-set-client-handshakeでもmy.iniに設定してろks
960nobodyさん:2009/11/13(金) 11:40:50 ID:???
>>958
だったらMySQL関係ない
HTMLの文字コード宣言かスクリプトの文字コードが違う
961nobodyさん:2009/11/13(金) 11:43:35 ID:???
>>960
え?
962nobodyさん:2009/11/13(金) 11:47:37 ID:???
print '社員番号:';

これが文字化けするならDB関係無い
963nobodyさん:2009/11/13(金) 11:57:23 ID:TXCm92bg
>>962

単純に上記のコードだけの入力なのですが、HTMLの文字コード宣言かスクリプトの文字コードが影響しているのでしょうか?
それともmbstringの設定がおかしいのでしょうか?
一応、
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = auto;
mbstring.script_encoding = EUC-JP
が自分の設定です
上でも書きましたが、SQLite3ではこのような事は起きませんでした


>>959
書き込み中でした
skip-character-set-client-handshake設定しても変化なしです
PHP Version 5.2.10、MySQLは最新版で5.1です
964nobodyさん:2009/11/13(金) 12:02:48 ID:???
mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
mbstring.http_input = pass
mbstring.http_output = SJIS
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = auto;
;mbstring.script_encoding = EUC-JP
965nobodyさん:2009/11/13(金) 12:02:54 ID:???
>>963
スクリプト自体の文字コードとHTMLの文字コード宣言はどうなってる?
966nobodyさん:2009/11/13(金) 12:18:08 ID:TXCm92bg
>>964
すみません、そのようにコメントアウトしたのですが、改善されませんでした

>>965
ごめんなさい、あまり良く分かっていないもので、「スクリプト自体の文字コードとHTMLの文字コード宣言」という意味が分かりませんでした
上記のコードを、http://localhost/から行っただけです
<? php 〜 ?>の中に<html>コード等を記入したわけではないです
また、逆に<html>コード内で<?php 〜 ?>を記入したわけでもございません

それとも、何か他に「スクリプト自体の文字コードとHTMLの文字コード宣言」というのがあるのでしょうか?


967nobodyさん:2009/11/13(金) 12:25:10 ID:TXCm92bg
簡単なコードで試してみましたが、確かにDBの問題ではなく、PHPの問題だと分かりました

例えば、test.phpを作り、http://localhost/test.phpとすると

<? php
print 'Good Bye';
?>
とするとブラウザにはGood Byeと表示されますが、

<? php
print 'ようこそ';
?>
とすると、ブラウザには ???? と出力されます

どう解決すれば宜しいのでしょうか?
968nobodyさん:2009/11/13(金) 12:26:10 ID:???
>>966
スクリプト自体の文字コードというのは
そのphpのソースをエディタで書いて保存する時に、何の文字コードで保存しているかって事
969nobodyさん:2009/11/13(金) 12:37:37 ID:TXCm92bg
>>968

上記のコードは書籍の問題に載ってるコードなので、それをそのまま使ったので分かりません
一応右クリックしてプロパティとかで調べても自分には分かりませんでした

自分のテキストエディタはTeraPad使っているのですが、初期文字コードはSHIFT-JISになっているようです
保存文字コードは自動に設定されています
970nobodyさん:2009/11/13(金) 12:50:07 ID:???
>>969
php.ini変えたらwebサーバの再起動してる?
971nobodyさん:2009/11/13(金) 12:52:33 ID:???
TeraPadは使うな!!!!!!!!!!!!!!!!
サクラエディタUnicode版をおとなしく使え!!!!
972nobodyさん:2009/11/13(金) 13:00:04 ID:???
>>966
960で965じゃないけど、
>ごめんなさい、あまり良く分かっていないもので、「スクリプト自体の文字コードとHTMLの文字コード宣言」
>という意味が分かりませんでした
自分がよく分からないからといって、もらった回答をシカトするのは最悪の行為だと思うよ

以下のページなども参照のこと。
http://d.hatena.ne.jp/next49/20081107/p1
>指導教員が一番がっかりするのは、一生懸命指導した内容に対して無視されること。それが、故意あるいは
>そうでないとしても「無視した」という結果が重視されるという点をよく理解するべき。理解できない場合、納得で
>きない場合は必ず指導教員に問い合わせるのが重要。

で本題だけど、あと思い当たるのは、
970か、php.iniのコメントを外してないか、
違うphp.iniを編集してるか(phpinfo関数で確認)か、
Apacheの文字コードが変なことになってるか、など
973nobodyさん:2009/11/13(金) 13:13:01 ID:???
>>969
php.iniなどを見直したら、あとは出力する時に
content-typeもしっかり書くようにしてね

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<? php
print 'ようこそ';
?>
</body>
</html>
974nobodyさん:2009/11/13(金) 13:23:38 ID:LpZjQz1C
質問です。

post.phpから
data.txtへ

<img src="fds.jpg"><br>
<img src="ffgg.jpg"><br>
<img src="fdfgd.jpg"><br>
<img src="htrds.jpg"><br>

などとランダムな*.jpgを表示させる行を自動書き込みするようにして

<?php readfile("data.txt"); ?>
で表示させ、表示させたらdata.txtを空にしたい場合どう記述すれば良いでしょうか?

宜しくお願いします。
975nobodyさん:2009/11/13(金) 13:27:06 ID:???
宿題乙
976nobodyさん:2009/11/13(金) 13:30:31 ID:???
1)data.txtを生成する
2)data.txtを読む
3)読んだ内容をクライアントに送出
4)data.txt消す

簡単じゃん。
977nobodyさん:2009/11/13(金) 13:38:12 ID:TXCm92bg
>>972
?????
しかとしてませんよ?
>>963で「HTMLの文字コード宣言かスクリプトの文字コードが影響しているのでしょうか? 」って書いてます

>>957の事でしたら、書き込み中だったのと、それについて調べたり実行中だったので
後でちゃんと謝っています

php.iniのパスコードなど全部見直しましたが、間違っていませんでした


>>970
reStartは一応毎回しております


>>973
わかりました、今からちょっと試してみます
978nobodyさん:2009/11/13(金) 13:45:01 ID:???
ブラウザの 表示のエンコードのとこが今どうなってて、変えて文字が出る選択はない?
979nobodyさん:2009/11/13(金) 13:53:56 ID:TXCm92bg
>>971
なんか色んなところでTeraPadは使うなという事を書かれているので、ちょっと試してみます


>>978
自分、FireFoxの一番新しいのを使っているのですが、変えても文字化けは変わりませんでした

しかし、今昼食を食べてから、>>968さんのアドバイスを受けて、TeraPadの保存文字コードをEUCに変えたところ、やっとブラウザにて日本語が表示されました
今までデフォルトの自動ばかりでやっていたのですが、保存文字コードの重要性を初めて実感いたしました
980nobodyさん:2009/11/13(金) 13:58:55 ID:???
Content-TypeのcharsetはShift-JISにしてるんじゃなかったの?
981nobodyさん:2009/11/13(金) 13:59:03 ID:TXCm92bg
今考えてみて分かったのですが、>>964で自分はEUC-JPを設定しているようです
だからTeraPadでEUCで保存しなければ駄目だったのですね?
こういう部分の知識が乏しかったようです

色々と勉強になりました
皆様、有難うございました
982nobodyさん:2009/11/13(金) 14:03:17 ID:TXCm92bg
>>980

>>973の教えてくれた方法でしょうか?
それとも自分が<html>を使う時のことでしょうか?
またはphp.iniやブラウザなどの設定でしょうか?

>>973さんの教えてくれたコードをそのまま実行してみたのですが、エラーも出ずに、真っ白なままで出力されました

また、今回ちゃんと日本語が出たコードは>>955のコードをそのままhttp://localhost/から実行しました
983nobodyさん:2009/11/13(金) 14:07:28 ID:???
いや、ごめん、もういいよ・・・
984nobodyさん:2009/11/13(金) 22:04:04 ID:qPMadgrN
>>944
ありがとうございました。無事に実装出来ました。
この正規表現は私の力では無理でした。
985手柄横取りくん:2009/11/13(金) 23:54:45 ID:???
いいってことよ
986nobodyさん:2009/11/14(土) 04:44:15 ID:???
>>963とか>>964みたいなmbstringの変な設定が出回ってるのって、何が原因なんだろうな
987nobodyさん:2009/11/14(土) 06:33:14 ID:???
UTF-8に統一したらいいのに
988nobodyさん:2009/11/14(土) 06:48:33 ID:???
>>986
携帯は殆どS-JISなんだそうな。
989nobodyさん:2009/11/14(土) 07:15:19 ID:???
あうはUTF-8でもEUCでもほとんど関係なく使えるね、CSSも読んでくれる。でもDoCoMoは・・
990nobodyさん:2009/11/14(土) 09:10:46 ID:???
SJISに統一するべきだろ UTF8は転送量が増える。
991nobodyさん:2009/11/14(土) 09:14:37 ID:???
絵文字を扱っていればUTF-8が楽
PHPもDBもついでにOSもUTF-8に統一しておいて
出力の時にキャリア別にsjisかutf-8かわけるだけ。

cssはHTML_CSS_Mobileを使うと外部CSSをインラインにしてくれる。

992nobodyさん:2009/11/14(土) 11:54:26 ID:???
SJIS(笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
993nobodyさん:2009/11/14(土) 12:18:54 ID:???
UTF-8に統一して、出力するときに必要に応じてエンコードを換えるのが一番楽かと思った
994nobodyさん:2009/11/14(土) 13:03:45 ID:???
携帯向けも今はもうUTF-8で問題なくね
mailtoのsubject,bodyは細工せんとだめだけどね
ただむしろ携帯向けは簡単な細工で済むけど
PC向けはあっちを立てればこっちが立たずで困る
995nobodyさん:2009/11/14(土) 14:47:55 ID:???
HTML_CSS_Mobileってopenpearの?
996nobodyさん:2009/11/14(土) 15:08:11 ID:GdfWs/uY
プログラミングで大切じゃないのって5つの項目の中のどれですか?

1. 「わかりやすく書こう」
2. 「ライブラリ関数を使おう」
3. 「入力の妥当性,現実性をテストしよう」
4. 「速く動くように書こう」
5. 「意味のある変数名を使おう」
997nobodyさん:2009/11/14(土) 16:11:30 ID:3aAklpl5
WindowsでPHP4を使ってるのですが
move_uploaded_fileでアップロードしたファイル(例えば画像)をブラウザで閲覧しようとすると
「このページを表示する権限がありません」となってしまいます
もともと置いてある画像は問題なく見ることができます
何がいけないのでしょうか?
998nobodyさん:2009/11/14(土) 16:47:53 ID:???
PHP4を使うことが原因w
999nobodyさん:2009/11/14(土) 16:58:17 ID:3aAklpl5
なるほど・・・しかし使ってるスクリプトがphp5に対応してないんです・・・
PHP4で直すことってできませんか?
1000nobodyさん:2009/11/14(土) 16:59:40 ID:???
なおせよwwwwwwwwwwwwwwwwww
いまどきphp4使ってるとか時代後れ杉wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。