天天看點

PHP函數前面的@。

@是可以屏蔽函數執行過程中遇到問題而産生的一些錯誤、警告資訊,這樣使用者就看不到程式的出錯資訊。這樣除了使用者界面會友好一些外,更重要的是安全性,因為屏蔽了出錯檔案的路徑等資訊。

比如說這個:

for($i = 0;$i<$to;$i++){

$result = fsockopen($target, $i, $errno, $errstr, 1);

if(!$result) echo "Port $i Closed...".'<br>';

else "Socket open at port:$i".'<br>';

}

fsockopen在執行的過程中會産生連接配接逾時的警告,如果不在這個函數前加@,那麼輸出資訊是這樣的:

PHP函數前面的@。

如圖所示,錯誤資訊會列出完整的路徑和出錯行,這是相當危險的!在看看在fsockopen()函數前加上@...那麼警告資訊就被屏蔽了:

PHP函數前面的@。