【问题标题】:file_get_contents not working on url with hashtag symbol in itfile_get_contents 不适用于其中带有井号符号的 url
【发布时间】:2016-02-22 12:49:40
【问题描述】:

我有要解析的网址:

http://www.ntvplus.ru/tv/#genre=all&channel=3385&channel=3384&channel=3416&date=22.02.2016&date=23.02.2016&date=24.02.2016&date=25.02.2016&time=day

我尝试同时使用 file_get_contents 和 CURL,但它们似乎都只向 http://www.ntvplus.ru/tv/ 发送请求并忽略哈希符号后的所有内容。 我试图逃脱它,但仍然没有运气。 有人可以为此提供有效的解决方案吗?

【问题讨论】:

  • 您必须使用 curl post 将参数传递给 URL,然后从另一端获取响应。
  • 试试这个网址ntvplus.ru/tv/…
  • @brevis 这是最后一次恢复,如果可能的话,我想获得 html 版本
  • 希望此链接对您有所帮助。 stackoverflow.com/questions/8252522/…

标签: php parsing file-get-contents


【解决方案1】:

# 元素仅在客户端。它们不会被 file_get_contents()(甚至 cURL)这样的无头请求解析。

正如@brevis 在 cmets 中所建议的,您必须使用查询字符串版本:

$content = file_get_contents('http://www.ntvplus.ru/tv/?genre=all&channel=3385&channel=3384&channel=3416&date=22.02.2016&date=23.02.2016&date=24.02.2016&date=25.02.2016&time=day');

【讨论】:

  • 为了扩展一点,它是客户端 Javascript,它查看 # 之后的所有内容并执行“东西”来更改 HTML(更改布局,加载 AJAX,等等)。所以这样做需要一个成熟的带有 DOM 的 JavaScript 解释器(即网络浏览器)。
  • @Carpetsmoker 是的,这就是他们不会被无头请求解析的意思哈哈。
  • 您是否期望这个问题的作者能够理解这究竟意味着什么?我不认为诸如“无头请求”之类的两个词完全解释了他的假设中的错误,并认为他是否足够困惑以提出这个问题(并不是说我的轻微扩展也完全做到了,但至少它是一个基本的开始)。
  • @Carpetsmoker 我想你可能误解了我的评论,我不是故意的。我只是指出您的评论与我的答案相关的部分之间的联系。
  • 糟糕,我在那条评论中读了太多。 Here's some nice music 作为一种道歉方式,您可能喜欢也可能不喜欢。
猜你喜欢
  • 2011-02-04
  • 1970-01-01
  • 1970-01-01
  • 2013-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多