2011-04-16 44 views
0

我创建了一个小脚本,用于从某些链接'清理'站点地图文件。我想我以前没有遇到任何问题,但是现在由于一个奇怪的错误而无法使用它 - 根本不读取命令行参数。PHP不读命令行参数

我可能看错了地方,但我GOOGLE了,我得到的是我已经实施的用法。

请检查下面的代码片段:

if(count($argv) != 4) { 
      echo "\n\nUSAGE: php cleanSitemap.php <input file> <output file> <bad str>\n" 
        ."This script parses <input file>, skipping all the sitemap XML elements containing <bad str>,\n" 
        ."writting only 'good' XML elements into sitemap.\n" 
        ."Sample: php cleanSitemap.php sitemap.xml sitemap_clean.xml protect-x\n" 
        ."\n"; 
      echo "You entered " . count($argv) . " parameters.\n"; 
      exit(); 
    } 

你怎么想,问题出在哪里???

编辑: 为了简化问题,我创建test.php的与以下内容:

<?php 
     echo count($argv) ."\n"; 
     print_r($argv); 
     echo "\n"; 
?> 

-bash-3.2 $ /网络/的cgi-bin/PHP5 test.php的1 2 3 45

内容类型:text/html的

好。W hile写这篇文章,我想我可能会想到:这是在Godaddy共享主机上使用的php5客户端。也许它设置为不通过命令行使用?或者,如果使用,它不接受命令行参数。

+1

你能告诉我们你进入命令行的内容吗? – 2011-04-16 13:57:50

+1

你可以发布'print_r($ argv);'的结果吗? – PeeHaa 2011-04-16 13:58:01

+0

你如何称此程序? var_dump($ argv)告诉你什么? – halfdan 2011-04-16 13:58:18

回答

3

Ohhhhhhhhhhh ...好吧,我是一个总noob。

我刚刚发现这个问题确实与使用不正确的php二进制文件有关......也就是说,'正确的'可以在/usr/local/php5/bin/php中找到。

我真的为这个错误感到抱歉。

+1

只是有同样的问题。你的回答帮了我。谢谢! – xbonez 2012-01-12 10:57:19

+0

总是喜欢听到我的scre * ups帮助其他人;) – hummingBird 2012-01-17 16:04:35

+0

我也是......好吧,在爸爸的某个文档页面上,据说使用其他/ web/cgi-bin/php版本......所以感谢比爸爸的适应症更有用! – Cedric 2013-06-01 01:15:26