的php.ini:
Open_basedir = /var/securedir/:/var/www
allow_url_fopen = On
php代码:
$a = file_get_contents("http://www.php.net");
Warning: file_get_contents(): open_basedir restriction in effect.
另一个问题是:
$b = file_get_contents("/var/securedir/file.xml")
Warning: file_get_contents(): open_basedir restriction in effect. File(/var/securedir/file.xml) is not within the allowed path(s): (/var/securedir/:/var/www)
答案 0 :(得分:0)
为什么不直接使用cURL来获取内容?它只是一些额外的代码行:
function fetch_content( $sUrl ) {
$aOptions = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false
);
$cUrlHndl = curl_init( $sUrl );
curl_setopt_array( $cUrlHndl, $aOptions );
$binaryContents = curl_exec( $cUrlHndl );
curl_close( $cUrlHndl );
return $binaryContents;
}
因为file_get_contents确实会带来安全风险,所以这就是它在服务器上被禁用的原因。您收到的警告是因为您尝试打开的路径未包含在php.ini设置文件中。