ここで少し奇妙なもの。
file()
これはローカルで機能しますが、ステージング サーバーで実行すると、関数がレコードの配列ではなくブール値の true を返すため、コードが失敗します。
コードの抜粋:
if ( $input_list = file("{$path}/input_list.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) !== false) {
foreach ($input_list as $row) {
... etc...
}
}
ファイルが存在します (私は 経由でディレクトリ/ファイルにアクセスしますDirectoryIterator
)、コンテンツがあります。スクリプトを実行するユーザーには、フォルダーとファイルへの読み取りと書き込みのアクセス許可があります。
もし私echo
がgettype($input_list)
それを返します:bool(true)
編集 - さまざまなフラグなしでも試しました - FILE_IGNORE_NEW_LINES と FILE_SKIP_EMPTY_LINES
ローカルで動作する (配列にレコードを入力する) が、サーバーでは true を返す理由。
サーバーはphp 5.3.21 TIA PGです