Foros del Web » Programando para Internet » PHP »

limitaciones en tamaño de array o de script?

Estas en el tema de limitaciones en tamaño de array o de script? en el foro de PHP en Foros del Web. Buenas a todos. Tengo un script que me trae de cabeza y es que es un script que se conecta a una página y copia ...
  #1 (permalink)  
Antiguo 20/12/2011, 18:23
 
Fecha de Ingreso: febrero-2011
Mensajes: 78
Antigüedad: 13 años, 2 meses
Puntos: 0
limitaciones en tamaño de array o de script?

Buenas a todos. Tengo un script que me trae de cabeza y es que es un script que se conecta a una página y copia los datos para después insertarlos en mi BD. La página tiene 507665 resultados y muestra 10 resultados por pagina. Así que ya os podéis imaginar que establezco unas 30 o 40 vueltas para probarlo y luego pongo un break. Esta prueba funciona sin problema, hace las conexiones y las insert en la base de datos.
Lo siguiente que voy a explicar es cómo he escrito el bot, y es que primero hace TODAS las conexiones y lo va cargando en varios arrays (cada uno con sus datos) y después hace un foreach del array de urls y por cada uno hace una curl para entrar en esos enlaces a pescar unos datos adicionales. Con lo cual primero hace 57665 conexiones y después hace 507665 para pescar los datos restantes.
Finalmente hace los insert, pero a esta parte no llega. Me sale un pantallazo en blanco, sin mensaje de error ni nada y eso que los tengo todos controlados con mensajes de error pero nada, sale un pantallazo blanco.
Ahora un dato adicional, esta tarde lo probé en un pc que no era el mío y allí si que llegó a la fase de carga de datos en la BD, solo que tuve que abortar para editar porque no estaba haciendo una de las insert. Ahora desde casa lo estoy intentando y leo el código y todo parece que esté bien, pero me encuentro con este pantallazo en blanco al cabo de una hora mas o menos, y según he leído por ahí se puede configurar el límite de memoria que usa un script, alguien sabe si es por culpa de eso te puedes encontrar con un pantallazo en blanco?? y sabéis algo sobre la configuración por defecto y como cambiarla??
Saludos y gracias a todo aquel que lea el post
  #2 (permalink)  
Antiguo 20/12/2011, 18:58
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: limitaciones en tamaño de array o de script?

Si obtienes pantalla en blanco, es muy posible que exista un error pero la configuración de tu servidor impida mostrarlo, pon ésta línea al inicio de tu script, debe mostrar algo:
Código PHP:
Ver original 

Por cierto, deberías también compartirnos tu código
Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 20/12/2011, 19:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 78
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: limitaciones en tamaño de array o de script?

No tengo inconveniente en hacerlo pero es largo, creo que es mejor si os lo resumo ya que para lo que tengo que preguntaros creo que es mejor no molestaros con ciento y pico líneas de código.
  #4 (permalink)  
Antiguo 20/12/2011, 19:12
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: limitaciones en tamaño de array o de script?

¿Hiciste lo que te indiqué?
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 20/12/2011, 19:25
 
Fecha de Ingreso: febrero-2011
Mensajes: 78
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: limitaciones en tamaño de array o de script?

Cita:
Iniciado por Sourcegeek Ver Mensaje
¿Hiciste lo que te indiqué?


Si lo he hecho y he lanzado el bot de nuevo, pero hasta que se pare y muestre el mensaje de error tiene que pasar un rato. Ojalá sea lo que has dicho.
  #6 (permalink)  
Antiguo 20/12/2011, 19:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 78
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: limitaciones en tamaño de array o de script?

Terminó de cargar antes de lo que me esperaba, pero lo mismo. Pantallazo blanco :s


Existe esta funcion ini_set() que sirve para configurar directivas de php.ini pero la lista de parámetros es interminable y ahora mismo no me la voy a leer. Alguno será el del tamaño de memoria pero weno mañana lo consultaré en el curro. Supongo que el compi sabrá qué es lo que pasa, porque me extraña mucho que allí haya funcionado y ahora aquí no. No he hecho grandes cambios como para que ahora no funcione así que debe de ser tema de memoria. Mañana lo confirmo, gracias por la ayuda!
  #7 (permalink)  
Antiguo 20/12/2011, 19:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: limitaciones en tamaño de array o de script?

Cita:
Con lo cual primero hace 57665 conexiones y después hace 507665 para pescar los datos restantes.
Mira, sin entrar en los considerandos del PHP, que no es mi dominio específico, lo que si te puedo decir es que crear 57.665 conexiones a la base para obtener datos no sólo es una pésima práctica, no puedo decirte cómo se califica eso porque se supone que no hay que poner expresiones soeces, pero te puedes imaginar lo que estoy pensando...

En primer lugar, estas sobrecargando el enlace con conexiones, cuando la creación de una es la parte que más recursos le insume al sistema operativo.
Además, si haces 57.665 peticiones de conexión a un sitio, especialmente en forma automática, los filtros del servidor Web lo tomarán como un ataque, o como mínimo, como actividad sospechosa, ya que ningún programador serio haría eso. Sólo si estás programando un software furtivo.
A eso súmale que las conexiones a la base usan otro caudal de recursos, y es muy común que los administradores de los Servidores de Base de Datos pongan a los usuarios un límite de conexiones/hora para prevenir actividades no lícitas, y puedo asegurarte desde ya que 57.665 conexiones se consideran demasiadas para un script. Muy probablemente el servidor bloquee las conexiones por políticas de seguridad.

La buena práctica es usar una única conexión y realizar todas las peticiones a través de ella. No crear semejante caudal, que como dije, a un hosting le resultará enormemente sospechoso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: tamaño
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 08:38.