Запускаем скрипты python | perl etc в Linux (Debian) из PHP и записываем ответ в базу данных (MySQL)

 По ходу написания мелких скриптиков на php которые должны были работать в паре с python скриптами как-то возник вопрос, что делать с данными которые получаю на выходе после отработки скрипта. Нужно было рассмотреть 2 варианта: записывать в базу данных или импортировать в файлик и отдавать пользователю сам файл.

Скрипты из php удобнее всего запускать через shell_exec:

 <?php $a = shell_exec('python test.py'); echo $a; ?>

Что б получить ответ для записи в БД, нам надо достать данные из массива после выполнения нашего скрипта. В данном случае нам потребуется php функция explode(), в некоторых случаях при выводе данных так же стоит использовать условие проверки отличия наших данных от NULL, еще как вариант empty() или !empty().
if(isset()) {} else {}

 <?php
$a = 'website name';       //Задаем параметр для нашего пайтон скрипта в переменную
$b = shell_exec('python test.py -$a');  //Выполняем наш скрипт

$arr = explode(‘;’, $b);  //Достаем результат из массива и резделяем (; — разделитель)
$data = $arr[0];  //Забиваем нужную часть результата из массива в переменную
if(isset($data)) {
$q = mysql_query(«INSERT INTO table (val1) VALUES (‘$data’)»);  //Сохраняем данные в БД
echo «Job is done! Data» .$data. «was added to database!»;  //Успешное выполнение
} else {
echo «Error!»;  //Если данных не было, ошибка
}
?>

Так же не стоит забывать про json_encode(); и serialize(); для работы с большими массивами, если данные надо писать в одну ячейку БД и потом из нее выводить.

Смотрите так же   Задачки по фрилансу: Ограничение доступа пользователей к сайту на уровне Nginx

Может быть интересно:

Добавьте комментарий