У меня есть два существующих скрипта, которые отлично работают как люди.
Основной script - Perl. Я хочу выполнить PHP script с суб в Perl script.
Обычно PHP script запускается через прямой URL-адрес, например. http://me.com/phpscript.php?foo=bar
Я хотел бы просто вызвать PHP script из Perl и передать foo var, поэтому мне не нужно удалять PHP скрипт моим браузером для обработки данных.
Я недостаточно талантлив, чтобы переписать PHP script на Perl.
Я попробовал exec ( "http://me.com/phpscript.php?foo=bar" ); и включать и система безрезультатно.
Я читал и искал, но нашел только решения для вызова Perl из PHP.
Я очень ценю великое руководство, которое я всегда прекрасно здесь.
Кажется, что LWP:: UserAgent должен работать для этого сценария.
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $response = $ua->get('http://me.com/phpscript.php?foo=bar');
if ($response->is_success) {
print $response->decoded_content; # or whatever
}
else {
die $response->status_line;
}
Существует пакет CPAN, целью которого является создание моста между PHP и Perl:
Этот класс инкапсулирует встроенный PHP5 intepreter. Он предоставляет прокси-методы (через AUTOLOAD) ко всем функциям, объявленным в интерпретаторе PHP, прозрачному преобразованию типов данных Perl в PHP (и наоборот) и способности PHP аналогично вызывать подпрограммы Perl и обращаться к таблице символов Perl.
Цель этого пакета - построить трансапарентный мост для запуска PHP-кода и кода Perl бок-о-бок.
Не уверен, насколько это стабильно. См
Если script находится в локальной файловой системе, вы можете выполнить его непосредственно с помощью PHP-интерпретатора и пути к файлу. Чтобы получить доступ к нему через Интернет, используйте пакет LWP
.
Например:
exec('/usr/bin/php', 'myscript.php', @arguments);
Обратите внимание, что аргументы командной строки обрабатываются иначе, чем аргументы URL; ваш PHP script, вероятно, необходимо будет изменить, чтобы правильно использовать их.
Вы можете напрямую запустить php файл, если добавить #! PathToPhp
./myscript.php
в этом файле с помощью argc или argv или args вы можете получить аргументы, переданные этому файлу, наиболее простым является args
#!/bin/php
<?php
foreach($args as $key => $value){
echo "\n".$key.":".$value;