Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: php и perl
Форумы портала PHP.SU » Разное » Другие языки программирования » php и perl

Страниц (1): [1]
 

1. dsb80 - 30 Июня, 2010 - 23:30:02 - перейти к сообщению
Вот незнаю где спросить ибо гугл имхо помалкивает, но как не странно даже знаю кто может мне ответить=)
Вопрос в следующем: решил занятся изучением Perl, но времени нехватает, вот и думаю... Можноли часть сайта(модуль какойнить) на php замутить на Perl(ну из Js в Php и обратно можноже значения переменных передавать и в С++ с Fortran можно выкрутится в общем примеров много)? Получится ака совмещение приятного с полезным.
2. awiz - 01 Июля, 2010 - 00:02:05 - перейти к сообщению
dsb80 пишет:
Вот незнаю где спросить ибо гугл имхо помалкивает, но как не странно даже знаю кто может мне ответить=)
Вопрос в следующем: решил занятся изучением Perl, но времени нехватает, вот и думаю... Можноли часть сайта(модуль какойнить) на php замутить на Perl(ну из Js в Php и обратно можноже значения переменных передавать и в С++ с Fortran можно выкрутится в общем примеров много)? Получится ака совмещение приятного с полезным.

perl не знаю, но есть варианты:
1)запись в файл перлом, пхп вытащить
2)база данных
3)по http получить результат программы
3. dsb80 - 01 Июля, 2010 - 00:13:23 - перейти к сообщению
awiz пишет:
3)по http получить результат программы

Это обязательно попробую, но меня интересунет чтото типо(самого улыбает, но всётаки)...
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $path= '/home/user/www/site1/page.pl';
  4. if (is_readable($path))
  5. {
  6.   require_once $path;
  7. }
  8. // как вариант через  ob_start()
  9. ?>
  10.  
  11.  
4. JustUserR - 01 Июля, 2010 - 01:18:11 - перейти к сообщению
dsb80 пишет:
Вот незнаю где спросить ибо гугл имхо помалкивает, но как не странно даже знаю кто может мне ответить=)
Вопрос в следующем: решил занятся изучением Perl, но времени нехватает, вот и думаю... Можноли часть сайта(модуль какойнить) на php замутить на Perl(ну из Js в Php и обратно можноже значения переменных передавать и в С++ с Fortran можно выкрутится в общем примеров много)? Получится ака совмещение приятного с полезным.
Perl является полноценным backend-ом и с его помощью можно легко заменить PHP-скрипты за счет использования CGI-интерфейса и получить более широкие возможности - например на Perl возможно создание контрлируемой загрузки файлов от пользователя по HTTP с соответствующим процентным прогресс-баром - а также написание NPH-скриптов и запуск Perl-скриптов от имени определенного пользоваетля с использованием suexec
Также для Perl существует большое число модулей - благодаря чему можно осуществить многие привычные возможности PHP по автоматической обработке данных от пользователя и тд - но при этом получить еще достаточно большое число возможностей
awiz пишет:
1) Запись в файл перлом, пхп вытащить
2) База данных
Так как и Perl и PHP являются backend-ами и служат в некотором смысле для решения одной и той же задачи на одном web-сайте - то можно организовать взаимодействие между сеансами выполнения Perl-скриптов и PHP-скриптов точно такое же как и между выполнениями одних PHP-скриптом - а именно использовать сессии за счет реализации соответствующей сериализации данных
dsb80 пишет:
Это обязательно попробую, но меня интересунет чтото типо(самого улыбает, но всётаки)...
В приведенном вами PHP-кодом произойдет просто подключения Perl-кода как выводимого на экран текста - как варианты возможного запуска можно использовать или shebang-конструкцию с прямым выполнения Perl-скрипта - или для того чтобы задействовать CGI-интерфейс и возможные настройки Apache для CGI-скриптов то делать запуск типа /usr/bin/links URL-path
5. awiz - 01 Июля, 2010 - 14:00:20 - перейти к сообщению
JustUserR пишет:
В приведенном вами PHP-кодом произойдет просто подключения Perl-кода как выводимого на экран текста - как варианты возможного запуска можно использовать или shebang-конструкцию с прямым выполнения Perl-скрипта - или для того чтобы задействовать CGI-интерфейс и возможные настройки Apache для CGI-скриптов то делать запуск типа /usr/bin/links URL-path

а еесли ob_start-ом перехватить? например
PHP:
скопировать код в буфер обмена
  1. function import_perl($file){
  2. include $file;
  3. $return=ob_get_contents();
  4. return $return;
  5. }
6. JustUserR - 01 Июля, 2010 - 14:36:04 - перейти к сообщению
awiz пишет:
А еесли ob_start-ом перехватить? например
Дело в том что Perl-скрипт подключать таким образом по определению нельзя - ведь в случае команды import его будет пытаться обработать PHP-интерпретатор Как минимум можно добавить в него shebang-конструкцию и сделать его исполняемым и запускать через system с указанием прямого пути до него - однако в этом случае запуск будет происходить вне CGI-пространства
Можете посмотреть здесь http://forum.php.su/topic.php?fo...m=65&topic=3 описание работы CGI-скриптов - и конкретные примеры запуска Perl-скриптом с приведенной конфигурацией
7. awiz - 01 Июля, 2010 - 15:35:09 - перейти к сообщению
JustUserR пишет:
awiz пишет:
А еесли ob_start-ом перехватить? например
Дело в том что Perl-скрипт подключать таким образом по определению нельзя - ведь в случае команды import его будет пытаться обработать PHP-интерпретатор Как минимум можно добавить в него shebang-конструкцию и сделать его исполняемым и запускать через system с указанием прямого пути до него - однако в этом случае запуск будет происходить вне CGI-пространства
Можете посмотреть здесь http://forum.php.su/topic.php?fo...m=65&topic=3 описание работы CGI-скриптов - и конкретные примеры запуска Perl-скриптом с приведенной конфигурацией

спасибо, очень интересно!
наконецто понял, почему в винодовс не работала эта строка, когда я на c++ пробовал эксперименты делать. Изза этого я не понимал ее смысла...
(Добавление)
вот у меня есть еще 1 вопрос:
скажите, пожалуйста, - CGI-это обычные приложения конольные, с которых поток вывода идет не в консоль, а http-клиенту? тоесть cout на C++- будет какраз то же, что echo?
8. JustUserR - 02 Июля, 2010 - 02:41:54 - перейти к сообщению
awiz пишет:
Спасибо, очень интересно!
Наконецто понял, почему в винодовс не работала эта строка, когда я на c++ пробовал эксперименты делать. Изза этого я не понимал ее смысла...
Вот у меня есть еще 1 вопрос:
Скажите, пожалуйста, - CGI-это обычные приложения конольные, с которых поток вывода идет не в консоль, а http-клиенту? тоесть cout на C++- будет какраз то же, что echo?
Пожалуйста! Использование CGI-интерфейса при правильной его настройке и работы с ним является достаточно мощным средством - в частности с помощью него можно писать NPH-скрипты которые позволяет полностью контролировать передачу данных к HTTP-клиенту При этом для запуска исполняемого двоичного кода программ по интерфейсу CGI никакой shebang-конструкции не требуется - ведь если согласно настройкам определенный фалй опредяляется Apache как CGI-скрипт то он сам производит анализ этого файла - и если он оказывает PE-модулем то происходит его запуск Необходимо отметить что работы Apache в таком случае под windows и linux будет несколько отличаться - ведь в linux-системах shebang-конструкция является системной возможностью и поэтому можно создавать каскады таких вызовов в том случае если указанный shebang-интерпретатор также не является исполняемым файлом - в то время как под windows если указанный интерпретатор не является исполнемым файлов и не находится в исполняемом CGI-пространстве то его дальнейшая каскадная обработка прекращается
При использовании конструкций cin/cout в вашей C++-программе они будут с точки зрения CGI-интерфейса аналогичны Perl-функции print - но при этом они не совсем будут одинаковы с PHP-функцией echo по той причине что PHP-скрипт собственно не является CGI-скриптом Несмотря на то что в простых случаях поведение данных функций будет инедтично - при использовании возможностей формирования HTTP-заголоков с особыми кодировками символов или кодированием пересылаемых данных разницу можно заметить Например в PHP-скриптах все HTTP-заголовки отправляются с помощью специальной функции и заранее приводятся к 7bit-виду - в то время как в реальных CGI-скриптах такое преобразование необходимо проводить вручную
9. awiz - 02 Июля, 2010 - 10:00:19 - перейти к сообщению
JustUserR пишет:

При использовании конструкций cin/cout в вашей C++-программе они будут с точки зрения CGI-интерфейса аналогичны Perl-функции print

спасибо! а вот что делают конструкции типа system("pause") ? пользователь же не может нажать кнопку? это же он никогда не кончится и должен зависнуть?
10. JustUserR - 03 Июля, 2010 - 02:34:16 - перейти к сообщению
awiz пишет:
Спасибо! а вот что делают конструкции типа system("pause") ? пользователь же не может нажать кнопку? это же он никогда не кончится и должен зависнуть?
Пожалуйста! Вообще в CGI-скриптах и других консольных приложениях не стоит использовать вызов команд которые требуют определенного ввода от пользователя - особенно если ввод осуществляется не через стандартный STDIN-канал а путем обработки нажатий на клавишы В случае если какая-то вызываемая программа требует ввода через стандартный поток по это можно огранизовать - например с помощью указания файла замещающего ввод пользователя или путем перенаправления собственного STDIN-канала - в CGI-скрипте это тоже может быть реализуемо поскольку по данному каналу приходят POST-данные или в случае их отсутствия или полного прочтения маркер конца файла Другое дело если программа требуется интерактивного взаимодейтсвия с пользователем на основе обработки событий - как например команда pause то ее использование в таком контексте недопустимо

 

Powered by ExBB FM 1.0 RC1