preg_match以简单模式失败

时间:2013-01-25 16:20:22

标签: preg-match

我试图分析上传文件(应该是图片)的内容,以阻止任何恶意篡改。因此,在处理之前,我想检测文件是否包含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);
                    }

发送图像后,结果为&#34; PHP文件被禁止&#34;回响了180次。 好吧,它在循环中,但在mi pic中没有一个 php 模式... 问题是什么?那个模特? preg_match?汉德尔? 非常感谢。

1 个答案:

答案 0 :(得分:0)

对不起,

错误是:语法错误:结尾处的分号:

 if ( preg_match ( $patern , $buffer ) );

否则一切正常