2012-09-29 52 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"; 
}