22 Votos

PHP: Cómo escribir la Salida de var_dump() en String

Pregunta de Invitado | 26/06/2021 a las 23:38

Para mostrar el contenido de una variable PHP, simplemente puede usar la función var_dump(). Por ejemplo, puede escribir "var_dump($array);" para mostrar el contenido de la matriz $array en PHP.

Desafortunadamente, el resultado de var_dump() siempre se escribe directamente en la página web. Con esto, no es posible almacenar el resultado en alguna variable de cadena / string para procesarlo más o más tarde.

Sin embargo, estoy buscando una función que pueda ayudarme a lograrlo de alguna manera. Entonces, ¿hay alguna posibilidad de ejecutar algo como var_dump() y guardar el resultado en una variable (una cadena / string)?

ResponderPositivoNegativoFechaVotos
22 Votos

Con el uso de la función print_r() puede hacer lo que quiera. Solo tiene que pasar "true" como segundo parámetro a la función y print_r() ya no imprimirá los resultados directamente. En su lugar, devolverá el resultado como una cadena:

$arr = array(1,2,3);
$str = print_r($arr, true);

Tenga en cuenta que la información proporcionada por print_r() no es tan detallada como la información que proviene de var_dump(), pero tal vez, esto pueda ayudarlo.
27/06/2021 a las 17:47

ResponderPositivo Negativo
11 Voto

Si desea tener exactamente la misma salida que la proporcionada por var_dump(), puede usar output buffering (búfer de salida):

ob_start();
var_dump($someVar);
$str = ob_get_clean();

Con ob_start(), se inicia el output buffering. Después de eso, la salida de su secuencia de comandos ya no se enviará al navegador. En cambio, se almacena en caché. Cada salida de cada comando que ejecutará después de ob_start(), se almacenará en el búfer. Entonces, por ejemplo, también con la salida de var_dump(). Luego, puede leer en el búfer almacenado con ob_get_clean() y puede guardarlo en cualquier variable.

Teóricamente, puede escribir su propia función para manejar esto:

function var_dump_tostring($var) {
  ob_start();
  var_dump($var);
  return ob_get_clean();
}

Después de declarar esta función, puede simplemente llamar a la función con su variable para obtener el resultado var_dump como una cadena.
27/06/2021 a las 19:18

ResponderPositivo Negativo
00 Votos

Alternativamente, también quiero sugerir la función var_export. Esta función funciona de manera similar a print_r y devuelve un código PHP válido que describe la variable pasada.

$arr = array(1,2,3);
$str = var_export($arr, true);

Similar a print_r, también puede pasar "true" como segundo parámetro para obtener el resultado devuelto como string.
28/06/2021 a las 15:12

ResponderPositivo Negativo
00 Votos

Creo que la forma clásica no debe quedar sin mencionar. También puede generar el contenido de la matriz a mano:

foreach($arr AS $key => $value) {
  echo "$key => $value 
"; }

Es cierto que, hasta ahora, todas las demás soluciones sugeridas son mucho más simples que eso.
28/06/2021 a las 21:38

ResponderPositivo Negativo
Responder

Temas Relacionados

PHP: Determinar el Número de Semana

Tutorial | 0 Comentarios

PHP: Guardar Resultado de MySQL en Array

Información | 0 Comentarios

JavaScript: window.location como String

Información | 0 Comentarios

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.