0

finfoon files を使用して取得する代わりにcontent-type、Linux でコマンドを実行できます。

if(PHP_OS == 'WINNT'){
    $finfo = new finfo(FILEINFO_MIME);
    $content_type = $finfo->file($file);
}
else{
    $content_type = shell_exec("file -bi $file");
}

ファイルの を文字列として取得したい場合はcontent-type、これを行うことができます

$finfo = new finfo(FILEINFO_MIME);
$content_type = $finfo->buffer($data);

content-typeしかし、Linuxコマンドラインでファイルの内容を文字列として取得する代替手段はありますか?

4

1 に答える 1

1

別の方法があります: finfoLinux と Windows の両方で使用します。

ところで、シェル コマンド インジェクションの脆弱性があります。ファイル名はエスケープされていません - これがescapeshellargs()のような関数の目的です。常にそれらを使用してください!

于 2013-05-20T22:48:33.683 に答える