※ ChatGPTを利用し、要約された質問です(原文:戻り値について)
PHPファイルの戻り値に改行コードが含まれる理由
このQ&Aのポイント
実行PHPファイルからモジュールPHPファイルを呼び出し、その戻り値に改行コードが含まれる理由について調査しています。
実行PHPファイルで文字列を受け取ると8バイトになり、実際には「NoError」の前に改行コード(
)が挿入されています。
どちらのPHPファイルもEUC-JP、改行コードLF、無駄な文字列や改行も含まず、改行コードも一緒に返却されてしまう場合の理由を教えてください。
実行PHPファイルから、モジュールPHPファイルを呼び出し、その戻り値を反映しています。
----
■実行PHPファイル
$Command = "/usr/local/bin/php <<モジュールPHPファイル>>";
$Check = shell_exec($Command);
if ($Check != 'NoError') {
echo "エラー";
}else{
echo "エラーじゃない";
}
■モジュールPHPファイル
…処理…
echo "NoError";
exit;
結果:
エラー
----
必ずNoErrorを返すようにしているにも関わらず、
エラーの結果となってしまいます。
調べてみると、実行PHPファイルで文字列を受け取ると
8バイトとなっており、実際は「NoError」ではなく、「\nNoError」のように、
リターン値の前に改行コード(\n)が挿入されている状態となっています。
どちらのPHPファイルもEUC-JP、改行コードLF、
echo の前に無駄な文字列や、<?php及び?>の前後ろに改行もありません。
改行コードも一緒に返却されてしまう場合に、どのような理由が考えられるでしょうか。
お手数ですがご教示いただけますと幸いでございます。
お礼
お返事遅くなり大変申し訳ございません。 とりあえず、そのスクリプト自体は一行の文字列しか返却しないAPIでしたので、 取り急ぎご教示いただいたtrimで対応しました。 >ちなみに、shell_exec関数を叩かずとも、コマンドをバッククォート(Shift+@)で囲むことでも同じ動作が行えます。 こちら、存じ上げておりませんでした! 試してみます。ありがとうございました