Cómo borrar los elementos anteriormente eco en PHP
Pregunta
En PHP, ¿hay alguna manera de borrar / eliminar todos los elementos anteriormente eco o impresas?
Por ejemplo:
<?php
echo 'a';
print 'b';
// some statement that removes all printed/echoed items
echo 'c';
// the final output should be equal to 'c', not 'abc'
?>
Mi secuencia de comandos utiliza el include función. No se supone que los archivos incluidos hacerse eco de nada. Sólo en caso de que alguien (ex = pirata informático) intenta, necesito una manera de eliminar.
Solución
<?php
ob_start();
echo 'a';
print 'b';
// some statement that removes all printed/echoed items
ob_end_clean();
echo 'c';
// the final output is equal to 'c', not 'abc'
?>
Las funciones de almacenamiento intermedio de salida también son útiles en hackery para obligar a funciones que sólo se imprimen para volver cuerdas, es decir.
<?php
ob_start();
var_dump($myVar);
$data = ob_get_clean();
// do whatever with $data
?>
Otros consejos
mientras @monoxide es correcto, es mejor encontrar formas más intuitivas de hacer lo mismo. por ejemplo:.
<?php
$val_to_print = $a;
if( $need_to_change==true )
$val_to_print = $b;
// when you are sure you won't have to change again...
echo $val_to_print;
?>
Saludos,
JRH
Si es resultado de la depuración y la información del estado del programa está preocupado por tal trigger_error puede estar más cerca de lo que necesita, como por ejemplo:
trigger_error ("Attempting to load report #{$report_id}.", E_USER_NOTICE);
Cuando el script se encuentra en producción no lo puedo mostrar a los errores como generalmente son discapacitados o no ha entrado. También es mejor que ver los errores fatales de esta manera con E_USER_ERROR en lugar de utilizar die ().
ob_start ();
require ($filename);
$html = ob_get_clean ();
Lo anterior también incluirá un archivo y le dará su contenido como una cadena.
Advertencia:. Ditching Los reguladores también deshacerse de cualquier mensaje de error planteados, por lo que la depuración (potencialmente) una pesadilla
Si un hacker digamos que tiene acceso a su archivo PHP, también será capaz de quitar la instrucción borrar la memoria de salida.
Si usted está haciendo esto porque usted está dejando a sus usuarios subir scripts PHP, déjenme decirles que esta es una muy mala idea.
En ambos casos, haciendo lo que está pidiendo añade 0 de seguridad.