Popen没有工作

时间:2015-10-18 05:01:00

标签: php popen

似乎在我的服务器上popen()根本不起作用。我通过浏览器访问test.php,文件postt1.phppostt2.php无法执行。未写入article1.txtarticle2.txt个文件。所有文件都在同一目录中。

可能是什么问题?

在文件test.php中,我有:

<?php
$pipe1 = popen('postt1.php', 'w');
$pipe2 = popen('postt2.php', 'w');

pclose($pipe1);
pclose($pipe2);
echo "end"; 
?>

内部文件postt1.php我有:

<?php
 $tosave =  "Hello there";

 $file = fopen("article1.txt","w");
 fwrite($file,$tosave);
 fclose($file);
 echo $tosave;
 echo "<br>done";
 ?>

并且在postt2.php我有相同的东西,除了我写到文件article2.txt

1 个答案:

答案 0 :(得分:0)

postt1.php结束postt2.php需要shebang tags(#!)并执行权限。

通过告诉文件在文件的第一行(在<?php之前!)之前的文件,添加shebang标记。最佳实践要求您应通过env命令访问解释器:

 #!/usr/bin/env php

<?php
 $tosave =  "Hello there";

 $file = fopen("article1.txt","w");
 fwrite($file,$tosave);
 fclose($file);
 echo $tosave;
 echo "<br>done";
 ?>

您还可以使用直接指向php#!/usr/bin/php的shebang。但这在整个系统中不太便携。

您还必须确保两个文件都具有可执行文件:

$ chmod +x posttl.php