2012-04-11 63 views
-1

在我的文件讀取功能中,if($theData = @fread($fh, filesize($myFile))如果目標失敗只包含一個零,則返回false,因此我添加了一個整數檢查(is_numeric)。這安全嗎?使用「is_numeric」安全地讀取僅包含零(「0」)的文件?

function readfilecontents($myFile) 
{ 
    if($fh = @fopen($myFile, 'r')) 
    { 
     $theData = @fread($fh, filesize($myFile)); 
     if($theData || is_numeric($theData)) 
     { 
      if(@fclose($fh)) 
      { 
       return $theData; 
      } 
     } 
    } 
    return false; 
} 
+9

if($ theData!== FALSE) – 2012-04-11 21:53:48

+1

@MarkBaker Post作爲回答簡要解釋,因此可以關閉。 – 2012-04-11 21:57:28

+0

注意:'fclose'應該在檢查之前(所以你總是執行它)... – 2012-04-11 22:06:47

回答

1

不,這是不安全的 - 例如,如果你正在讀空文件,你的函數將返回false而不是空字符串。但是不需要像這樣的功能,因爲file_get_contents()完全相同(只是更快)。

相關問題