Как я могу передать URL или переменную из Perl в PHP? - PullRequest
1 голос
/ 28 октября 2010

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

Основной сценарий - Perl.Я хочу выполнить PHP-скрипт из подпрограммы в Perl-скрипте.

Обычно PHP-скрипт просто запускается по прямому URL, например http://me.com/phpscript.php?foo=bar

Я хотел бы просто вызвать PHPсценария от Perl и передайте переменную foo, поэтому мне не нужно запускать сценарий PHP в браузере для обработки данных.

Я недостаточно талантлив, чтобы переписать сценарий PHP в Perl.

Я попробовал exec ("http://me.com/phpscript.php?foo=bar"); и включаю и система безрезультатна.

Я прочитал и искал, но нашел только решения для вызова Perl из PHP.

Я действительноценим великое руководство, которое у меня всегда хорошо здесь.

Ответы [ 4 ]

1 голос
/ 29 октября 2010

Похоже, что 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 голосов
/ 28 октября 2010

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

  ./myscript.php

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

  #!/bin/php
  <?php
  foreach($args as $key => $value){
   echo "\n".$key.":".$value;
0 голосов
/ 28 октября 2010

Существует пакет CPAN, который призван обеспечить мост между PHP и Perl:

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

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

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

0 голосов
/ 28 октября 2010

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

Например:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...