2011-02-25 10 views
5

¿es posible ejecutar alguna expresión javascript? por ejemplo echo eval("Math.sqrt('25')");php run código de JavaScript

+3

PHP se ejecuta en el servidor, JS en el cliente. Por lo tanto, no, PHP no puede ejecutar JS. – nico

+0

@nico JS es independiente de la plataforma y, por lo tanto, puede ejecutarse donde desee. node.js es un servidor web que usa JS para scripting. AppJet y jGate son otros ejemplos. – kim3er

+0

@ kim3er: Claro, pero si hace eco del JS, se ejecutará en el cliente, no en el servidor. Además, no tenemos indicación alguna de que tenga acceso al servidor. – nico

Respuesta

6

En situaciones normales:

  • PHP se ejecuta en el servidor
  • y, a continuación, JavaScript se ejecuta en el cliente, en el navegador.

Así que, no, no es posible que PHP ejecute código JavaScript en el servidor.


Pero existe al menos en la extensión PHP que incrustar (o envolver arround) un motor de Javascript, y, como consecuencia, le permite a uno ejecutar código JavaScript en el servidor, desde PHP.

La extensión en la que estoy pensando es en la spidermonkey: instalarla y habilitarla en su servidor le permitirá ejecutar código JavaScript, en el servidor, desde PHP.

Por supuesto, como cualquier otra extensión de PHP, tendrá que ser el administrador de su servidor, para instalarlo, y este nunca se instala de forma predeterminada, ya que responde a una necesidad muy específica.


Sobre esta extensión, nunca he visto que se usa en situaciones reales, y no hay muchas personas que lo han probado ... Aquí hay dos artículos es posible que desee leer:

+1

http://css.dzone.com/articles/running-javascript-inside-php puede usar v8 si tiene derechos de administrador. –

5

Prueba este

echo "<script language='javascript'> Math.sqrt('25') </script>" 
1

Dado que PHP es un lenguaje de script del lado del servidor que se ejecuta en el servidor y Javascript es un lenguaje de script del lado del cliente que se ejecuta en un navegador que tendría que tener el PHP genera código Javascript (de la misma manera que genera HTML) que se ejecuta después de que se carga la página.

2

También existe la J4P5

No sé si todavía está mantenida pero siempre se puede bifurcar él, es liberado bajo la licencia GPL.

2

poner su php en un div oculto y que la llaman con javascript

html/php parte

<div id="mybox" style="visibility:hidden;"> echo sqrt(25); </div> 

Javascript parte

var myfield = document.getElementById("mybox"); 
myfield.visibility = 'visible'; 

ahora, puede hacerlo cualquier cosa con myfield ... como este

alert(myfield);