Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Perl,pph, Передача переменной 
:(
    Опции темы
o6s
Дата 20.12.2008, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.8.2008

Репутация: нет
Всего: нет



Доброе врямя суток.
Можно ли передать переменуую из perl-скрипта в php-скрипт ?
Я пока подумываю о том, что бы использовать временный файл, из которого php будет считывать нужную ему переменню или стандартный какой-нить дескриптор, но может быть есть более человеческие варианты ?
PM MAIL   Вверх
sir_nuf_nuf
Дата 21.12.2008, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: нет
Всего: 31



давай сразу терминологию проясним, что бы... эм ну стать более грамотными.
из perl в php нельзя передать переменную. 

perl - это программа. интерпретатор. отдельный процесс
php - аналогично. отдельный процесс.

ваш процесс perl обрабатывает данные (!). perl дает нам способ обращаться к данным по именам - это переменные.

Следовательно ваш вопрос выглядит так:

1) "как передать данные из одного процесса в другой ?"

или чуть более подробно:

2) "какое API существует в perl и php для передачи данных между процессами ?"

Сначала ответим на вопрос 1:
можно:
-передать данные как аргументы при запуске программы (аргументы командной строки если хотите)
-передать данные как переменные окружения
-передать данные через файл
-передать данные через pipe
-через shared memory
-через очередь сообщений
-воспользоваться cокетами
-отправить по e-mail в конце концов =)

Тут есть нюансы:
- у вас работают оба процесса одновременно
- процесс perl порождает процесс php

В зависимости от этого нужно выбирать способ передачи.

Если вы просто порождаете новый процесс то легче всего передать через аргументы командной строки или через pipe
Ecли два процесса работают одновременно - через IPC.

Теперь когда мы поняли что хотим, разберемся как это делать. Т.к. в ПХП я пном  - пень.. пишу примеры только на perl
1) через аргументы командой строки:
Код

my $a = "hello";
system("script.php", $a); #это запусти скрипт PHP и передаст параметр как ARGV[0] или как там в ПХП
exec("script.php", $a); #аналогично, но при этом perl скрипт прекратит свое существование
open PIP, "|script.php";  #это породит новый процесс script.php и передаст данные через pipe
print PIP $a;                    # в php они будут доступны через STDIN
close PIP;


2) если процесс php уже запущен, то нужно выбрать подходящий IPC
IPC in perl
IPC in PHP =)



--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
o6s
Дата 21.12.2008, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 28.8.2008

Репутация: нет
Всего: нет



Спасибо за развернутый ответ.
PM MAIL   Вверх
gcc
Дата 24.12.2008, 06:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: нет
Всего: 17



я хотел сделать так:

пхп -> перл -> пхп

еще можно сессии использовать от пхп, а шаблоны от perl, но если программа написана на пхп, и html как правило прямо в коде, переделывать это все долго очень, лучше с нуля написать...
PM WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.