
Phpy - это библиотека для PHP
Вы можете использовать Python в php с ним
Установить
git clone https://github.com/Raeen123/phpycomposer require raeen/phpyПредварительные условия
Это конфигурация:
php = 8.0.1 (Your php version must be at least 7.4 )
python = 3.9.1
numpy = 1.19.3
python-opencv = 4.4.0.46
Питон
Вы должны, если вы не добавите Python в среду вашего пути, добавьте путь к питону в core/Python.php в const python_path
Мы используем эти библиотеки для создания phpy.py:
import sys
import json
import base64
import numpy as np
import cv2Импорт файл phpy.py в python/include/library/php.py
Получите данные от PHP
Получить данные в файл python для получения данных, которые должны
phpy . get_data ( Number Of Send data )Для данных возврата вы должны использовать функцию печати
PUSH DATA с Python
phpy . push_data ( data )Это просто
json . dumps ( data )Push -изображение от Python
Он функционирует для нажичения данных с Python на PHP
Пример чтения изображения
cv2 . imread () videoCaptureObject = cv2 . VideoCapture ( 0 )
ret , frame = videoCaptureObject . read ()Нажатие изображения
phpy . push_image ( img , type )Отправить данные из PHP
Создать и отправлять данные из PHP на Python
Вы можете отправить бесконечные данные
require_once " ../vendor/autoload.php " ;
use app core App ;
$ app = new App ();
$ python = $ app -> python ;
$ data1 = [
' name ' => ' raeen ' ,
' library ' => ' phpy '
];
$ data2 = " test " ;
$ output = $ python -> set ( " ../Python/test2.py " )-> send ( $ data1 , $ data2 )-> gen ();Пример живого вывода:
$ site = " google.com " ;
$ python -> set ( ' ../Python/test6.py ' )-> send ( $ data )-> live ()-> gen ();Показать результат
$ output = $ python -> set (path)-> send (datas. . )-> gen ()Показать Img
Вы можете использовать эту функцию для Genrate, что возвращается от phpy.push_img ()
$ app -> img ( $ output , $ type , $ show , $ style )$ Тип должен быть таким же типом в php.push_img ()
Если $ show верно, покажите изображение в теге Img
Также вы можете установить стиль для этого
Пример
$ app -> img ( $ output , $ type , true ,
[
' border ' => ' 1px solid red '
])Путь
Например, у меня есть файл изображения в этом Diractory, но файл Python в Python/**. PY и я хочу отправить путь к нему. Для этого необходимо отправить этот путь ../my-img или использовать этот функции для файла или каталога отправки пути или каталога
$ app -> path (__Dir__,path)INI
Если у вас есть цикл в PHP -файле, очень хорошо добавить эту функцию в верхнюю часть файла
$ app -> ini ()Фрагмент
Одна линия
Если вы хотите запустить линию Python, вы должны использовать эту функцию
$ Snippet -> set ( $ code , function (){
// controller
})-> gen (); Для управления Varible, вы должны его имя в |&name|
Для заполнения варьируется, вы должны return array , он должен быть в порядке
Вы должны использовать " в коде Python и использовать ; в конце каждой строки
$ Snippet = $ app -> snippet ;
$ Snippet -> set ( " print(f'hello world {|&data|*7*|&test|}'); print('--Hello') " ,
function ( $ data , $ test ) {
$ data = 2 ;
$ test = 9 ;
$ data2 = $ data * 5 ;
return [ $ data2 , $ test ];
})-> gen ();Линии
Начните перед началом написания кодов, вы должны использовать это
$ Snippet -> start (name);Для написания ваших кодов, вы должны использовать это
$ Snippet -> line (code)
.
.
.Для окончания строк
$ Snippet -> end (name,save_last)Имя в начале функции должно быть таким же именем
Для получения вывода в любом месте, вы должны использовать это
$ Snippet -> select (name)-> gen ()Пример, index.php:
$ Snippet -> start ( " test " );
$ Snippet -> line ( " a = 'Hello world' " );
$ Snippet -> line ( " print(a) " );
$ Snippet -> end ( " test " );
$ Snippet -> select ( " test " )-> gen (); Output : Hello world
Вы можете использовать этот код в другом файле
$ Snippet -> select ( " test " )-> gen (); Output : Hello world
Живой вывод любой, где (фрагмент и класс Python) вы можете использовать это так просто
Непосредственно перед использованием gen() используйте live() затем используйте `` `gen (/ * Вы можете написать функцию здесь, чтобы управлять выходом */)
$ python -> set ( " ../Python/test6.py " )-> send ( $ site )-> live ()-> gen (
function ( $ res ) {
return " <pre> $ res </pre> " ;
}
);Вы также можете установить время без каждого считывания (Defult 1)
$ python -> set ( " ../Python/test6.py " )-> send ( $ site )-> live ()-> ini ( 3 )-> gen (
function ( $ res ) {
return " <pre> $ res </pre> " ;
}
); $ Snippet -> set (
" import subprocess as sub; sub.call('ping |&site|') " , function ( $ site ){ $ site = " google.com " ; return [ $ site ];}
)-> live ()-> ini ( 3 )-> gen (); $ Snippet -> select ( ' snippet-test8 ' )-> live ()-> gen ( function ( $ res ){ return " <b><pre> $ res </pre></b> " ;});Лицензия
MIT Лицензия
Авторские права (с) 2021 Рейн Ахани Азари
Настоящим дается разрешение, бесплатно, любому лицу, получающему копию этого программного обеспечения и связанные с ними файлы документации («Программное обеспечение»), чтобы иметь дело в программном обеспечении без ограничений, включая, без ограничения, права на использование, копирование, изменение, объединение, публикацию, распределение, сублиценность и/или продавать копии программного обеспечения и разрешения лиц, на которые программное обеспечение подходит для того, чтобы поступить так, чтобы поступить на следующие условия: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: на следующие условия: к следующим условиям: на следующие условия: на следующие условия.
Вышеуказанное уведомление об авторском праве и это уведомление о разрешении должно быть включено во все копии или существенные части программного обеспечения.
Программное обеспечение предоставляется «как есть», без гарантии любого рода, явного или подразумеваемого, включая, помимо прочего, гарантии товарной пригодности, пригодности для определенной цели и несоответствия. Ни в коем случае авторы или владельцы авторских прав не будут нести ответственность за любые претензии, убытки или другую ответственность, будь то в действии контракта, деликт или иным образом, возникающие из или в связи с программным обеспечением или использованием или другими сделками в программном обеспечении.
Пример
Есть примеры в phpy-examples
Рейин Ахани Азари