php - 如何从浏览器的命令行中执行外部 PHP 脚本

标签 php linux

我有一个名为 external.php 的外部 php 脚本,其中包括:

<?php
echo 'External Output';
?>

当我在命令行上使用命令运行它时:

php external.php

我得到的输出为

External Output

但是当我从浏览器的名为 index.php 的 php 文件中执行相同的脚本时,该文件具有以下代码:

<?php
$exe=exec('php external.php',$out,$ret);
print_r($out);
?>

然后我没有输出。

当我修改为:

<?php
$exe=exec('php external.php 2>&1',$out,$ret);
print_r($out);
?>

然后我得到这个输出:

php: /opt/lampp/lib/libxml2.so.2: version `LIBXML2_2.9.0' not found (required by php)

我的问题是,如何在命令行中从 index.php 执行“external.php”文件并在我的浏览器上获取输出(即在 index.php 上)?我也尝试过 system() 函数,但效果不佳。

编辑: 我无法在 index.php 中包含 external.php,因为 external.php 可能需要很长时间才能执行(超过 10 小时)。

编辑#2 解决了,给出 PHP 的完整路径解决了问题。

这是一个例子:

<?php
$exe=exec('full/path/to/php /full/path/to/external.php',$out,$ret);
print_r($out);
?>

谢谢 Oleg 和 Scopey 给我一些提示帮助。

最佳答案

指定external.php的完整路径:

<?php
$exe=exec('php /full/path/to/external.php',$out,$ret);
print_r($out);
?>

尝试在命令行上指定 php 的完整路径并检查它是否有效:

$/usr/bin/php "/full/path/to/external.php"

如果可行,也可以在您的 php 文件中尝试:

<?php
$exe=exec('/usr/bin/php /full/path/to/external.php',$out,$ret);
print_r($out);
?>

关于php - 如何从浏览器的命令行中执行外部 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24857075/

相关文章:

linux - 使用 Kate 从远程主机打开文件

php - 从数据库中获取最大值并加一

PHP代码没有被执行,但是代码显示在浏览器源代码中

PHP - 找不到 fatal error 类

linux - SVN 命令清除分支间更改的文件列表

ruby-on-rails - 当我激活 ruby​​ 2.2.1 时,无法在 WSL 中的 Ubuntu 上安装 Rails 版本 4.2.5。 nokogiri 需要 Ruby 版本 >= 2.3.0

php - 如何更新数据库中以逗号分隔的图像中的特定图像

php - 安装 zend 框架应用程序

javascript - 基于类的点击事件在 10 行后无响应 - 数据表

linux - 压缩 Bash 脚本以解析文件