Как я могу передать URL или переменную из Perl в PHP?

1

У меня есть два существующих скрипта, которые отлично работают как люди.

Основной 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.

Я очень ценю великое руководство, которое я всегда прекрасно здесь.

Показать ещё 1 комментарий
Теги:
variables

4 ответа

1

Кажется, что 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;
 }
0

Существует пакет CPAN, целью которого является создание моста между PHP и Perl:

Этот класс инкапсулирует встроенный PHP5 intepreter. Он предоставляет прокси-методы (через AUTOLOAD) ко всем функциям, объявленным в интерпретаторе PHP, прозрачному преобразованию типов данных Perl в PHP (и наоборот) и способности PHP аналогично вызывать подпрограммы Perl и обращаться к таблице символов Perl.

Цель этого пакета - построить трансапарентный мост для запуска PHP-кода и кода Perl бок-о-бок.

Не уверен, насколько это стабильно. См

  • 0
    Я попробую это. Я пробовал все выше и ничего не работает для меня. Все это только для прохождения одного вар. Это очень сложно для меня.
  • 0
    Нет. Я в тупике.
Показать ещё 1 комментарий
0

Если script находится в локальной файловой системе, вы можете выполнить его непосредственно с помощью PHP-интерпретатора и пути к файлу. Чтобы получить доступ к нему через Интернет, используйте пакет LWP.

Например:

exec('/usr/bin/php', 'myscript.php', @arguments);

Обратите внимание, что аргументы командной строки обрабатываются иначе, чем аргументы URL; ваш PHP script, вероятно, необходимо будет изменить, чтобы правильно использовать их.

  • 0
    Да, они даже в одном каталоге. Все остальное, что ты сказал, было над моей головой. Можете ли вы привести подробный пример для меня?
  • 0
    Это выглядит многообещающе. В настоящее время $ _GET ["foo"] находится в скрипте php. Это единственный вар, который нужно пройти. Как мне изменить скрипт PHP и ваш пример, чтобы передать и получить foo?
0

Вы можете напрямую запустить php файл, если добавить #! PathToPhp

  ./myscript.php

в этом файле с помощью argc или argv или args вы можете получить аргументы, переданные этому файлу, наиболее простым является args

  #!/bin/php
  <?php
  foreach($args as $key => $value){
   echo "\n".$key.":".$value;
  • 0
    Спасибо, но я попробовал все на этой странице, и скрипт PHP не выполняется. Мне нужен полный пример, я думаю.
  • 0
    @DulcimerDude: См. Php.net/manual/en/features.commandline.usage.php, чтобы узнать, как вызывать PHP-скрипты из командной строки. Таким образом, вы можете просто вызывать эти PHP-скрипты из любого системного вызова в ваших Perl-скриптах.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню