Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запуск скрипта PERL из PHP
 
 автор: larush1   (16.06.2011 в 16:11)   письмо автору
 
 

Привет всем.
Почитал по поиску все сообщения, подходящие под мой вопрос, но не нашел то что мне нужно или не понял. Сам ни разу не пробовал, но теперь вот понадобилось.
Есть скрипт, он коннектится по FTP к IP-адресу некой железяки, посылает команды и получает ответ. Скрипт не мой. Автор указал возможность посылки произвольных команд следующим образом:

perl tel.pl -n host -u username -p password -c command_list

Задача- получить ответ системы, (автор сказал что отобразится в окне браузера) распарсить или направить в файл и потом открыть и парсить.

Подскажите пожалуйста:
1 как из PHP скрипта мне вызвать вышеприведенную команду
2 как получить ответ в буфер, не отображая на экране.
3 как получить вывод в файл (думаю что нужно указать вывод в конкретный файл через =>) с учетом абсолютных или относительных путей.

Спасибо !

  Ответить  
 
 автор: cheops   (16.06.2011 в 16:26)   письмо автору
 
   для: larush1   (16.06.2011 в 16:11)
 

Обычно для этого используют обратные кавычки (правда они могут быть отключены)
<?php
  $dir 
= `perl tel.pl -n host -u username -p password -c command_list`;
?>

  Ответить  
 
 автор: larush2   (29.06.2011 в 15:35)   письмо автору
 
   для: cheops   (16.06.2011 в 16:26)
 

все получилось, написал exec('perl ....',$ar1);
Спасибо !!!

  Ответить  
 
 автор: larush2   (07.11.2011 в 15:23)   письмо автору
 
   для: larush2   (29.06.2011 в 15:35)
 

нашел

  Ответить  
 
 автор: cheops   (07.11.2011 в 15:47)   письмо автору
 
   для: larush2   (07.11.2011 в 15:23)
 

Покопаться следует в php.ini
1. Безопасный режим отключен?
2. В директиве disable_functions ничего не прописано?

  Ответить  
 
 автор: larush2   (08.11.2011 в 09:05)   письмо автору
 
   для: cheops   (07.11.2011 в 15:47)
 

Показалось что нашел, на самом деле нет... Повторю суть вопроса
1. После восстановления системы, перестал работать скрипт, посылающий запросы по ip-адресу и принимающий ответ.
2. Вызов скрипта из сеанса MSDOS с указанием передаваемых параметров проходит успешно.
3. Вызов скрипта через функцию exec возвращает пустой массив
4. Вызов скрипта через обратные кавычки не возвращает ничего (print_r($ar1))
НО:
Если по пункту 3 и 4 я вызываю тестовый скрипт в котором только print('Hellow'), то в массив что-то да возвращается, правда по-разному, но не в этом суть. Уточняю- в параметрах и их последовательности не ошибся.

Получается что РНР не дожидается ответа или что-то иное ? Хотя при запуске из MSDOS, скрипт возвращает все данные за пару-тройку секунд.

По предыдущему совету
- безопасный режим отключен
- кавычки отключены
- в disable_functions ничего не прописано

  Ответить  
 
 автор: larush2   (08.11.2011 в 09:30)   письмо автору
 
   для: larush2   (08.11.2011 в 09:05)
 

В скрипте обнаружил вызов библиотеки NET... разбираюсь, так думаю что стоял у меня старый денвер 5.2 (там больше библиотек), а сейчас новый

  Ответить  
 
 автор: larush2   (08.11.2011 в 10:02)   письмо автору
 
   для: larush2   (08.11.2011 в 09:30)
 

Все, восстановил работоспособность. Оказывается, до того как слетела система, у меня в папке с библиотеками PERL лежала вызываемая из скрипта самописная библиотека. Положил, заработало. Но непонятно одно- почему из сеанса MSDOS работало а из под РНР нет. Хотя пока мне не до этого :-) Спасибо Cheops`y что не бросает на произвол судьбы :-)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования