例如我在js.php中有这段代码
<script type="text/javascript">
document.write(Math.random());
</script>
这为输出提供了随机数,例如:0.123123123123
现在,我有fetch.php 我试过这段代码:
<?
echo file_get_contents("js.php");
?>
这将输出为:
<script type="text/javascript">
document.write(Math.random());
</script>
但是,我希望输出为0.123123123123
- 这是javascript生成的输出。我不想要源代码,而是该代码的输出。我怎么能用PHP做到这一点?
注意:随机数只是一个样本。我还有其他工作要做。
答案 0 :(得分:2)
JS是一种不同的编程语言,需要由具有JS功能的解析器进行解释。您不能只使用PHP获取HTML文档并期望JS运行,所有PHP都会看到文本。
这两种一般方法是:
这些方法中的任何一种都需要修改JS;它目前旨在向HTML文档添加内容。如果您使用的是浏览器,则必须添加更多JS才能将其解压缩。如果您使用的是v8,那么您必须重写JS,或者模拟document
对象。
您还可以采用两者之间的方法,以编程方式控制服务器上的浏览器(例如使用Selenium)。通过这种方式,您可以指示浏览器获取文档,然后您可以使用PHP API从中读取DOM。
答案 1 :(得分:0)
您需要使用AJAX来实现这一目标。使用jQuery更容易: http://api.jquery.com/jQuery.ajax/
但您也可以使用常规JavaScript: http://linuxgazette.net/123/smith.html
答案 2 :(得分:0)
如果没有使用ajax,你就不能。您正在尝试组合客户端和服务器端脚本。他们不使用ajax调用就无法通信。 php脚本将首先运行,因为它的服务器端。因此,当PHP运行时,尚未生成JavaScript随机数。页面必须加载,JavaScript必须生成随机数,然后必须对服务器进行ajax调用。然后,您的PHP脚本可以使用该数字。
答案 3 :(得分:-1)