PHP 无法从 URL 获取文本(file_get_content,CURL 不起作用)

标签 php http url curl file-get-contents

我正在尝试从以下网址获取文本。 http://stp.stheadline.com/data/indexNewsMarquee.json

我尝试了几种方法,但都没有用。我现在真的很绝望,请帮助我并提前致谢。

附言我已经在我的 ini.php 中启用了 allow_url_fopen。 附言我正在使用 XAMPP v3.3.2 和 PHP v5.6.23

以下是我尝试过(但失败了)的代码

curl

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
echo $result;

结果:空字符串

文件获取内容

echo file_get_contents($url, true);

结果:无法打开流:HTTP 请求失败!

读取文件

echo readfile($url)

结果:输出地址本身

最佳答案

您好,您必须在 curl 请求中传递 header ,这样服务器才能将其视为浏览器请求。

 $url="http://stp.stheadline.com/data/indexNewsMarquee.json";

 $requestHeaders = array(
    "Accept:application/json, text/javascript, */*; q=0.01",
    "Accept-Language:en-US,en;q=0.8",
    "Connection:keep-alive",
    "Host:stp.stheadline.com",
    "Origin:http://stp.stheadline.com",
    "Referer:http://stp.stheadline.com/data/indexNewsMarquee.json",
    "User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36"
 );

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_HTTPHEADER, $requestHeaders);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $output = curl_exec($ch);
 curl_close($ch);
 echo $output;

关于PHP 无法从 URL 获取文本(file_get_content,CURL 不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38891690/

相关文章:

javascript - 如何在angular js中将数据从一个页面传递到另一个页面

php - 处理admin系统用户和前端网站用户时如何处理用户权限?

C++ libcurl http响应代码问题

angular - 标题未设置

java - 在java中将订单列表更改为西类牙语

php - 无法将参数绑定(bind)到 WHERE 子句 PDO

http - HTTP 请求方法的负载

url - URL 中的非拉丁字符 - 是对它们进行编码还是用拉丁字符 "counterparts"替换更好?

php - Joomla 组件中的 AJAX 函数调用

php - UTF-8贯穿始终