我有一个名为“scipt”的PHP脚本和一个名为“data.txt”的文本文件。现在我可以执行脚本,但是我需要输入“data.txt”。有没有办法将data.txt作为参数传递给“脚本”,这样我就能在一行中自动运行这个东西?
现在我正在打字:
php script {enter} // script runs and waits for me to type filename
data.txt {enter}
... executes
理想情况下,它看起来像:
php script data.txt {enter}
...executes
我是从PHP命令行完成的。干杯:)
答案 0 :(得分:3)
mscharley@S04:~$ cat test.php
<?php
var_dump($_SERVER['argc']);
var_dump($_SERVER['argv']);
?>
mscharley@S04:~$ php test.php foo bar
int(3)
array(3) {
[0]=>
string(8) "test.php"
[1]=>
string(3) "foo"
[2]=>
string(3) "bar"
}
mscharley@S04:~$
答案 1 :(得分:1)
您的脚本的参数将在$argv
中提供答案 2 :(得分:0)
或$_SERVER['argv']
(不需要register_globals
开启) - 但是,这两种解决方案都需要启用register_argc_argv
。有关详细信息,请参阅the documentation。
答案 3 :(得分:0)
如果您确实需要该文件,可以使用$argv变量获取文件名。那将允许你像
一样运行它php script data.txt
然后“data.txt”将是$ argv 1($ argv [0]是脚本名称本身)。
如果您实际上不需要该文件,只需要其内容。您可以使用任何常规流读取函数(stream_get_contents(),fread()等)处理标准输入(STDIN)。这允许您像这样指导标准输入:
php script << data.txt
这是* nix风格实用程序的常见范例。