file_get_contents 在 Yii 小部件的视图中不工作
file_get_contents not working in Yii widget's view
我有 Yii 1.1 和一个带视图的小部件,我在其中调用 file_get_contents
php 外部地址函数(来自 https 的 https)。我打电话给 https://api.ipinfodb.com/v3/ip-city/...
- 他们通过 IP 地址提供坐标。它因 503 错误而失败:
failed to open stream: HTTP request failed! HTTP/1.1 503 Service
Temporarily Unavailable
但它在静态视图页面上完美运行。
它也适用于我的开发机器上的任何地方。
我在服务器上的 php.ini 中有 allow_url_fopen = On
。
有什么问题吗?
这会解决问题吗(我不确定您的 URL 是否使用了特殊字符...)?
file_get_contents(urlencode('https://api.ipinfodb.com/v3/ip-city/...'));
或者,如果您启用了 curl,您可以使用这样的东西:
function getData($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
我有 Yii 1.1 和一个带视图的小部件,我在其中调用 file_get_contents
php 外部地址函数(来自 https 的 https)。我打电话给 https://api.ipinfodb.com/v3/ip-city/...
- 他们通过 IP 地址提供坐标。它因 503 错误而失败:
failed to open stream: HTTP request failed! HTTP/1.1 503 Service Temporarily Unavailable
但它在静态视图页面上完美运行。
它也适用于我的开发机器上的任何地方。
我在服务器上的 php.ini 中有 allow_url_fopen = On
。
有什么问题吗?
这会解决问题吗(我不确定您的 URL 是否使用了特殊字符...)?
file_get_contents(urlencode('https://api.ipinfodb.com/v3/ip-city/...'));
或者,如果您启用了 curl,您可以使用这样的东西:
function getData($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}