Я знаю, это может показаться немного странным, но мне нужно передать некоторые параметры в массив $ _POST. Подобно тому, как это делает apache или любой другой веб-сервер.
 К сожалению, я не смог найти libapache2-mod-php5 для моего Ubuntu. 
  Это непросто.  Вы можете вызвать двоичный файл php-cgi и передать поддельный запрос POST. Но вам нужно будет настроить множество переменных среды CGI: 
 echo 'var1=123&var2=abc' | REQUEST_METHOD=POST SCRIPT_FILENAME=script.php REDIRECT_STATUS=CGI CONTENT_TYPE=application/www-form-urlencoded php-cgi 
Примечание . Недостаточно, не работает. Но что-то в этом роде …
Это, конечно, проще, если вы просто исправите скрипт и загрузите массив $ _POST из предопределенной переменной среды.
 $_POST = parse_url($_SERVER["_POST"]); 
  Затем вы можете вызвать его как _POST=var=123 php script.php для простоты. 
Я искал решение для этого и пришел, потому что это был первый хит в Google. Второй для меня был чем-то полезен для меня, потому что он имеет очень простое решение, если у вас есть доступ к скрипту PHP и его можно изменить.
Просто вставьте следующие строки в начале вашего скрипта:
 /* if started from commandline, wrap parameters to $_POST and $_GET */ if (!isset($_SERVER["HTTP_HOST"])) { parse_str($argv[1], $_GET); parse_str($argv[1], $_POST); } 
  Эта небольшая часть кода делает трюк (вы можете решить, хотите ли вы использовать $ _GET или $ _POST или, как и мне, это и то, и другое. 
  После изменения сценария вы можете вызвать его из командной строки, передавая ваши аргументы: 
 php yourscript.php 'arg1=x&arg2=y' 
Повеселись!
  использовать завиток для публикации данных 
  curl –data "name = ii" "param1 = value1 & param2 = value2" http://test.com/sample.php