加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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显示数字.
我想要做的是获取此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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读