Php Javascript将document.write的内容写入变量
发布时间:2020-12-13 21:44:07 所属栏目:PHP教程 来源:网络整理
导读:我在这个问题面前,我无法弄清楚如何正确解决. 我正在使用脚本: script type="text/javascript" src="http://www.gta4.it/stat/view_stats.js.php?mode=0" /script 具有单个document.write的输出: document.write('11'); 因此,使用JavaScript显示数字. 我想
我在这个问题面前,我无法弄清楚如何正确解决.
我正在使用脚本: <script type="text/javascript" src="http://www.gta4.it/stat/view_stats.js.php?mode=0"> </script> 具有单个document.write的输出: document.write('11'); 因此,使用JavaScript显示数字. 任何的想法? 解决方法
该脚本只是输出一个小的JavaScript代码段 – 如果要在PHP中捕获其结果,则无需在浏览器中实际执行它:
// Assuming you have [allow_url_fopen][1] enabled $js = file_get_contents( 'http://www.gta4.it/stat/view_stats.js.php?mode=0'); $value = trim( str_replace( array( "document.write('","');"),'',$js)); echo $value; // Outputs 9,the current value of the JS Demo 当然,如果您正在寻找一个更强大的解决方案,如果JS代码段发生更改(引入空格,更改引用类型等)仍然有效,您可以使用正则表达式从代码段中提取数字.这样的事情应该有效: $js = file_get_contents( 'http://www.gta4.it/stat/view_stats.js.php?mode=0'); $value = preg_replace('/^s*document.write(s*['"](d*)['"]s*)s*;s*$/im','$1',$js); echo $value; // Outputs 11,the now current value of the JS Demo 如果出于某种原因,你想要/需要在捕获值之前让它在浏览器中执行,你可以做这样的事情,虽然我确定它不符合标准并且看起来非常h??ackish. >包装< script>容器中的标记,可能是< span>或者< div> 样品(未经测试): <div id="stats_container"> <script type="text/javascript" src="http://www.gta4.it/stat/view_stats.js.php?mode=0"> </script> </div> <script type="text/javascript"> var value = document.getElementById( 'stats_container').innerHTML; alert( value); // Here you would use AJAX to send the value to a server </script> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |