Compilador PHP online
Escribe PHP y ejecútalo al instante en tu navegador. Ve la salida en bruto o muéstrala como página web en la vista previa HTML, salta a la línea de cualquier aviso o error fatal y comparte tu script con un enlace. Sin servidor y sin registro.
Última actualización:
PHP 8 se ejecuta en tu dispositivo mediante php-wasm (el intérprete de PHP compilado a WebAssembly). La primera ejecución descarga el entorno, de unos 10 MB, que luego tu navegador guarda en caché. Tu código nunca se sube.
Cómo usar Compilador PHP online
- Escribe o pega PHP en el editor, empezando por
<?php, o elige un ejemplo. - Pulsa Ejecutar código o Ctrl + Intro. La primera ejecución descarga el entorno de PHP; las siguientes empiezan rápido.
- Lee la salida, o cambia a la vista previa HTML cuando tu script genere una página web.
- Corrige errores haciendo clic en un aviso o error fatal bajo la salida para saltar a su línea.
- Comparte o guarda tu script con Copiar enlace para compartir o Descargar.
Cómo ejecuta tu código el compilador PHP
En un sitio web normal, una petición llega a un servidor web, el servidor pasa el archivo .php al motor de PHP y la salida del motor se devuelve como la página. Aquí el mismo motor, compilado a WebAssembly, se ejecuta dentro de tu navegador en un worker en segundo plano. Cada ejecución inicia un intérprete nuevo, así que las funciones y clases de la ejecución anterior no provocan errores "Cannot redeclare", y un bucle atascado puede detenerse sin congelar la página. Todo lo que tu script imprime con echo o print, o genera fuera de las etiquetas <?php ?>, se recoge y se muestra en la pestaña Salida o en la vista previa HTML.
Niveles de error de PHP de un vistazo
| Mensaje | ¿Continúa el script? | Causa típica |
|---|---|---|
| Parse error | No, no se ejecuta nada | Falta un punto y coma, un corchete o una comilla; unexpected token |
| Fatal error (Uncaught Error / TypeError) | Se detiene en esa línea | Función no definida, tipo de argumento incorrecto, llamar a un método sobre null |
| Warning | Sí | Clave de array no definida, variable no definida, foreach sobre algo que no es un array |
| Notice | Sí | Problemas menores, como convertir un array en cadena en algunos contextos |
| Deprecated | Sí | Una función que se eliminará en una versión posterior, como pasar null a un parámetro integrado que no admite null |
Qué funciona en PHP en el navegador
- Funciona: cadenas y funciones multibyte, arrays, matemáticas, JSON, expresiones regulares PCRE, DateTime y zonas horarias, clases, interfaces, traits, enums, generadores, closures, excepciones,
sprintfyprintf, búfer de salida. - Limitado: las funciones de archivos usan un sistema de archivos temporal en memoria que se reinicia en cada ejecución;
sleep()cuenta para el límite de tiempo. - No disponible: MySQL u otros servidores de bases de datos, peticiones HTTP salientes (curl,
file_get_contents('https://…')), mail(), datos de la petición como$_GET,$_POST, cookies y sesiones.
Consejo: para depurar un valor, usa var_dump($x) para ver tipos y longitudes o print_r($x) para una vista compacta de los arrays, y envuélvelo en <pre> cuando mires la vista previa HTML.
Preguntas frecuentes
¿Cómo puede ejecutarse PHP sin un servidor?
PHP es un intérprete escrito en C. El proyecto php-wasm compila ese intérprete a WebAssembly, un formato que cualquier navegador moderno puede ejecutar, así que esta página ejecuta el motor real de PHP en tu propio ordenador. Tu script se analiza en opcodes y se ejecuta localmente, y la salida se muestra en la página en lugar de enviarla un servidor web.
¿Qué versión de PHP se usa?
Una compilación de PHP 8 proporcionada por php-wasm; la versión exacta (por ejemplo 8.2.x) aparece en la barra de estado cuando el entorno se ha cargado y también está disponible como PHP_VERSION en tu código. Funciona la sintaxis de PHP 8.0 a 8.2, como las expresiones match, los enums, las propiedades readonly, los argumentos con nombre y el operador nullsafe.
¿Por qué mi código se imprime como texto plano?
PHP solo ejecuta el código entre las etiquetas <?php y ?>; todo lo que queda fuera se envía a la salida sin cambios. Empieza el archivo con <?php. El ?> de cierre al final es opcional y es mejor omitirlo en archivos solo de PHP, porque cualquier espacio en blanco después se convierte en salida.
¿Qué muestra la vista previa HTML?
Muestra lo que tu script imprime como una página web en un marco aislado, así que las plantillas, las tablas y el CSS en línea se ven como en un navegador. Los scripts de la vista previa pueden ejecutarse, pero no pueden acceder a esta página. Usa la pestaña Salida para ver el código HTML en bruto.
¿Puedo usar bases de datos, sesiones, $_GET o subidas de archivos?
No. En el navegador no hay servidor web ni base de datos MySQL, así que las superglobales como $_GET, $_POST y $_SESSION están vacías y las funciones de red como curl y file_get_contents con URL no están disponibles. Las extensiones básicas para cadenas, arrays, matemáticas, JSON, fechas, expresiones regulares (PCRE) y clases funcionan con normalidad.
¿Por qué mi script se detiene tras un TypeError pero continúa tras un warning?
Los warnings, notices y deprecations se notifican y la ejecución continúa. Los errores fatales, incluidas las excepciones no capturadas como TypeError, DivisionByZeroError o las llamadas a funciones no definidas, detienen el script en esa línea. Desde PHP 8, muchos warnings antiguos se convirtieron en excepciones TypeError o ValueError, que puedes capturar con try y catch.
¿Mi código es privado?
Sí. El entorno de PHP se descarga una vez desde una CDN pública y tu código se ejecuta localmente. Los enlaces para compartir guardan el código, comprimido, después del # de la URL, que los navegadores nunca envían a un servidor.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.