悪意のある改ざんを阻止するために、アップロードされたファイル(画像であるはず)の内容を分析しようとしています。したがって、処理する前に、たとえばファイルに PHP コードが含まれているかどうかを検出したいと考えています。
$patern = "/<?php/" ;
$handle = fopen ($_FILES['image']['tmp_name'], "r");
if ($handle)
{
while (($buffer = fgets($handle, 4096)) !== false)
{
if ( preg_match ( $patern , $buffer ) );
{
echo "PHP files are forbidden";
}
}
if (!feof($handle))
{
echo "Error: fgets() failed\n";
}
fclose($handle);
}
画像を送信した後、「PHP ファイルは禁止されています」という結果が 180 回エコーされました。正常です。ループ内にありますが、mi pic には 1 つのphpパターンがありません ... 問題は何ですか? パターン?preg_match ? ハンドル?どうもありがとう。