在使用PHP运行页面上的JavaScript代码后,是否可以下载生成的HTML代码。
例如,当页面包含此jQuery代码$("p").html("Hello world");
并且我使用file_get_content('website.com')
时,我没有得到字符串" Hello world"因为JavaScript在页面加载后运行。
答案 0 :(得分:0)
使用cURL:
function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
然后做:
<?php echo get_data('http://theURLhere.com'); ?>
希望有所帮助
答案 1 :(得分:0)
请参考类似的问题并分享您迄今为止所做的研究:
答案 2 :(得分:0)
实现这一目标的一种方法是使用Selenium,并编写一个自定义脚本来收集它的输出......但我确信这远远超出了你试图做的范围。
我将采取的方式是颠倒责任。让JS将输出发送到PHP端点,并使用您认为合适的输出。
这是一个例子。
<强>的Javascript 强>
<script>
var outputElement = 'html';
var HTML = $(outputElement).html();
var endpoint = 'myEndpoint.php';
$.post(endpoint, { html: HTML }, function(data) {
alert('Output sent');
});
</script>
这里有一点需要注意:如果不能接受,您将无法获得DOCTYPE声明或HTML标记的任何属性,您可以在下面的PHP文件中重新构建它们。
<强> PHP 强>
<?php
$html = $_POST['html']; // Be VERY CAREFUL with what you do with this...
// If you need to have the doctype and html tag... Use your own doctype.
// $html = sprintf('<DOCTYPE html><html class="my-class">%s</html>', $html);
// Do something with the HTML.
通过POST发送HTML时,您必须非常小心。如果您使用此HTML在您的网站上输出,很容易被欺骗,以泄露您网站上的敏感数据。
<强>参考强>