file_get_contents的替代方案?
2022-08-30 10:34:34
$xml_file = file_get_contents(SITE_PATH . 'cms/data.php');
问题是服务器禁用了 URL 文件访问。我无法启用它,这是一个托管的东西。
所以问题是这个。该文件生成 xml 代码。data.php
如何在不执行上述方法的情况下执行此命令并获取xml数据?
可能吗?
$xml_file = file_get_contents(SITE_PATH . 'cms/data.php');
问题是服务器禁用了 URL 文件访问。我无法启用它,这是一个托管的东西。
所以问题是这个。该文件生成 xml 代码。data.php
如何在不执行上述方法的情况下执行此命令并获取xml数据?
可能吗?
使用 cURL。此函数是 的替代方法。file_get_contents
function url_get_contents ($Url) {
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
你应该尝试这样的事情,我正在为我的项目做这件事,这是一个后备系统。
//function to get the remote data
function url_get_contents ($url) {
if (function_exists('curl_exec')){
$conn = curl_init($url);
curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($conn, CURLOPT_FRESH_CONNECT, true);
curl_setopt($conn, CURLOPT_RETURNTRANSFER, 1);
$url_get_contents_data = (curl_exec($conn));
curl_close($conn);
}elseif(function_exists('file_get_contents')){
$url_get_contents_data = file_get_contents($url);
}elseif(function_exists('fopen') && function_exists('stream_get_contents')){
$handle = fopen ($url, "r");
$url_get_contents_data = stream_get_contents($handle);
}else{
$url_get_contents_data = false;
}
return $url_get_contents_data;
}
然后以后你可以这样做
$data = url_get_contents("http://www.google.com");
if($data){
//Do Something....
}