[英]Check if glob() is allowed
我想在php腳本中使用glob()
,但是我收到了用戶的報告,它並不總是允許在服務器上使用。 一位用戶報告了以下錯誤:
Warning: glob() has been disabled for security reasons
如何檢測是否允許glob? 這是通過disable_functions完成的,還是有其他方法可以禁用glob? safe_mode也會禁用glob嗎? (php.net上的一位評論者這樣說 )。
有沒有辦法可靠地檢查是否允許除了檢查safe_mode和disable_functions之外(如: 如何測試是否允許PHP system()函數的建議?並且出於安全原因沒有關閉 )
如果禁用了glob()
函數,則返回NULL
,因此:
if (($res = glob('*')) === null) {
//try something else
} else {
// $res should be an array or false
}
順便說一句,這不會阻止警告出現; 你可以選擇沉默或完全忽略它。
只能使用disable_functions
ini設置禁用AFAIK glob
。 使用function_exists()
來檢測它是否可用:
if(function_exists('glob')) {
glob('...');
}
您可以使用這個簡單的測試來嘗試:
you@server ~ $ php -ddisable_functions='glob' -r 'var_dump(function_exists("glob"));'
bool(false)
you@server ~ $ php -r 'var_dump(function_exists("glob"));'
bool(true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.