У меня есть два сценария, которые выполняют различные задачи на сервере. Один написан на Perl (.cgi) другой в PHP.Связь между скриптами CGI PHP и Perl
Я пытаюсь отправить запрос от PERL CGI скрипт, делая что-то вроде этого:
$ua = LWP::UserAgent->new;
$ua->agent("$0/0.1 " . $ua->agent);
$ua->timeout(30);
$queryStr = (xxxMaskedxxx);
$request = HTTP::Request->new('GET', $queryStr);
$response = $ua->request($request);
if ($response->is_success)
{
$search = strpos($res->content, "not");
if($search==true)
{ return -1; }
}
Я попробовал два способа отправить обратно результат от PHP:
Это:
HttpResponse::setCache(true);
HttpResponse::setContentType('text/html');
if (!$result)
HttpResponse::setData("<html>Message not delivered</html>");
else
HttpResponse::setData("<html>Message successfully delivered</html>");
HttpResponse::send();
И это:
echo "Content-type: text/html\n\n";
if (!$result)
echo 'Message not delivered' . PHP_EOL;
else
echo 'Message successfully delivered' . PHP_EOL;
Но $response->is_success
возвращает false для обоих случаев? Когда я пытаюсь распечатать ответ, я получаю это:
response is HTTP::Response=HASH(0x97a8b34)
Что я сделал не так?
Также два сценария сидят бок о бок. Есть ли лучшие способы общения между ними?
'(xxxMaskedxxx);' должно быть, должно быть '' xxxMaskedxxx ";' Вы можете выполнить php-скрипт из perl, если установлена версия 'php cli'. –
@mpapec у вас есть образец, за которым я могу следовать? Я до сих пор не понимаю, как получить возврат из PHP-скрипта, используя php cli. –
см. Образец ниже. php в режиме 'cli' принимает аргументы командной строки, которые хранятся в' $ argv' –