php执行无限循环
下面是调用exec在后台运行脚本test.php的代码php执行无限循环,php,loops,exec,Php,Loops,Exec,下面是调用exec在后台运行脚本test.php的代码 exec("/home/gooffers/test.php?one=one &"); 脚本test.php包含以下内容 $test = $_GET['one']; echo $test; 但是,这会创建一个无限循环(无限多个进程),导致服务器崩溃。为什么会发生这种情况 我不知道发生了什么,但我认为应该是这样 exec("php /home/gooffers/test.php?one=one &"); 通过命令行(php
exec("/home/gooffers/test.php?one=one &");
脚本test.php包含以下内容
$test = $_GET['one'];
echo $test;
但是,这会创建一个无限循环(无限多个进程),导致服务器崩溃。为什么会发生这种情况 我不知道发生了什么,但我认为应该是这样
exec("php /home/gooffers/test.php?one=one &");
通过命令行(php cli)运行脚本时,
$\u GET
不可用
有关如何在php中向命令行脚本传递参数,请参见此处:
基本上是
exec("/home/gooffers/test.php arg1 arg2");
然后通过
$argument1 = $argv[1];
$argument2 = $argv[2];
我们需要更多地了解在您的代码中如何使用
exec()
,看看您的主代码中是否有无限循环。@戴维斯,这是我在我的问题中看到的所有代码。Hudhud-谢谢您的回复-但同样,您能用主脚本的完整内容更新您的帖子吗(其中包含exec())和test.php脚本…完整的意思是“@david,你不明白。这是两个文件中的所有代码。一个文件只包含exec,另一个文件只包含两行GET和echo。这就是我所有的代码。$argv[0]
指的是脚本文件(/home/gooffers/test.php),因此,$argv[1]
等于第一个参数。但您是对的,这是一个好方法。使用php进程时,我习惯使用类似于:list($command,$args)=array(array_shift($argv),$argv)
。通过网页在线阅读,我认为可以采用我发布的方式。尽管我还没有验证它,因为exec出于某种原因不断进入循环并导致服务器崩溃。你的帖子似乎是正确的方式。我将尝试一下,看看它是如何工作的。我仍然不明白exec为什么会进入循环。我找到了一个男人y在网上发布了关于exec和无限循环的文章。一个人建议我们在php上使用php cli。不知道这是否会有什么不同。我建议用命令行参数尝试正确的方法。也许这会立即解决无限循环问题。非常奇怪,必须对服务器/php Confix做些什么配置。从未遇到过exec的任何问题。但是试一试!不。如果您使用wget,您的命令将有效,类似于exec(“wget”)http://localhost/gooffers/test.php?one=one &“
,但如果您使用的是php cli,则不会。php cli使用类似C的nommage获取参数,因此$argc
和$argv
。