he desarrollado un plugin de jQuery que te permite llamar a cualquier función básica de PHP o incluso funciones de PHP definidas por el usuario como métodos del plugin: jquery.php
Después de incluir jQuery y jquery.php en la cabeza de nuestro documento y colocar request_handler.php en nuestro servidor, comenzaríamos a usar el plugin de la manera que se describe a continuación.
Para facilidad de uso hacen referencia a la función de una manera sencilla:
var P = $.fn.php;
Entonces inicializar el complemento:
P('init',
{
// The path to our function request handler is absolutely required
'path': 'http://www.YourDomain.com/jqueryphp/request_handler.php',
// Synchronous requests are required for method chaining functionality
'async': false,
// List any user defined functions in the manner prescribed here
// There must be user defined functions with these same names in your PHP
'userFunctions': {
languageFunctions: 'someFunc1 someFunc2'
}
});
Y ahora algunos escenarios de uso:
// Suspend callback mode so we don't work with the DOM
P.callback(false);
// Both .end() and .data return data to variables
var strLenA = P.strlen('some string').end();
var strLenB = P.strlen('another string').end();
var totalStrLen = strLenA + strLenB;
console.log(totalStrLen); // 25
// .data Returns data in an array
var data1 = P.crypt("Some Crypt String").data();
console.log(data1); // ["$1$Tk1b01rk$shTKSqDslatUSRV3WdlnI/"]
Demostrando PHP función de encadenamiento:
var data1 = P.strtoupper("u,p,p,e,r,c,a,s,e").strstr([], "C,A,S,E").explode(",", [], 2).data();
var data2 = P.strtoupper("u,p,p,e,r,c,a,s,e").strstr([], "C,A,S,E").explode(",", [], 2).end();
console.log(data1, data2);
que demuestra el envío de un bloque de JSON PHP pseudo-código:
var data1 =
P.block({
$str: "Let's use PHP's file_get_contents()!",
$opts:
[
{
http: {
method: "GET",
header: "Accept-language: en\r\n" +
"Cookie: foo=bar\r\n"
}
}
],
$context:
{
stream_context_create: ['$opts']
},
$contents:
{
file_get_contents: ['http://www.github.com/', false, '$context']
},
$html:
{
htmlentities: ['$contents']
}
}).data();
console.log(data1);
La configuración de la dorsal proporciona una lista blanca para que pueda restringir qué funciones se pueden llamar. También hay algunos otros patrones para trabajar con PHP descritos por el complemento.
Pasar PHP código PHP generado por JavaScript para ser evaluado, o hacerlo al revés, es ** una ** mala idea. –
¿Puedes explicar por qué es malo? – Catfish
Porque CUALQUIERA puede poner CUALQUIER código en lugar de su código, y así pueden hacer cosas malas a su servidor. –