Php Javascript将document.write的内容写入变量

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Php Javascript将document.write的内容写入变量脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
在这个问题面前,我无法弄清楚如何正确解决.

我正在使用脚本:

<script tyPE="text/javascript" src="http://www.gta4.IT/stat/view_stats.js.PHP?mode=0">  </script>

具有单个document.write的输出

document.write('11');

因此,使用JavaScript显示数字.
我想要做的是获取此document.write的内容并将其写入另一个服务器中的变量,JavaScript或PHP.

任何的想法?

解决方法

该脚本只是输出一个小的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>
>使用JS获取容器的内容.
>使用AJAX将结果发送到服务器.

样品(未经测试):

<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>

脚本宝典总结

以上是脚本宝典为你收集整理的Php Javascript将document.write的内容写入变量全部内容,希望文章能够帮你解决Php Javascript将document.write的内容写入变量所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。