- 締切済み
phpの自作関数の戻り値について
PHPで任意のCSVファイルをアップロードしてUTF6で別名保存するという関数です。 メインのupload.phpから require_once('UTF8CONV.php'); で呼び出しています。メインの部分は動きますが、戻り値(メッセージを変数で返したい)がうまくいかず並んでいます 以下UTF8CONV.php <?php //linuxのnkfコマンドでSJISからUTF8にファイル変換 //$INfile='sjistest.csv'; //$OUTfile='utf8.csv'; //パス自動取得する。 function convutf8($INfile,$OUTfile) { if(isset($_SERVER['DOCUMENT_ROOT'])||isset($_SERVER['PHP_SELF'])) { $PHPSELF=explode('/',$_SERVER['PHP_SELF']); $getpath= $_SERVER['DOCUMENT_ROOT'].$PHPSELF[1]; $command="nkf -w -Lw "."$getpath/"."upload/"."$INfile"." > "."$getpath/"."upload/"."$OUTfile"; //echo $command; exec($command); } else {$A="パス情報が取得できません"; return $A; } $filesize=filesize("$getpath/"."upload/"."$OUTfile"); if (!file_exists( "$getpath/"."upload/"."$OUTfile" )) { //echo "<br/>"; $A="ファイルが存在しません"; return $A; } else { $A="アップロードされたファイル".$OUTfile."は文字コードUTF8でファイルサイズは".$filesize."バイトです。"; return $A; } } ?> returnをechoに置き換えうると、表示されますが「return」でメイン(呼び出し側で、Echoしてもprint_rしても表示されません。CSVテキストとはアップされ、UTF8にOUTfileで指定した名称で保存されています。Returnの変数をJAVASCRIPTで情報window表示したいので、変数でほしいです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- agunuz
- ベストアンサー率65% (288/438)
>メイン(呼び出し側で、Echoしてもprint_rしても表示されません。 その部分はどのように書いていますか?当然ですが print convutf8($flepath1, $filepath2); とか $result = convutf8($flepath1, $filepath2); print $result; のように書いているんですよね(まさか、print $A; なんてことはないと思いますが・・・・)。
お礼
ありがとうございます。人生2個目の関数(言い訳)でしてまさかの print $A; って書いてました。1個目の西暦年を平成に変換するのは何となくうまくいっていて、調子にのって2個目作ってみたんですがうまくいかずに悩んでました、そうですよね、いきなり変数$Aをプリントせいって命令しても、なんのことかわかんないですよね試してみます。お恥ずかしい