如何将STDIN管道传输到PHP派生的进程?
对我的人民 这有点奇怪,但我想知道这是否可能 最终目标是与如何将STDIN管道传输到PHP派生的进程?,php,stdin,proc,Php,Stdin,Proc,对我的人民 这有点奇怪,但我想知道这是否可能 最终目标是与 mysql mydb < file.sql 但是,我想将STDIN传递给passthru命令 这里的明显好处是,我可以将恢复放在管道的某个地方,一切都很顺利。这里有一个例子 # would be pretty awesome! ssh $remote "msyqldump $config mydb | gzip" | gzip -dc | ./restore 无论如何,我怀疑是否可以使用passthru,但可能在某种程度上使用
mysql mydb < file.sql
但是,我想将STDIN传递给passthru
命令
这里的明显好处是,我可以将恢复
放在管道的某个地方,一切都很顺利。这里有一个例子
# would be pretty awesome!
ssh $remote "msyqldump $config mydb | gzip" | gzip -dc | ./restore
无论如何,我怀疑是否可以使用passthru
,但可能在某种程度上使用proc\u open
作为最后的手段,如果出现无法解决的困境,我会这样做
./restore < file.sql
#!/usr/bin/env php
$cmd = "msyql mydb";
passthru($cmd, $status);
./restore file.sql
#!/usr/bin/env php
$cmd = sprintf("mysql mydb < %s", $argv[1]);
passthru($cmd, $status);
用这样的脚本
./restore < file.sql
#!/usr/bin/env php
$cmd = "msyql mydb";
passthru($cmd, $status);
./restore file.sql
#!/usr/bin/env php
$cmd = sprintf("mysql mydb < %s", $argv[1]);
passthru($cmd, $status);
#/usr/bin/env-php
$cmd=sprintf(“mysql mydb<%s”,$argv[1]);
passthru($cmd,$status);
PHPwnd
/restore
#/usr/bin/env-php
什么!博大精深
原来passthru
已经这样做了!真了不起
看看吧,朋友们:
gzip.php
#!/usr/bin/env php
<?php
passthru("gzip", $status);
if ($status !== 0) {
error_log("gzip exited with status %d", $status);
}
输出
hello