首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用不同语言显示内容的PHP file_get_contents

用不同语言显示内容的PHP file_get_contents
EN

Stack Overflow用户
提问于 2015-11-09 09:53:55
回答 1查看 757关注 0票数 0

为这个模糊的标题道歉,但不确定如何更好地描述它,并一直试图解决这个问题已经几个小时了。我在谷歌上搜索过,但找不到相关的答案,在这里也没有找到相关的答案--我可能搜索错了东西。

这始于从Bing中提取RSS提要的问题-它在其他网站上运行良好,但在我正在构建的新网站上,它将以德语返回新闻结果。

对于这些网站,我使用的是Godady,所以将相同的脚本复制到我拥有的其他Godady托管帐户中,Bing RSS feed的结果以英语返回。然而,在新账户上,新闻是用德语显示的。

因此,在经历了大量的事情来消除可能的问题之后,我决定使用file_get_contents做一个简单的测试。

在新的托管空间上,我创建了一个php文件,其中包含以下内容:

代码语言:javascript
代码运行次数:0
运行
复制
 <?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将输出结果翻译成不同的语言呢?为什么在不同的账户上会有不同的结果?

很抱歉帖子太长了,但希望它能解释足够的原因-请不要投票反对;-)

EN

回答 1

Stack Overflow用户

发布于 2015-11-09 10:30:05

正如你可能知道的,Bing (和几乎所有的多语言网站)使用cookie或浏览器设置来分发适当的内容。

我怀疑你的情况是你的主机的语言设置。

您可以尝试更改脚本的标题以接受英文内容:

代码语言:javascript
代码运行次数:0
运行
复制
$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);

致以敬意,

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33601347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档