从命令提示符运行php文件并获取输入

时间:2017-01-11 14:48:52

标签: php command-line

我有一个名为test.php.In的php文件,我必须接受两个输入,即数字和消息。我希望从命令提示符执行这个php文件。问题是执行php文件后应该问我输入但是它没有这样做。我的代码在下面

echo "ENTER  YOUR NUMBER";
$num = $_GET["number"];
echo "Enter your message";
$msg = $_GET["message"];
echo $num;
echo $msg;

有人可以帮我吗?

我的test.php文件现在包含以下代码

echo "ENTER  YOUR NUMBER";
$num = trim(fgets(STDIN));
echo "Enter your message";
$msg = trim(fgets(STDIN));
$post['num'] = $num;
$post['msg'] = $msg;



$url = 'http://172.16.1.223/source%20codes/wc.php';

$fields = array(
'num'=>urlencode($post["num"]),
'msg'=>urlencode($post["msg"])

 );

$fields_string = http_build_query($fields);

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL,$url);
 curl_setopt($ch,CURLOPT_POST,count($fields));
 curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
 $response = curl_exec($ch)

我试图访问另一个文件wc.php,它是在另一台计算机上通过ip地址并使用curl.Problem是我在wc.php文件中不理解输入格式是否正确.wc.php file包含以下代码

$num=trim(fgets(STDIN));
$msg=trim(fgets(STDIN));
echo $num;
echo $msg;

我只想将变量从test.php传递给wc.php

2 个答案:

答案 0 :(得分:3)

你可以这样做:

 $input = trim(fgets(STDIN));

fgets从STDIN获取输入并等待换行。 修剪功能可确保您最后没有换行符。

所以在你的例子中添加这个:

echo "ENTER  YOUR NUMBER";
$num = trim(fgets(STDIN));
echo "Enter your message";
$msg = trim(fgets(STDIN));
echo $num;
echo $msg;

答案 1 :(得分:-1)

在命令行上工作时,您将无法像在网站上使用PHP一样使用超级全局($ _GET,$ _REQUEST等)。您需要在命令行中传递值,如下所示:

php -f myfile.php /number:"40" /message:"this is great"

然后,您可以使用$ argv访问命令行参数。