Para ocultar las advertencias, hay que dar instrucciones especiales a las libxml
que se utilizan internamente para realizar el análisis:
libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_clear_errors();
El libxml_use_internal_errors(true)
indica que usted mismo manejará los errores y las advertencias y no quiere que arruinen la salida de su script.
Este no es el mismo que el @
operador. Las advertencias se recopilan detrás de escena y luego puede recuperarlas libxml_get_errors()
en caso de que desee realizar el registro o devolver la lista de problemas a la persona que llama.
Ya sea que esté usando las advertencias recopiladas o no, siempre debe despejar la cola llamando libxml_clear_errors()
.
Preservando el estado
Si tiene otro código que lo use libxml
, puede ser útil asegurarse de que su código no altere el estado global del manejo de errores; para esto, puede usar el valor de retorno de libxml_use_internal_errors()
para guardar el estado anterior.
$libxml_previous_state = libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_clear_errors();
libxml_use_internal_errors($libxml_previous_state);