2011-04-16 82 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