日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP 5 » mb_convert_encodingについて

mb_convert_encodingについて

ページ: 1

投稿者 投稿
会員
登録者: 10 2011
返信数: 5
2台のUbuntu10.04ServerEdition上、共にApache+mySQL+php環境を入れております。
同じソースコードを実行した時、
一方のサーバーでは問題なくmb_convert_encoding($str,"SJIS","UTF-8")が実行されますが、もう1台の方ではエラーが無しでコンバートされません。
お互いのphp.iniの設定は全く同じです。他に何か注意する点があれば教えて下さい。
会員
登録者: 8 2009
返信数: 103
display_errors = On
error_reporting = E_ALL|E_STRICT

であっても何もエラーが表示されないということでしょうか?
会員
登録者: 10 2011
返信数: 5
早速の返信有難うございます。

現環境で2台とも

error_reporting = E_ALL & ~E_DEPRECATED
display_errors = Off

の設定になっておりましたが、

display_errors = On

に変更して実行させたところたっぷりのWarningが表示されました。
そして、その表示内容も2台とも全く同じでした。
会員
登録者: 8 2009
返信数: 103
rpm系ならphpパッケージのインストールもれとか考えられますが
deb系はよくわかりません。

お力になれずすみません。
会員
登録者: 10 2011
返信数: 5
補足説明をさせて頂きます。

処理内容はmySQLからデータを取り出しCSV形式に吐き出そうとしています。
$fp = fopen("mtokui.csv", "w");

fwrite($fp, mb_convert_encoding($rec,'SJIS','UTF-8'));
この部分でWarningが発生します。
そして、Warningについてもmb_convert_encodingではなく
fopenとfwriteで起こっております。

ファイル自体はSJISに変換されることなく
UTF-8で正常に書きこまれております。
会員
登録者: 8 2009
返信数: 103
<?php
ini_set('display_errors', 1);
ini_set('error_reporting', 2147483647);

$rec = <<<EOD
テスト,csv,文字コード変換

EOD;

$fp = fopen("mtokui1.csv", "wb");
fwrite($fp, mb_convert_encoding($rec, 'SJIS', 'UTF-8'));
fclose($fp);

file_put_contents("mtokui2.csv", mb_convert_encoding($rec, 'SJIS-win', 'UTF-8'), LOCK_EX);


文字コードはUTF-8です。
上記のコードは正常に実行できますか?
会員
登録者: 10 2011
返信数: 5
nullaさんへ:
返信有難うございます。
コードを実行したところ以下の警告が出ました。
正常に実行できていないようです。

Warning: fopen(mtokui1.csv): failed to open stream: Permission denied in /var/www/mtokui.new/csvtest2.php on line 10
Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/mtokui.new/csvtest2.php on line 11
Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/mtokui.new/csvtest2.php on line 12
Warning: file_put_contents(mtokui2.csv): failed to open stream: Permission denied in /var/www/mtokui.new/csvtest2.php on line 14

Permission denied とあるのが気になります。
因みに実行しているディレクトリは
drwxr-xr-x 14 root root 4096 2011-10-25 13:31 mtokui
となっております。
会員
登録者: 8 2009
返信数: 103
…以前の問題ですね。

root権限で実行するか(非推奨)、適切なパーミッションを設定してから実行してください。
会員
登録者: 10 2011
返信数: 5
nullaさんへ:
ありがとうございました。
Permissionを変更して実行させたところ無事に出力出来ました。
お騒がせ致しました。
:|

ページ: 1

日本PHPユーザ会 掲示板 » PHP 5 » mb_convert_encodingについて

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています