2017-01-11 3 views
0

У меня есть php-файл с именем test.php. В этом файле я должен взять два входа, которые являются числом и сообщением. Я хочу выполнить этот php-файл из командной строки. Проблема является то, что после выполнения файла PHP он должен спросить меня для входов, но это не делает that.My код нижеЗапуск 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 файле является входной формат с правильным или not.wc.php файл содержит следующий код

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

Я просто хочу, чтобы передать переменные из test.php в wc.php

+2

$ _GET является HTTP GET аргументы; cli не имеет ничего общего с http; либо используйте аргумент args/$ argv для аргументов командной строки, либо читайте из stdin –

ответ

3

вы можете сделать это:

$input = trim(fgets(STDIN)); 

fgets принимает входные данные из STDIN и ждет LineBreak. Функция триммера гарантирует, что у вас нет разрыва строки в конце.

Так, чтобы добавить это в вашем примере:

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

Я отредактировал мое сообщение. Но я столкнулся с другой проблемой сейчас. Не могли бы вы помочь мне? –

+0

Вот учебник о том, как отправить запрос POST с использованием CURL в PHP https://davidwalsh.name/curl-post –

+0

Спасибо большое. –

-1

При работе в командной строке вы не сможете использовать суперглобальные ($ _GET, $ _REQUEST и т. Д.), Как вы можете, используя PHP на веб-сайте. Вы хотите, чтобы передать значения в командной строке, как это:

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

Вы можете получить доступ к аргументам командной строки с $ ARGV.

+1

За исключением того, что OP написал сценарий вопросов и ответов. – RiggsFolly

Смежные вопросы