0

ファイルの文字セットを検出するためのこのコードがあります。

$result = exec('file -i ' . $fromFile);

結果は次のようになります: "perk.csv: text/plain; charset=us-ascii"

$fromFile がスペースを含むファイル名を保持するまでは、すべて問題ありません。次に、ファイルを読み取れなかったと不平を言います。

私の最初の解決策は、スペース文字を「\」に置き換えることです。しかし、これを解決するためのより良い方法があるのではないでしょうか? ここで何かが欠けているかもしれないと感じています。

4

1 に答える 1

2

ファイル名をエスケープするには、 escapeshellarg関数を使用します。

コードは次のようになります。

$result = exec('file -i ' . escapeshellarg($fromFile));
于 2013-02-22T04:01:05.183 に答える