Foros del Web » Programando para Internet » PHP »

Ignorar E_STRICT en linea php (sin tocar php.ini)

Estas en el tema de Ignorar E_STRICT en linea php (sin tocar php.ini) en el foro de PHP en Foros del Web. Hola a tod@s. Estoy con el objeto DOMDocument. este objeto me viene devolviendo errores E_STRICT cada vez que se encuentra un error de sintaxis a ...
  #1 (permalink)  
Antiguo 03/08/2010, 03:56
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 17 años
Puntos: 16
Ignorar E_STRICT en linea php (sin tocar php.ini)

Hola a tod@s.

Estoy con el objeto DOMDocument.
este objeto me viene devolviendo errores E_STRICT cada vez que se encuentra un error de sintaxis a lo <table><tr><tr><td>, etiquetas mal cerradas....
como el código que recojo en este objeto no depende de mi, esto no lo puedo solucionar

en 1er lugar el código lo puse así:
$dom = new DOMDocument();
$dom->loadHTML($html);
intenté solucionarlo con : @$dom->loadHTML($html); y nada....
en la documentación php viene lo siguiente:
Cita:
Devuelve TRUE en caso de éxito o FALSE en caso de error. Si es llamada de manera estática devuelve un objeto DOMDocument y genera una advertencia E_STRICT.
Entiendo por estática, llamar a loadHTML sin asignar el resultado a una variable por lo que se me queda el código así:
$res=@$dom->loadHTML($html);
if($res)... que haga lo que toca
pero sigue saltando.

Estoy buscando la manera de ignorar estos errores y de entrada me encuentro con que hay que tocar el php.ini, pero no puedo en principio, porque veo necesario en otros puntos del código saber si hay fallos.

Estoy mirando si hay manera de evitar esto con las funciones de manejo de errores, pero no estoy familiarizada con ellas y tampoco sé muy bien que tengo que mirar.

¿Me podríais por favor orientar un poquito?
Muchas gracias de antemano :)
un saludo
  #2 (permalink)  
Antiguo 03/08/2010, 05:51
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

Lo que se refiere en cuanto si es llamado de manera estatica es cuando la clase da la opción de llamar directamente al método sin iniciar la clase...
Código PHP:
Ver original
  1. //Método normal de uso de clases
  2. $clase = new MyClass();
  3. $clase->metodo();
  4.  
  5. //Llamar a un método estático
  6. $clase = MyClass::metodo();

Como vez la segunda no fue necesario iniciar la clase (new clase()) si no se llamo directamente al método, PERO, esto unicamente se puede hacer en los métodos declarados de manera estática (static function mimetodo())
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 03/08/2010 a las 05:59
  #3 (permalink)  
Antiguo 03/08/2010, 05:56
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 17 años
Puntos: 16
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

gracias por la aclaración, no tenía ni idea.
Lo tendré presente :)
sobre el manejo de errores, aún sigo igual :S
  #4 (permalink)  
Antiguo 03/08/2010, 06:00
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 15 años, 1 mes
Puntos: 10
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

ini_set('display_errors', 0);

Adiós a todos los errores en la página que lo pongas

Edito: pese a lo que parezca que haya puesto, los errores siguen, pero no se muestran
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #5 (permalink)  
Antiguo 03/08/2010, 07:04
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 17 años
Puntos: 16
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

lo estoy probando y no me los quita, ya estaba dando palmas con las orejas demasiado rápido.

lo mismo es que algo tengo mal en el código.

El error que me salta es este:
DOMDocument::loadHTML() [domdocument.loadhtml]: Unexpected end tag : p in Entity, line: 582
C:\AppServ\www\pagina\v2\modules\Management\includ es\Sitemap_Google.class.php 266
la linea 266 es esta: @$dom->loadHTML($html)
pero muchas veces, unas con p, otras con tr, td, ....

y ya me estoy liando porque como dijo Nemutagk llamo a la funcion con $dom->loadHTML();
y no con DOMDocument::loadHTML()

pero bueno, ya me dejas la pistilla de por donde va la cosa, que se agradece :)
  #6 (permalink)  
Antiguo 03/08/2010, 07:17
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 15 años, 1 mes
Puntos: 10
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

La POO no es lo que mejor domino, pero según tengo entendido:
$dom->loadHTML();
DOMDocument::loadHTML()

Son lo mismo: uno es aplicado, y el otro se refiere en el manual lo que genera (documento DOM) igualmente, no se por que no va esa línea mía, porque a mi me va perfectamente allá donde lo uso. Lo has puesto al inicio del script?
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #7 (permalink)  
Antiguo 03/08/2010, 07:36
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 17 años
Puntos: 16
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

lo estoy poniendo al principio del archivo de la clase que me lo devuelve y del template que me lo muestra por pantalla y nada.
en la documentación de DOMDocument pone esto:

Cita:
Si una cadena vacia es pasada como el source o se pasa el nombre de un archivo vacío, se generará una advertencia. Esta advertencia no es generada por libxml y no puede ser manejada utilizando las funciones de manejo de erro de libxml.
no sé si lo mismo no me lo está haciendo por lo que dice de libxml :(
y edito...porque creo que no puede ser, sé positivamente que no estoy pasando el nombre de un archivo vacio
  #8 (permalink)  
Antiguo 05/08/2010, 02:30
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 17 años
Puntos: 16
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

Sigo con los fallos.
He visto que tengo una clase que trata los errores con set_error_handler() y está en un archivo que no puedo tocar.

¿Hay manera de decir que no sea tratado un archivo con esta función?

Gracias
  #9 (permalink)  
Antiguo 01/09/2010, 05:58
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 17 años
Puntos: 16
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

bueno, tube que dejar esto de lado un tiempo. Ya he dado con la solución.
al principio del fichero he puesto
function ignore($errno, $errstr){
echo "";
}
set_error_handler("ignore");

y al final
restore_error_handler();
  #10 (permalink)  
Antiguo 01/09/2010, 09:39
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 11 meses
Puntos: 89
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

La verdadera solución no es ignorar los errores... es solucionarlos .
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #11 (permalink)  
Antiguo 01/09/2010, 09:57
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 17 años
Puntos: 16
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

eso intento siempre, pero el html que rastreo no es mio y la solucion es liarme a mandar mails para que cierren los tr y los td cuando toca...lo mismo me mandan a la mierda XDD
  #12 (permalink)  
Antiguo 01/09/2010, 10:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

Cita:
Iniciado por manzarinaa Ver Mensaje
eso intento siempre, pero el html que rastreo no es mio y la solucion es liarme a mandar mails para que cierren los tr y los td cuando toca...lo mismo me mandan a la mierda XDD
¿y porque no usar Tidy para normalizar el HTML antes de cargarlo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 01/09/2010, 10:43
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 17 años
Puntos: 16
Respuesta: Ignorar E_STRICT en linea php (sin tocar php.ini)

porque no sabía de su existencia.
Lo voy a mirar!
gracias :)

Etiquetas: ignorar, linea
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:35.