Запускаем скрипты 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(); для работы с большими массивами, если данные надо писать в одну ячейку БД и потом из нее выводить.
Может быть интересно: