Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从php脚本执行shell_Php_Shell_Command Line_Exec - Fatal编程技术网

如何从php脚本执行shell

如何从php脚本执行shell,php,shell,command-line,exec,Php,Shell,Command Line,Exec,我想从php脚本执行这个命令 scrapy crawl example -a siteid=100 我试过这个: <?php $id = 100; exec('scrapy crawl example -a siteid= $id' $output, $ret_code); ?> 来自 $output=shell_exec('ls-lart'); 回显“$output”; 简而言之,有一个本机PHP命令可以执行您想要的操作。您还可以通过谷歌搜索exec(),这是一个类似的函数

我想从php脚本执行这个命令

scrapy crawl example -a siteid=100
我试过这个:

<?php
$id = 100;
exec('scrapy crawl example -a siteid= $id' $output, $ret_code);
?>

来自

$output=shell_exec('ls-lart');
回显“$output”;
简而言之,有一个本机PHP命令可以执行您想要的操作。您还可以通过谷歌搜索
exec()
,这是一个类似的函数。

来自

$output=shell_exec('ls-lart');
回显“$output”;

简而言之,有一个本机PHP命令可以执行您想要的操作。您也可以在谷歌上搜索
exec()
,这是一个类似的函数。

根据您是否需要脚本的输出,有不同的方法

  • exec
    执行命令并将输出返回给调用者

  • 当Unix命令的输出是需要直接传回浏览器的二进制数据时,应使用
    passthru
    函数代替exec

  • system
    执行外部程序并显示输出,但仅显示最后一行

  • popen
    -创建一个单向读/写的新进程

  • proc\u open
    -创建支持双向读写的新进程

对于您的scrapy脚本,我将使用
popen
pclose
的组合,因为我认为您不需要脚本输出

include('Net/SSH2.php');

$ssh = new Net_SSH2("Your IP Here");
if (!$ssh->login('Your User', 'Your Password')) {
    exit('Login Failed');
}
$id = 100;
echo "<pre>";
print_r($ssh->exec('scrapy crawl example -a siteid= $id'));

根据您是否需要脚本的输出,有不同的方法

  • exec
    执行命令并将输出返回给调用者

  • 当Unix命令的输出是需要直接传回浏览器的二进制数据时,应使用
    passthru
    函数代替exec

  • system
    执行外部程序并显示输出,但仅显示最后一行

  • popen
    -创建一个单向读/写的新进程

  • proc\u open
    -创建支持双向读写的新进程

对于您的scrapy脚本,我将使用
popen
pclose
的组合,因为我认为您不需要脚本输出

include('Net/SSH2.php');

$ssh = new Net_SSH2("Your IP Here");
if (!$ssh->login('Your User', 'Your Password')) {
    exit('Login Failed');
}
$id = 100;
echo "<pre>";
print_r($ssh->exec('scrapy crawl example -a siteid= $id'));
phpseclib-从下载并将其包含在项目中

<?php
$id = 100;
exec('scrapy crawl example -a siteid=$id 2>&1', $output);
return $output;
?>
include('Net/SSH2.php');
$ssh=new Net_SSH2(“您的IP在此”);
如果(!$ssh->login('Your User','Your Password')){
退出(“登录失败”);
}
$id=100;
回声“;
打印($ssh->exec('scrapy crawl-example-a siteid=$id');
希望这有帮助

phpseclib-从下载并将其包含在项目中

<?php
$id = 100;
exec('scrapy crawl example -a siteid=$id 2>&1', $output);
return $output;
?>
include('Net/SSH2.php');
$ssh=new Net_SSH2(“您的IP在此”);
如果(!$ssh->login('Your User','Your Password')){
退出(“登录失败”);
}
$id=100;
回声“;
打印($ssh->exec('scrapy crawl-example-a siteid=$id');
希望这有帮助

试试这个:

因为您没有将参数放在“”中,所以您将其放在外部,请阅读PHP中的文本concat。

尝试以下方法:


因为你没有把参数放在“”里面,你把它放在外面,阅读PHP中的文本concat。

这个命令是否运行
scrapy crawl示例-a siteid=100
没有PHP?@Abhishekgurjar是的,你看到的是一个空白屏幕吗?@MeganFox你说的空白屏幕是什么意思?什么是
print\r($output)
giving?此命令是否运行
scrapy crawl示例-没有php的siteid=100
?@Abhishekgurjar是的,您看到的是空白屏幕吗?@MeganFox空白屏幕是什么意思?什么是
print\r($output)给予?
exec('scrapy crawl example -a siteid=' . $id);