gpt4 book ai didi

php - 从 PHP 执行时 PhantomJS 不呈现

转载 作者:可可西里 更新时间:2023-10-31 23:32:11 25 4
gpt4 key购买 nike

phantomjs 的新手决定使用它来打印网页的屏幕截图。从终端一切正常,但当从带有 shell_exec 函数的 PHP 脚本执行时,渲染不起作用。

这只是从 PHP 执行 phantom 的部分。使用 shell_exec 执行的其他命令有效,只是渲染无效。

$output = shell_exec("phantomjs phantom.js");
echo $output;

这是在 shell 上执行时运行良好的幻影脚本

var page = require('webpage').create();
page.open( "http://www.google.co.uk" , function(s){
var title = page.evaluate(function(){
var main = document.getElementsByTagName("center");
main[0].style.visibility = "hidden";
return document.title;
});
console.log("rendering now");
page.render("title" + ".png");
phantom.exit();
});

最佳答案

这可能会产生更可预测的结果-

出于测试目的,只需使用:

 exec("phantomjs phantom.js");

确保您在执行 php 脚本的同一文件夹中有可执行的 phantomjs。

其次,丢失 $output 变量。我尝试了与您尝试过的类似的方法,但它不起作用 - 您的幻影脚本不会返回其当前状态的任何内容,并且 shell_exec 因其不可预测和不安全的性质而被弃用。恕我直言,shell_exec 充其量是骇人听闻的和临时的。

第三,为了测试,将您的文件夹CHMOD 为“777”。或者将页面呈现的输出保存到具有写入权限的文件夹中。

至于从 PhantomJs 脚本返回可用数据(阅读:可用于多个并发用户,因为这是一个缓慢且阻塞的操作)到您的 PHP 脚本......好吧......这就是挑战......

关于php - 从 PHP 执行时 PhantomJS 不呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16109427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com