萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> 深入file

深入file

有些主機服務商把php的allow_url_fopen選項是關閉了,就是沒法直接使用file_get_contents來獲取遠程web頁面的內容。那就是可以使用另外一個函數curl。
下面是file_get_contents和curl兩個函數同樣功能的不同寫法
file_get_contents函數的使用示例:

復制代碼 代碼如下:
< ?php
$file_contents = file_get_contents('http://www.jb51.net');
echo $file_contents;
?>


換成curl函數的使用示例:

復制代碼 代碼如下:
< ?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, 'http://www.jb51.net');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>


利用function_exists函數來判斷php是否支持一個函數可以輕松寫出下面函數

復制代碼 代碼如下:
< ?php
function vita_get_url_content($url) {
if(function_exists('file_get_contents')) {
$file_contents = file_get_contents($url);
} else {
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
}
return $file_contents;
}
?>


其實上面的這個函數還有待商榷,如果你的主機服務商把file_get_contents和curl都關閉了,上面的函數就會出現錯誤。

copyright © 萬盛學電腦網 all rights reserved