PHP页面确实接收被调用的html页面生成的输出。但是,由于它似乎异步处理它,因此该数据未分配给$content
。
$content=file_get_contents('http://www.example1.com/xxx.html');
echo strlen($content) . $content . strlen($content);
这个编码最初反映了strlen($ content1)两次的结果:
1200
1200
几秒钟后,屏幕显示变化如下:
1200
abc def ghi jkl mno pqr stu vwx yz1 ... 123 456 789
1200
(html页面输出在已经显示的strlen值之间弹出)。
令人遗憾的是$content
包含被调用页面的html编码,而不是html页面生成的预期abc def ghi jkl mno pqr stu vwx yz1 ... 123 456 789
输出。
被调用的html页面www.example1.com/xxx.html的相关部分如下所示:
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="http://dexels.github.io/navajofeeds-json-parser/js/dist/feed-0.0.1.js"></script>
<script>"feed.init({clientId: "AaBBawwErT"});</script>
<div data-article="schedule" data-param-a="YES" data-fields="aa,bb,cc,dd,ee"></div>
我的html页面似乎完美无缺,因为我在屏幕上显示了正确的结果。但是如何在我的php页面中将此输出转换为$ content?
尝试添加sleep(10)
,但这会让事情变得更糟,因为睡眠似乎需要提前处理。
答案 0 :(得分:1)
这里发生的是您从服务器请求的内容是html + javascript。但您想要的实际数据是由浏览器中的 生成的。。
您要求做的是让PHP运行该JavaScript。没有很多不必要的工作,这样做真的不是一个好方法。
你想要做的事情就是做你自己做的事情。
如果您在加载评论中包含的网址时使用Safari或Chrome网络检查器,您会注意到调用data.sportslink.com
并返回包含JavaScript所有数据的JSON对象渲染。
您必须生成该网址并检索其数据,然后json_decode()
结果并执行您需要处理的任何必要处理。