2台のUbuntu10.04ServerEdition上、共にApache+mySQL+php環境を入れております。
同じソースコードを実行した時、
一方のサーバーでは問題なくmb_convert_encoding($str,"SJIS","UTF-8")が実行されますが、もう1台の方ではエラーが無しでコンバートされません。
お互いのphp.iniの設定は全く同じです。他に何か注意する点があれば教えて下さい。
			
ページ: 1
| 投稿者 | 投稿 | 
|---|---|
| 
				
				 #1 2011 年 10 月 24 日(月) 15:02 
			 | 
		|
| 
				会員
				
				 登録者: 10 2011 
				返信数: 5 
				
			 | 
			
				 2台のUbuntu10.04ServerEdition上、共にApache+mySQL+php環境を入れております。 
			同じソースコードを実行した時、 一方のサーバーでは問題なくmb_convert_encoding($str,"SJIS","UTF-8")が実行されますが、もう1台の方ではエラーが無しでコンバートされません。 お互いのphp.iniの設定は全く同じです。他に何か注意する点があれば教えて下さい。  | 
		
| 
				
				 #2 2011 年 10 月 24 日(月) 15:38 
			 | 
		|
| 
				会員
				
				 登録者: 8 2009 
				返信数: 103 
				
			 | 
			
				 display_errors = On 
			error_reporting = E_ALL|E_STRICT であっても何もエラーが表示されないということでしょうか?  | 
		
| 
				
				 #3 2011 年 10 月 24 日(月) 17:14 
			 | 
		|
| 
				会員
				
				 登録者: 10 2011 
				返信数: 5 
				
			 | 
			
				 早速の返信有難うございます。 
			現環境で2台とも error_reporting = E_ALL & ~E_DEPRECATED display_errors = Off の設定になっておりましたが、 display_errors = On に変更して実行させたところたっぷりのWarningが表示されました。 そして、その表示内容も2台とも全く同じでした。  | 
		
| 
				
				 #4 2011 年 10 月 24 日(月) 17:25 
			 | 
		|
| 
				会員
				
				 登録者: 8 2009 
				返信数: 103 
				
			 | 
			
				 rpm系ならphpパッケージのインストールもれとか考えられますが 
			deb系はよくわかりません。 お力になれずすみません。  | 
		
| 
				
				 #5 2011 年 10 月 25 日(火) 11:07 
			 | 
		|
| 
				会員
				
				 登録者: 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で正常に書きこまれております。  | 
		
| 
				
				 #6 2011 年 10 月 25 日(火) 12:02 
			 | 
		|
| 
				会員
				
				 登録者: 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です。 上記のコードは正常に実行できますか?  | 
		
| 
				
				 #7 2011 年 10 月 25 日(火) 13:33 
			 | 
		|
| 
				会員
				
				 登録者: 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 2011 年 10 月 25 日(火) 13:53 
			 | 
		|
| 
				会員
				
				 登録者: 8 2009 
				返信数: 103 
				
			 | 
			
				 …以前の問題ですね。 
			root権限で実行するか(非推奨)、適切なパーミッションを設定してから実行してください。  | 
		
| 
				
				 #9 2011 年 10 月 25 日(火) 14:07 
			 | 
		|
| 
				会員
				
				 登録者: 10 2011 
				返信数: 5 
				
			 | 
			
				 nullaさんへ: 
			ありがとうございました。 Permissionを変更して実行させたところ無事に出力出来ました。 お騒がせ致しました。 ![]()  | 
		
ページ: 1
日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています