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

くだすれPHP(超初心者用)

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/06/12(月) 14:06:01ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、 
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 
PHP使いが優しくコメントを返しますが、 
お礼はPHPの布教と初心者の救済をお願いします。 

PHP Home Page 
http://www.php.net/
0002nobodyさん2006/06/12(月) 14:40:47ID:???
いや、いいけどさ。
需要あったのかしらん。
0003nobodyさん2006/06/14(水) 00:09:15ID:???
「くだすれ」って何?
0004nobodyさん2006/06/14(水) 09:26:50ID:???
phpから、添付ファイルを送信する方法を教えてください
0005nobodyさん2006/06/18(日) 10:15:39ID:???
ord()で日本語もちゃんと変換させる方法教えてください

そのままだと1byte目を変換し、後を無視してしまいます
0006nobodyさん2006/06/18(日) 14:16:42ID:???
こんにちは。下らない質問スレから出張して来ますた。

>>5
おまいは何かを根本的に勘違いしている。
ord()はそもそもそういうもんですって言うか変換なんてしません。

http://jp2.php.net/manual/ja/function.ord.php

> stringの先頭文字のASCII値を返します。

2バイト文字列の一文字目を抜き取りたいのならmb_substr()でも使ってはどうですか。

http://jp2.php.net/manual/ja/function.mb-substr.php
0007nobodyさん2006/06/18(日) 15:05:32ID:???
pack() でしょ。
http://jp2.php.net/manual/ja/function.pack.php
0008nobodyさんNGNG
入力
<?php
$str = "サーバサイド技術";
print(mb_convert_kana($str,"KV"));
$data = $str;
print(mb_convert_encording($data,"EUC-JP","Shift_JIS"));?>

出力
サーバサイド技術
Fatal error: Call to undefined function mb_convert_encording() in C:\Program Files\xampp\htdocs\4.2.php on line 8

設定が間違っているのでしょうか?
0009nobodyさん2006/06/18(日) 16:28:24ID:???
>>8
"Shift_JIS"を"SJIS"にしたらどうなるかな?
0010nobodyさん2006/06/18(日) 17:13:53ID:???
>>8
スペルミスだろ
×mb_convert_encording
○mb_convert_encoding
0011nobodyさんNGNG
>>9>>10
ども。
両方試してみました。

入力
<?php
$str = "サーバサイド技術";
print(mb_convert_kana($str,"KV"));
$data = $str;
print(mb_convert_encoding($data,"EUC-JP","SJIS"));?>

出力
サーバサイド技術悉鴫写酌悉軸柴酌オサスム

mb_comvety_kana()とmb_convert_encoding()がうまく動作していない様子です。
0012nobodyさん2006/06/18(日) 17:41:37ID:???
>>11
mb_convert_kana()は$strの文字コードを明示的に指示してやると多分うまくいくよ。

http://jp2.php.net/manual/ja/function.mb-convert-kana.php

mb_convert_encoding()は上手く動作してるから文字化けしてるんじゃないの?
0013nobodyさんNGNG
>>12
文字コードをSJISに指定したら正しく表示されました。ありがとうございます。
ただ、mb_convert_encoding()がどうもうまくいきません。IEで文字コードをSJIS
にエンコードすると化けてしまいます。一方でEUC-JPにエンコードすると"サーバサイド技術"
と化けずに表示されます。よーするにmb_convert_encoding()がうまく動いてないかと。
0014nobodyさん2006/06/18(日) 20:32:09ID:???
ブラウザが絡んでくると、出力と、ソースの文字コードを揃えないと
化けるって聞いたよ。
アパチが内部で勝手に文字コードを揃えちゃうらしい。
0015nobodyさん2006/06/18(日) 21:12:07ID:???
いや、あのさ。

<?php
$str = "サーバサイド技術";
print(mb_convert_kana($str,"KV")); // (1)
$data = $str;
print(mb_convert_encoding($data,"EUC-JP","SJIS")); // (2)
?>

これがちゃんとSJISで書かれているとしたら$strの文字コードはSJISだよね。
つまり(1)はSJISで出力される。
一方(2)はEUC-JPに変換してから出力している。
(1)が文字化けせずに読めている状態で(2)が化けるのは当たり前じゃん。
出力した文字コードが違うんだから。

"悉鴫写酌悉軸柴酌オサスム"つーのはEUC-JPで出力された"サーバサイド技術"を
SJISとして読んだ時に起こる文字化け。
上の出力をEUC-JPとして読んだ場合は"?T?[?o?T?C?h?Z?pサーバサイド技術"となる。
自分でSJISからEUC-JPに変換させといてうまく動いてないなんていちゃもん付けるなよ。
mb_convert_encoding()は完璧に動いてるよ。
001652006/06/19(月) 10:00:39ID:???
>>6-7
わかりにくい説明ですいません。
日本語文字列のascii値?を返してほしいんです
ord("a") -> 97
ord("あ") -> 12354
ord(" ") -> 32
ord(" ") -> 12288
0017nobodyさん2006/06/19(月) 17:01:38ID:???
>>16
良く分かんないけど、要はこういう事かな。

<?php
get_ascii("a");
get_ascii("あ");
get_ascii(" ");
get_ascii(" ");

function get_ascii($str) {
print "\"{$str}\" => ";
for ($num = 0; $num < strlen($str); $num++) {
print ord(substr($str, $num, 1));
}
print "\n";
}
?>

get_ascii()はこうでも良い。

function get_ascii($str) {
print "\"{$str}\" => ";
$array = str_split($str);
foreach ($array as $value) {
print ord($value);
}
print "\n";
}

でもSJISでもEUC-JPでもUTF-8でもうちではその値にはならないんだよねえ。
0018nobodyさん2006/06/19(月) 21:13:32ID:???
>>17
ありがとうございます。
検索すると同じことをしたがっている人のMLでの質問がありましたが答えは出ていませんでした。
ordではやはり出来ないのでしょうか?

ここはJavaScriptで実現されています
http://www.eris.ais.ne.jp/~hiro/html/
参考になりますでしょうか?
0019nobodyさん2006/06/19(月) 22:01:52ID:???
うーん、俺には分からないな。
PHPの下らない質問スレ行って聞いてくだちぃ。

つーかもうこのスレ落としても良いよね?
002012NGNG
>15
すみません。逆でしたね。
mb_convert_encoding($data,"SJIS","EUC-JP"));
にしてみました。
結果は…
サーバサイド技術三舗参爪?Z
orz
■ このスレッドは過去ログ倉庫に格納されています