2012-09-29 53 views
1

我寫的代碼如下:與argc和argv處理

<?php 
array_shift($argv); 
$taskid=$argv[0]; 
$file1=file_get_contents($argv[1]); 
$file2=fopen($argv[2],"w"); 
echo $taskid."\n".$file1."\n".$file2."\n"; 
?> 

我執行該程序作爲php myfile.php 1 1.txt 2.txt 其中1是的taskid,1.txt的是輸入文件和2.txt是輸出文件。 我想以這樣的方式修改此程序,即使我沒有傳遞任何類似於php myfile.php應該運行的參數。我想爲此放置一個if條件。我使用的條件如if(*argv<=1),如果(ARGC == NULL)等,但他們都沒有工作。

我需要一個完美的條件,檢查是否沒有參數通過然後我的程序應該顯示用戶友好的消息。

有人能幫助我嗎?

回答

5
if ($argc !== 4) { 
    // show message 
+0

是的,但我想補充一點,因爲這個問題是特別爲約沒有參數,所以我會投票給'如果($ ARGC === 1)在'那種情況 – moopet

2

試試這個:

<?php 
array_shift($argv); 

if (empty($argv) || count($argv) != 3) { 
    echo "Incorrect number of arguments\n"; 
} 
else { 
    $taskid = $argv[0]; 
    $file1 = file_get_contents($argv[1]); 
    $file2 = fopen($argv[2],"w"); 
    echo $taskid . "\n" . $file1 . "\n" . $file2 . "\n"; 
}