Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Запуск и работа программ написанных для Prolog на php  (Прочитано 1759 раз)

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

Оффлайн progma137

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Допустим у меня есть программа написанная на Prolog(а конкретно - gprolog), возможно ли её как-то запустить/выполнить используя php?

У меня сервер апач на линуксе.

Пользователь решил продолжить мысль 24 Октября 2011, 21:58:59:
кое-что нашел по поводу запуска программ на прологе под пхп, но как написать консольную строку так, чтобы в ней можно было внести и имя файла и запрос.
для информации, кое-что есть тут
« Последнее редактирование: 24 Октября 2011, 21:58:59 от progma137 »

Оффлайн S_F_H

  • Участник
  • *
  • Сообщений: 129
  • Да будет crossplatform!
    • Просмотр профиля
эм... а это разве не два совершенно разных языка?

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
В PHP можно запускать внешние программы и получать ответ их работы. Данные можно передавать как через командную строку, так и через переменные окружения. Например (для примера запуска скрипта на bash):

1. Создаём тестовый bash скрипт (test.sh) с таким содержанием:
#!/bin/bash

# вывод URL из командной строки
echo $1;

# вывод из переменной окружения
echo $MYURL
(в нашем примере указывать интерпретатор не обязательно, да и права на выполнение скрипта тоже указывать не обязательно, так как будет выполнение через сам интерпретатор)

2. Пишем PHP скрипт с таким содержанием:
<?php

$MYURL 
'http://test.loc:80?aaa=12&bbb[]=%D0%90%D0%91%D0%92#ss';
$COMMAND 'export MYURL=\''.$MYURL.'\'; /bin/bash ./test.sh \''.$MYURL.'\'';

ob_start();
system($COMMAND);
$result ob_get_clean(); // В переменную $result запишется вывод работы скрипта test.sh (ведь он может быть многострочный)

echo '<pre>';
print_r($result);
echo 
'</pre>';
В некоторых случаях при создании переменной командной строки придётся использовать функцию escapeshellcmd.

Думаю, что с программой на Prolog можно будет работать также.

 

Страница сгенерирована за 0.047 секунд. Запросов: 25.