
Phpy es biblioteca para PHP
Puedes usar python en php con él
Instalar
git clone https://github.com/Raeen123/phpycomposer require raeen/phpyRequisitos previos
Esta es la configuración mía:
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
Pitón
Debe si no agrega Python en su entorno de ruta, agregue su ruta de Python en core/Python.php en const python_path
Usamos estas bibliotecas para crear phpy.py:
import sys
import json
import base64
import numpy as np
import cv2Importar archivo phpy.py en python/include/biblioteca/php.py
Obtener datos de PHP
Obtenga datos al archivo de Python para obtener datos que debe
phpy . get_data ( Number Of Send data )Para los datos de retorno debe usar la función de impresión
Empujar datos de Python
phpy . push_data ( data )Es solo
json . dumps ( data )Push Image de Python
Funciona para empujar los datos de Python a PHP
Ejemplo para leer imagen
cv2 . imread () videoCaptureObject = cv2 . VideoCapture ( 0 )
ret , frame = videoCaptureObject . read ()Imagen de empuje
phpy . push_image ( img , type )Enviar datos de PHP
Crear y enviar datos de PHP a Python
Puede enviar datos infinitos
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 ();Ejemplo de salida en vivo:
$ site = " google.com " ;
$ python -> set ( ' ../Python/test6.py ' )-> send ( $ data )-> live ()-> gen ();Mostrar el resultado
$ output = $ python -> set (path)-> send (datas. . )-> gen ()Mostrar img
Puede usar esta función para generar lo que regresa de phpy.push_img ()
$ app -> img ( $ output , $ type , $ show , $ style )$ tipo debe ser el mismo tipo en php.push_img ()
Si $ show es verdadero, muestra la imagen en la etiqueta img
También puedes establecer un estilo para esto
Ejemplo
$ app -> img ( $ output , $ type , true ,
[
' border ' => ' 1px solid red '
])Camino
Por ejemplo, tengo un archivo de imagen en este archivo Diractory but Python en Python/**. Py y quiero enviarle ruta. Para esto en Must para enviar esta ruta ../my-img o usar este functiuon para enviar un archivo o directorio de ruta de envío
$ app -> path (__Dir__,path)Ini
Si tiene bucle en el archivo php, es muy bueno agregar esta función en la parte superior del archivo
$ app -> ini ()Retazo
Una línea
Si desea ejecutar una línea Python, debe usar esta función
$ Snippet -> set ( $ code , function (){
// controller
})-> gen (); Para el control variable, debe su nombre en |&name|
Para el relleno variable, debe return array , debe estar en orden
Debe usar " en el código de Python y usar ; al final de cada línea
$ 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 ();Pauta
Comience antes de comenzar a escribir códigos que debe usar esto
$ Snippet -> start (name);Para escribir sus códigos, debe usar esto
$ Snippet -> line (code)
.
.
.Para el final de las líneas
$ Snippet -> end (name,save_last)El nombre en la función de inicio debe ser el mismo este nombre
Para obtener salidas en cualquier lugar, debe usar esto
$ Snippet -> select (name)-> gen ()Ejemplo, index.php:
$ Snippet -> start ( " test " );
$ Snippet -> line ( " a = 'Hello world' " );
$ Snippet -> line ( " print(a) " );
$ Snippet -> end ( " test " );
$ Snippet -> select ( " test " )-> gen (); Output : Hello world
Puede usar este código en otro archivo
$ Snippet -> select ( " test " )-> gen (); Output : Hello world
Salida en vivo en cualquier lugar (clase de fragmento y python) puede usar esto tan fácil
Justo antes de usar gen() use live() y luego use `` `gen (/ * puede escribir la función aquí para controlar la salida */)
$ python -> set ( " ../Python/test6.py " )-> send ( $ site )-> live ()-> gen (
function ( $ res ) {
return " <pre> $ res </pre> " ;
}
);También puede establecer el tiempo sin cada ojera de lectura (el fulta es 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> " ;});Licencia
Licencia de MIT
Copyright (c) 2021 Raeen Ahani Azari
El permiso se otorga, de forma gratuita, a cualquier persona que obtenga una copia de este software y archivos de documentación asociados (el "software"), para tratar en el software sin restricción, incluidos los derechos de los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicense y/o vender copias del software, y para permitir que las personas a quienes se les proporciona el software para hacer, sujeto a las siguientes condiciones: las siguientes condiciones: las siguientes condiciones: las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o porciones sustanciales del software.
El software se proporciona "tal cual", sin garantía de ningún tipo, expresa o implícita, incluidas, entre otros, las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. En ningún caso los autores o titulares de derechos de autor serán responsables de cualquier reclamo, daños u otra responsabilidad, ya sea en una acción de contrato, agravio o de otra manera, que surge, de o en relación con el software o el uso u otros tratos en el software.
Ejemplo
Hay ejemplos en pruebas de PHPY
Por Raeen Ahani Azari