esperar a la función fopen

Iniciado por franfis, 12 Marzo 2014, 18:42 PM

0 Miembros y 1 Visitante están viendo este tema.

franfis

hola amigos, ¿como podría esperar? a que la función fopen($url,"r") abra totalmente el recurso de internet $url ya que como la ejecución es muy rápida no espera.

Muchas gracias a cualquier sugerencia.  ::)

engel lex

fopen no carga paginad a medias o algo hasta donde se, el crea solo un puntero al archivo o pagina solicitada, cómo estás obteniendo los datos?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

franfis

Este es el código:
for ($i=0;$i<20;$i++){
  $url=$array[$i];
  $Flu = fopen($url,"r") or die("Problemas en el URL");

  while (!feof($Flu)){
    $linea = fgets($Flu);
    echo $linea;
  }}

Cuando lo ejecuto solo imprime una parte de cada contenido no la totalidad, que debo hacer para que imprima todo el contenido de cada uno.

Graciass

engel lex

1- estás imprimiendo una pagina dinámica que tal vez esté detectando navegador o necesite jscript para generar contenido?

2- que pagina estás intentado imprimir?

3- el código no te está retornando ningún error? (chequeaste el código fuente?)

porfa de ser posible responder todas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

franfis

No hay problema con la url ya lo probé uno a uno, me parece que estoy sobrescribiendo la variable $Flu o no se.

Porque es imposible imprimir todo a la misma velocidad de la ejecución ya que tiene que leer de internet es por eso de que mi idea es de esperar a que termine de leer la primera y seguir con la segunda...etc etc. Entonces el resultado que estoy obteniendo es muy obvio.

El código no tiene ningún error.

engel lex

el normalmente en fgets se detiene a esperar toda la info, puedes intentar con file($url) que sin más lineas de código te da un array que contiene cada una de las lineas del archivo.... puedes hacer algo así

Código (php) [Seleccionar]

$FLu = file($url);
foreach ($FLu as $linea)
    echo $linea;
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

franfis

Gracias, lamentablemente el resultado es exactamente el mismo. Creo el problema esta en alguna variable sobrescrita.

engel lex

yo creo que en realidad el problema es algo en la pagina, revisaste tu código fuente? analizaste a ver si es que se cargó mal y el navegador no lo muestra?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

franfis

Tienes toda la razón engelx, se detiene en fgets  a esperar toda la info. Te ofrezco mis disculpas por hacerte trabajar en vano.

Mi error estaba en la url como decias, ya que era una mezcla de cadenas y variables, había un punto por demás.  Me di cuenta haciendo un echo $url.

Graciass y saludos


engel lex

 :P no hay problema jeje me ha pasado XD por eso te decia... en mi caso fue porque un js con ajax generaba buena parte del site :P
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.