Intereting Posts
Группировка и сумма из двух массивов Могу ли я сделать исключение в цикле for, если память превышает этот цикл curl – как перейти на следующую страницу? Где я должен помещать важные файлы так, чтобы они читались с помощью PHP-скриптов? php – чистый URL Инструмент поможет мне получить все css и javascript, связанные с тегом HTML SQLSTATE Не удалось выполнить попытку подключения. – При попытке подключения от локального к удаленному серверу вырезать текст после (x) количества символов WooCommerce – автоматическое обновление общей цены при изменении количества mysqli_affected_rows () возвращает -1, но работает запрос Сообщение Android GCM успешно отправлено, но не получено Объединить 'с' и 'whereHas' в Laravel 5 Как игнорировать перемещенный заголовок с файлом_get_contents в PHP? Как заставить Woocommerce не сохранять поля выставления счетов Checkout PHP-код для тестирования pdo доступен?

Выполнить python из php

Скажем, у вас есть такой класс:

class MyClass: def __init__(self, var1): self.var = var1 .... 

Этот класс в python работает только при назначении значения:

 x = MyClass("Hi") 

Итак, в основном, мой вопрос заключается в том, могу ли я отправить переменную из php для выполнения класса python и вернуть свой вывод (это строка) и продолжить выполнение моего php-кода?

Какие-либо предложения?

РЕШЕНИЕ

в php:

 $var = "something"; $result = exec("python fileName.py .$var") 

в python:

 import sys sys.argv[0] # this is the file name sys.argv[1] # this is the variable passed from php 

Прежде всего, создайте файл, содержащий скрипт python, который вы хотите выполнить, включая (или загрузку) класс и x = MyClass("Hi")

Теперь для получения результата воспользуйтесь следующей строкой:

 $result = exec('python yourscript.py'); 

Попробуйте пакет Python PECL:

Это расширение позволяет встроить интерпретатор Python внутри PHP, позволяя создавать экземпляры и манипулировать объектами Python из PHP.

http://pecl.php.net/package/python

Мне удалось создать простую функцию PY () для PHP, которая позволяет практически вставлять код Python в ваш PHP-скрипт. Вы можете передать также некоторые входные переменные в процесс python. Вы не можете получить какие-либо данные, но я считаю, что это может быть легко исправлено 🙂 Не подходит для использования в веб-хостинге (потенциально опасный, системный () вызов), я создал его для PHP-CLI, но все равно могу работать нормально.

 <?php function PY() { $p=func_get_args(); $code=array_pop($p); if (count($p) % 2==1) return false; $precode=''; for ($i=0;$i<count($p);$i+=2) $precode.=$p[$i]." = json.loads('".json_encode($p[$i+1])."')\n"; $pyt=tempnam('/tmp','pyt'); file_put_contents($pyt,"import json\n".$precode.$code); system("python {$pyt}"); unlink($pyt); } //begin echo "This is PHP code\n"; $r=array('hovinko','ruka',6); $s=6; PY('r',$r,'s',$s,<<<ENDPYTHON print('This is python 3.4 code. Looks like included in PHP :)'); s=s+42 print(r,' : ',s) ENDPYTHON ); echo "This is PHP code again\n"; ?> 

Вы можете просто распечатать детали / переменные, которые вы хотите в файле python, которые будут буферизованы в переменную $ result в файле php и использовать echo $ result в php-файле для печати результата из файла python.

Вот модифицированный код python:

 #!/usr/bin/python import sys print sys.argv[1] + sys.argv[0] # this is the variable passed from php