【发布时间】:2023-04-01 11:30:01
【问题描述】:
我创建了一个小脚本,用于从某些链接“清理”站点地图文件。我想我以前使用它没有问题,但现在由于一个奇怪的错误无法使用它 - 根本没有读取命令行参数。
我可能看错了地方,但我用谷歌搜索了一下,我得到的只是我已经实现的用法。
请检查以下代码sn-p:
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$ /web/cgi-bin/php5 test.php 1 2 3 45
内容类型:文本/html
0
好吧...在写这篇文章时,我想我可能想到了一些事情:这是 Godaddy 共享主机上使用的 php5 客户端。也许它以某种方式设置为不通过命令行使用?或者,如果使用,它不接受命令行参数。
【问题讨论】:
-
你能告诉我们你在命令行中输入了什么吗?
-
你能把
print_r($argv);的结果贴出来吗? -
你怎么称呼那个程序? var_dump($argv) 告诉你什么?
-
之前是什么?你知道
$argc包含与count($argv)相同的值(参数的数量)吗? -
也许您可以检查错误日志文件以查看是否有问题或检查 PHP.ini 配置
标签: php command-line-arguments