¿Es posible escribir una cadena o iniciar sesión en la consola?
Lo que quiero decir
Al igual que en JSP, si imprimimos algo así system.out.println("some")
, estará allí en la consola, no en una página.
Firefox
En Firefox puede usar una extensión llamada FirePHP que permite el registro y descarga de información de sus aplicaciones PHP a la consola. Este es un complemento de la increíble extensión de desarrollo web Firebug .
Cromo
Sin embargo, si está utilizando Chrome, existe una herramienta de depuración de PHP llamada Chrome Logger o webug (webug tiene problemas con el orden de los registros).
Más recientemente Clockwork está en desarrollo activo, que amplía las Herramientas para desarrolladores al agregar un nuevo panel para proporcionar información útil de depuración y creación de perfiles. Proporciona soporte inmediato para Laravel 4 y Slim 2 y se puede agregar soporte a través de su API extensible.
Usando Xdebug
Una mejor manera de depurar tu PHP sería a través de Xdebug . La mayoría de los navegadores proporcionan extensiones auxiliares para ayudarlo a pasar la cadena de cookie / consulta requerida para inicializar el proceso de depuración.
O usas el truco de PHP Debug para consolar .
Primero necesitas una pequeña función auxiliar de PHP
Entonces puedes usarlo así:
Esto creará una salida como esta:
fuente
"Debug Objects: " . $data . ""
$data
aparece en la salida, entonces no ha escrito la función exactamente como se muestra. Mire cuidadosamente sus comillas simples y dobles, para asegurarse de que coincidan con el código anterior.$data
es una variable php; para cuando la página se envíe al navegador, esa variable php habrá sido reemplazada por el parámetro pasado adebug_to_console
. El navegador nunca debería ver$data
. (Si mirapage source
en el navegador, no debería decir$data
).Si está buscando un enfoque simple, repita como JSON:
fuente
function debug_log( $object=null, $label=null ){ $message = json_encode($object, JSON_PRETTY_PRINT); $label = "Debug" . ($label ? " ($label): " : ': '); echo "<script>console.log(\"$label\", $message);</script>"; }
Por defecto, todos los resultados van a
stdout
, que es la respuesta HTTP o la consola, dependiendo de si su script es ejecutado por Apache o manualmente en la línea de comando. Pero puede usarloerror_log
para iniciar sesión y se pueden escribir varias secuencias de E / S confwrite
.fuente
error_log
es lo que necesitaba para enviar al terminal desde el servidor web incorporado de PHPIntenta lo siguiente. Está funcionando:
fuente
Crea un
con el
para que no se muestre el div, sino el
La función se crea en JavaScript. Entonces recibes el mensaje en la consola.
fuente
div
. Si solo tiene un<script>
bloqueo, no se mostrará nada en el navegador.json.encode
que las comillas no rompan su línea de código. Por ejemplo:echo "<script>console.log(".json_encode($msg).")</script>";
Como autor de la página web vinculada en la respuesta popular , me gustaría agregar mi última versión de esta función auxiliar simple. Es mucho mas solido.
Utilizo
json_encode()
para verificar si el tipo de variable no es necesario y también agrego un búfer para resolver problemas con marcos. No tiene un rendimiento sólido o un uso excesivo deheader()
.Uso
Captura de pantalla del resultado.
También un ejemplo simple como imagen para entenderlo mucho más fácilmente:
fuente
Creo que se puede usar
fuente
Algunas excelentes respuestas que agregan más profundidad; pero necesitaba algo más simple y más parecido al JavaScript
console.log()
comando .Utilizo PHP en una gran cantidad de "recopilación de datos y convertir en XML" en aplicaciones Ajax. El JavaScript
console.log
no funciona en ese caso; rompe la salida XML.Xdebug, etc. tuvo problemas similares.
Mi solución en Windows:
.txt
archivo que sea fácil de acceder y que se pueda escribirerror_log
variable PHP en el.ini
archivo para escribir en ese archivoerror_log('myTest');
comando PHP para enviar mensajesEsta solución es simple y satisface mis necesidades la mayor parte del tiempo. PHP estándar, y el panel de vista previa se actualiza automáticamente cada vez que PHP escribe en él.
fuente
json_encode
también resolvería el problema? Si es así, puede ser que las comillas dentro del mensaje interfieran con las comillas en el script. (por ejemplo:)echo "<script>console.log(".json_encode($msg).")</script>";
. De lo contrario, tengo curiosidad por saber cuál fue el problema que causó que el script console.log se rompiera y cómo / por qué su solución lo solucionó. Su solución es buena: solo estoy tratando de aprender más sobre las condiciones que causaron laconsole.log
ruptura de la salida xml. En muchos casos, un registro de errores como lo hizo es mucho mejor que uno rápidoconsole.log
.Interacción PHP y JavaScript.
fuente
Esto me parece útil:
Y úsalo como:
Qué salidas en la consola:
Y puede desactivar los registros menos importantes limitándolos con el valor $ debug.
fuente
console('Even Less Important' ,6 , $debug);
esto, ¿no se mostrará en la consola? ¿porque? ¿No se muestra nada por encima de 5?$output = '<script>console.log("' . str_repeat(" ", $priority-1)
y. '");</script>';
. Soloimplode(",", $data)
y$data
es diferente.Corto y fácil, para matrices, cadenas o también objetos.
fuente
fuente
Si desea escribir en el archivo de registro de PHP, y no en la consola de JavaScript, puede usar esto:
error_log("This is logged only to the PHP log")
Referencia: error_log
fuente
Para Chrome hay una extensión llamada Chrome Logger permite registrar mensajes PHP.
Las DevTools de Firefox incluso tienen soporte integrado para el protocolo Chrome Logger .
Para habilitar el registro, solo necesita guardar el archivo 'ChromePhp.php' en su proyecto. Entonces se puede usar así:
Ejemplo tomado de la página de GitHub .
La salida puede verse así:
fuente
"ccampbell/chromephp": "*"
También hay una gran extensión de Google Chrome, Consola PHP , con una biblioteca PHP que le permite:
error file:line
en tu editor de texto.fuente
Estaba buscando una forma de depurar código en un complemento de WordPress que estaba desarrollando y encontré esta publicación.
Tomé los bits de código que me son más aplicables de otras respuestas y los combiné en una función que puedo usar para depurar WordPress. La función es:
El uso es el siguiente:
Si esta función se usa con el desarrollo de WordPress, la función se debe colocar en el
functions.php
archivo del tema secundario y luego se puede invocar en cualquier parte del código.fuente
He abandonado todo lo anterior en favor de Debugger & Logger . No puedo alabarlo lo suficiente!
Simplemente haga clic en una de las pestañas en la parte superior derecha, o en el "clic aquí" para expandir / ocultar.
Observe las diferentes "categorías". Puede hacer clic en cualquier matriz para expandirla / contraerla.
Desde la página web
fuente
A partir de 2017, Firebug y, por lo tanto, FirePHP se ha deshabilitado .
Escribí algunas pequeñas modificaciones en la herramienta ChromePHP para permitir una migración perfecta de FirePHP a Firebug para la depuración a través de la consola.
Este artículo explica en pasos claros y fáciles
Migre de FirePHP a ChromePHP en 5 minutos (sin romper el código existente)
fuente
Para las llamadas Ajax o las respuestas XML / JSON, donde no desea meterse con el cuerpo, debe enviar registros a través de encabezados HTTP, luego agregarlos a la consola con una extensión web. Así es como FirePHP (ya no está disponible) y QuantumPHP (una bifurcación de ChromePHP) lo hacen en Firefox.
Si tiene paciencia, x-debug es una mejor opción: obtiene una visión más profunda de PHP, con la capacidad de pausar su script, ver lo que está sucediendo y luego reanudar el script.
fuente
Puede que llegue tarde a una fiesta, pero estaba buscando una implementación de la función de registro que:
console.log()
,console.log()
.Entonces la salida se ve así:
(El fragmento a continuación se prueba en php
7.2.11
. No estoy seguro de su compatibilidad con versiones anteriores de php. También puede ser un problema para JavaScript (en términos de navegadores antiguos), porque crea una coma final después de losconsole.log()
argumentos, lo cual no es legal hastaES 2017
.)fuente
Cualquiera de estos dos está funcionando:
fuente
Aquí está mi solución, lo bueno de esta es que puedes pasar tantos parámetros como quieras.
Llámalo de esta manera
Ahora debería poder ver la salida en su consola, feliz codificación :)
fuente
Utilizar:
fuente
Aquí hay una función útil. Es súper simple de usar, le permite pasar tantos argumentos como desee, de cualquier tipo, y mostrará el contenido del objeto en la ventana de la consola del navegador como si llamara console.log desde JavaScript, pero desde PHP
Tenga en cuenta que también puede usar etiquetas pasando 'TAG-YourTag', y se aplicará hasta que se lea otra etiqueta, por ejemplo, 'TAG-YourNextTag'
NOTA: func_num_args () y func_num_args () son funciones de PHP para leer un número dinámico de argumentos de entrada, y permiten que esta función tenga infinitas solicitudes de console.log de una llamada de función.
fuente
Aunque esta es una vieja pregunta, he estado buscando esto. Aquí está mi compilación de algunas soluciones respondidas aquí y algunas otras ideas encontradas en otros lugares para obtener una solución única para todos.
CÓDIGO
PRUEBAS Y USO:
El uso es simple. Incluya la primera función para publicar en la consola manualmente. Use la segunda función para desviar el manejo de excepciones de php. La siguiente prueba debería dar una idea.
EXPLICACIÓN
La función
console($data, $is_error, $file, $fn)
toma una cadena o matriz como primer argumento y la publica en la consola usando inserciones js.El segundo argumento es una bandera para diferenciar los registros normales de los errores. Para errores, estamos agregando oyentes de eventos para informarnos a través de alertas si se arrojaron errores, también resaltando en la consola. Esta bandera está predeterminada en falso.
Los argumentos tercero y cuarto son declaraciones explícitas de archivos y números de línea, que es opcional. Si está ausente, están predeterminados para usar la función predefinida de php
debug_backtrace()
para buscarlos para nosotros.La siguiente función
exceptions_to_console($svr, $str, $file, $ln)
tiene cuatro argumentos en el orden invocado por el controlador de excepciones predeterminado de php. Aquí, el primer argumento es la gravedad, que verificamos con constantes predefinidas utilizando la funciónseverity_tag($code)
para proporcionar más información sobre el error.AVISO :
El código anterior utiliza funciones y métodos JS que no están disponibles en navegadores antiguos. Para compatibilidad con versiones anteriores, necesita reemplazos.
El código anterior es para probar entornos, donde solo usted tiene acceso al sitio. No use esto en sitios web en vivo (producción).
SUGERENCIAS
La primera función
console()
arrojó algunos avisos, así que los incluí dentro de otra función y la llamé usando el operador de control de errores '@'. Esto se puede evitar si no le importaron los avisos.Por último, pero no menos importante, las alertas emergentes pueden ser molestas durante la codificación. Para esto estoy usando este pitido (que se encuentra en la solución: https://stackoverflow.com/a/23395136/6060602 ) en lugar de alertas emergentes. Es genial y las posibilidades son infinitas, puedes tocar tus canciones favoritas y hacer que la codificación sea menos estresante.
fuente