Автор Тема: Запуск PHP скрипта из Perl  (Прочитано 22505 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Запуск PHP скрипта из Perl
« Ответ #15 : 04 Декабря 2006, 19:19:03 »
по поводу возврата смотри документацию
perldoc -f exec
perldoc -f system
The documentations is your friend

Оффлайн Integra

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #16 : 04 Декабря 2006, 19:20:55 »
Цитировать
ravshaniy:
я конечно могу ошибаться, но exec ни в перле ни в пхп не возвращает результат своего выполнения в скрипт который его вызывает. комманда exec создает паралельный процесс, у которого свой собственный вывод. единственное что вы вернете таким методом это 1 в случае безуспешного выполнение exec("php result.php &",$ret); кажется так, но опять же могу ошибаться я новичег



Попробуйте, так работает. Это таинственный шОманизм интерпертатора php, видимо

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Запуск PHP скрипта из Perl
« Ответ #17 : 04 Декабря 2006, 19:22:25 »
Цитировать
Integra:
Не будем вдаваться в политику партии и мораль сей басни

Ну, то есть вы понимаете, что это потенциально очень тщательно разложенные грабли которые могут больно стукнуть по лбу? Я так понимаю, вам нужно использовать system вместо exec, это и будет ответом скорее всего.
The documentations is your friend

Оффлайн ravshaniy

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 191
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #18 : 04 Декабря 2006, 19:35:44 »
Цитировать
Integra:
Попробуйте, так работает. Это таинственный шОманизм интерпертатора php, видимо

даже пытаться не буду, вы ошибаетесь
убили кенни, сволочи

Оффлайн Integra

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #19 : 04 Декабря 2006, 19:39:23 »
Цитировать
NeoNox:
# php index.phpX-Powered-By: PHP/5.1.1Content-type: text/html

# perl 12================X-Powered-By: PHP/5.1.1Content-type: text/html

================# cat 12#!/usr/bin/perl

print "================\\n";

$test = `php ./index.php &`;print $test;print "================\\n";



Переделано так:
#!/usr/bin/perl
print "Content-type: text/html";

print "================\\n";
$test = `php ./index.php &`;
print $test;
print "================\\n";
// запускаемый
#!/usr/bin/php
Content-type: text/html
echo "11111";

Apache выдает матюги:
Security Alert! The PHP CGI cannot be accessed directly.

Как бишь опция в перле называется, которая в php --enable-force-cgi-redirect?


Пробовали ``, system, exec, passthru, и конечно pipes, дабы подождать окончания запускаемого скрипта. Не видит!!!!!


то есть в php через пайп передаем данные в perl скрипт, а в перл-скрипте пишем print ;. Ни-че-го!

Оффлайн Integra

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #20 : 04 Декабря 2006, 19:40:48 »
Цитировать
ravshaniy:
даже пытаться не буду, вы ошибаетесь

Apache/1.3.33 Server php 4

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Запуск PHP скрипта из Perl
« Ответ #21 : 04 Декабря 2006, 19:46:59 »
У меня выдает
Цитировать
Content-type: text/html================
X-Powered-By: PHP/5.1.1
Content-type: text/html

Content-type: text/html
echo "11111";================

Копайте пхп, к сожалению в настройках пхп я не силен, подсказать вам не смогу.

Цитировать
Integra:
Как бишь опция в перле называется, которая в php --enable-force-cgi-redirect?

Что она дает?

Цитировать
Integra:
то есть в php через пайп передаем данные в perl скрипт, а в перл-скрипте пишем print ;. Ни-че-го!

Пример покажите.
The documentations is your friend

Оффлайн Integra

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #22 : 04 Декабря 2006, 19:52:02 »
Цитировать
NeoNox:
Content-type: text/html================ X-Powered-By: PHP/5.1.1 Content-type: text/html

Content-type: text/html echo "11111";================

 это я лоханулась, там нада в php писать еcho "Content-type: text/html"

У вас запускается, это уже радует!!!У вас какой Апач и ос? Может, у вас там гдето опция установлена, аналогичная --enable-force-cgi-redirect, это разрешение запуска скрипта из скрипта

Оффлайн Integra

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #23 : 04 Декабря 2006, 19:55:42 »
Цитировать
NeoNox:
Пример покажите.


Пример с трубой
// php
#!/usr/bin/php

//exec("perl ./test.pl",$q);
//print_r($q);

echo "1";

$handle = popen(\'perl -e t.pl\', \'w\');
fwrite($handle,"test");
fclose($handle);
echo "2";
?>
// запускаемый
#!/usr/bin/perl
print "Content-Type: text/html\\n\\n";
print ;
print "2121";


В док php написано - popen кидает все на стандратный поток ввода

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Запуск PHP скрипта из Perl
« Ответ #24 : 04 Декабря 2006, 20:05:28 »
cat /etc/redhat-release
Red Hat Linux release 7.2 (Enigma)

Апачей у меня в системе штук 20. Я даже не думал что пхп установленно, как и с какими опциями он установлен, сами понимаете, я не ведаю.

Цитировать
Integra:
$handle = popen(\'perl -e t.pl\', \'w\');

Зачем ключ -е?

Перлового скрипта я тоже не понял, что он должен делать? Вы его с консоли запускали?
The documentations is your friend

Оффлайн Integra

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #25 : 04 Декабря 2006, 20:19:51 »
Цитировать
NeoNox:
Перлового скрипта я тоже не понял, что он должен делать? Вы его с консоли запускали?


Не сильна в опциях интерпретатора perl. Но мы и без ключа запускали, эффект тот же...Ничего не происходит.


Теперь о перловом скрипте: он должен генерировать страницу с выведенным стандартным потоком ввода.


Интересен эффект: если мы передаем через трубу данные
$handle = popen(\'usr/sbin/sendmai -t -i\', \'w\');
fwrite($handle,"From: me");
fclose($handle);


То утилита sendmail считывает все, что нада и работает как нада.

А на вашей апаче такая штука идет? Которая с каналами?

Оффлайн Integra

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #26 : 04 Декабря 2006, 20:23:43 »
Цитировать
NeoNox:
 Вы его с консоли запускали?

Мы его на каравановском сервере запускали :-) Выводит, собака, цифры 2121, а на STDIN - ни-че-го

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #27 : 04 Декабря 2006, 20:35:31 »
Integra,
попробуйте этот вариант:// php
#!/usr/bin/php

//exec("perl ./test.pl",$q);
//print_r($q);

echo "1";

$handle = popen(\'perl -e t.pl\', \'w\');
fwrite($handle,"test"."\\n");
fclose($handle);
echo "2";
?>
// запускаемый


#!/usr/bin/perl
my $in = ;
print "Content-Type: text/html\\n\\n";
print , $in;
« Последнее редактирование: 04 Декабря 2006, 21:03:54 от AnnA »
пока-пока. :)

Оффлайн Integra

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #28 : 04 Декабря 2006, 20:44:37 »
Цитировать
AnnA:
попробуйте этот вариант:

низачот к сожалению :-(
http://www.edunews.ru/sprav/test.php - пресловутые цифры 12 вместо 1test2

Не работает на линуксах и на виндах.

Оффлайн AnnA

  • Фанатка форума
  • Старожил
  • ****
  • Сообщений: 263
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Запуск PHP скрипта из Perl
« Ответ #29 : 04 Декабря 2006, 20:50:13 »
мой php тоже оставляет желать лучшего, но всё же - по аналогии - правильно было бы напечатать, то что получили:

// php
#!/usr/bin/php
//exec("perl ./test.pl",$q);
//print_r($q);
echo "1";
$handle = popen(\'perl -e t.pl\', \'w\');
fwrite($handle,"test"."\\n");
fclose($handle);
echo "$handle 2";
?>
пока-пока. :)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28