gpt4 book ai didi

php - 从 php 调用 perl?

转载 作者:可可西里 更新时间:2023-11-01 12:39:01 25 4
gpt4 key购买 nike

我有一个处理表单输入的 PHP 脚本。由于设计原因有点超出我的控制,而且我并不完全希望改变,我必须使用 html 表单中指定的参数调用 perl 脚本。

我清理了所有输入,然后将它们输出到一个名为 input 的文件中,该文件由名为 perl 脚本的 perl 脚本读取,为简洁起见,在这个问题中为 script.pl。 Script.pl 应该做一些事情,然后将所有输出写入名为 output 的文件。

我像这样从 php 调用 perl 脚本:

system('perl script.pl 2>errors');

不好,没有任何反应。不会创建输出,不会创建错误,也不会发生副作用。

我的 apache 以 www-data 用户和组 ID 运行。我的目录设置了 775 个设置,所有权为 me:www-data。 (出于隐私考虑,我的用户名已替换为“我”)。

我的问题有两个:1)我做错了吗?如果是这样,我应该如何改进代码?2) 有没有更理智的方法来捕获系统执行中的错误?

用perl编程了一段时间,感觉php很蛋疼。

操作系统:Ubuntu 服务器版

最佳答案

popen 可用于获取 shell 的响应。那是你最好的选择。这可以帮助您调试系统为什么生气。另外,如果你的 pl 说“你好”和“再见”,popen 甚至可以读出。

If the command to be executed could not be found, a valid resource is returned. This may seem odd, but makes sense; it allows you to access any error message returned by the shell

理想情况下,我会从标准输入中获取数据并写入标准输出。 popen 将允许对两者进行巧妙的访问。

popen('pwd;perl script.pl 2>errors;echo done');

然后你可以看到当系统被调用并“完成”时你在哪里(目录)。

关于php - 从 php 调用 perl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3597279/

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