为这个模糊的标题道歉,但不确定如何更好地描述它,并一直试图解决这个问题已经几个小时了。我在谷歌上搜索过,但找不到相关的答案,在这里也没有找到相关的答案--我可能搜索错了东西。
这始于从Bing中提取RSS提要的问题-它在其他网站上运行良好,但在我正在构建的新网站上,它将以德语返回新闻结果。
对于这些网站,我使用的是Godady,所以将相同的脚本复制到我拥有的其他Godady托管帐户中,Bing RSS feed的结果以英语返回。然而,在新账户上,新闻是用德语显示的。
因此,在经历了大量的事情来消除可能的问题之后,我决定使用file_get_contents做一个简单的测试。
在新的托管空间上,我创建了一个php文件,其中包含以下内容:
<?php
$homepage = file_get_contents('https://www.bing.com/news/search?q=cars&form=YFNR&format=RSS');
echo $homepage;
?>
当我在新帐户上运行上面的程序时,它显示了德语的页面结果,而它应该是英语的。
我将上面相同的测试脚本复制到另一个最近的Godaddy帐户,它工作正常,并以英语显示结果。
在浏览器中使用BING URL时,会以英语显示新闻
我一直在Godaddy支持网站上,他们也尝试过,但我想他们是想暗示这是我的脚本。这就是为什么我刚刚尝试了上面的代码片段,以排除其他一切。
顺便说一句,我使用的所有主机账户都在美国
那么问题是什么会导致一个简单的file_get_contents将输出结果翻译成不同的语言呢?为什么在不同的账户上会有不同的结果?
很抱歉帖子太长了,但希望它能解释足够的原因-请不要投票反对;-)
发布于 2015-11-09 02:30:05
正如你可能知道的,Bing (和几乎所有的多语言网站)使用cookie或浏览器设置来分发适当的内容。
我怀疑你的情况是你的主机的语言设置。
您可以尝试更改脚本的标题以接受英文内容:
$opts = array(
'method' => "GET",
'https'=>array(
'header'=>"Accept-language: en\r\n"
)
);
$context = stream_context_create($opts);
$homepage = file_get_contents('https://www.bing.com/news/search?q=cars&form=YFNR&format=RSS', false, $context);
致以敬意,
https://stackoverflow.com/questions/33601347
复制相似问题