• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

externe Seite einlesen

daWonderer

New member
Hallo,

ich habe eine Funktion geschrieben, die mir eine HTML-Seite einer Url ausliest. Bei dem gleichen Hoster auf verschiedenen Servern funktioniert die Funktion auf einem auf dem anderen bekomme ich einen Connection Time-Out.
Ich habe getestet mit 'file_get_contents' und mit 'fopen/fgets'.

allow_url_fopen ist gesetzt.

Welche Einstellungen könnten noch das Öffnen der Url verhindern/verzögern so dass dieser Fehler auftritt? (der Support des Hosters hat sich jetzt schon 1 Woche nicht gemeldet nach der Anfrage)

Habe im Skript an den Anfang ein Errors auf E_ALL geschaltet, aber es kommen keine Warnungen/Fehler. Nur der Timeout nach sehr langer Zeit.

"Warning: fopen(...): failed to open stream: Connection timed out in /functions.php on line 342"

Das gleiche Skript läuft aber wie gesagt auf einem anderen Server dieses Hosters! :confused:

Die PHP-Konfiguration kann ich mir nicht komplett anzeigen lassen:

"Warning: phpinfo() has been disabled for security reasons in ..."

Hat jmd.evtl.ne Idee? Danke schon mal!
 
Gibt es Unterschiede in der Einstellung default_socket_timeout? Vielleicht ist sie beim nicht richtig arbeitendem Hoster zu tief.
 
Dürften wir das Script mal sehen?

Ja, okay. Erstmal die beiden Links auf den verschiedenen Servern:

http://wonderer.de/php_stuff/include.tst.php

http://zwickauerland.info/temp/include.tst.php

hier die Funktion welche den Stream einliest:
Code:
 function getSiteParts($site,$isUrl=false)
 {
  if($isUrl)
  {
   /*
   $handle = fopen($site,'r');
   $events = '';
   $i = -1;
   while(!feof($handle))
   {
    $zeile = fgets($handle);
    if($zeile != '')
    {
     $events .= $zeile;
    }
   }
   $site = $events;
   */
   $site = file_get_contents($site);
  }
  $siteParts = array();
  $strPos = 0;
  $strUpper = strtoupper($site);
  // DOCTYPE suchen
  $docPos = strpos($strUpper,'<!DOCTYPE');
<snip...>
  return $siteParts;
}

include.tst.php
Code:
<?
  require('./functions.php');
  echo '<table width="100%"><tr><td width="20%"> </td><td>';
  $siteParts = getSiteParts('http://www.videoblick.de/regional/hohenstein-ernstthal/070519/index1.php',true);
  echo $siteParts['body'];
  echo '</td><td width="20%"> </td></tr></table>'
?>

Ursprünglich lief das Script mit dem auskommentierten Teil mit fopen/fgets. Als es dann nicht mehr lief habe ich file_get_contents versucht. Leider ohne Erfolg. Wenn ich fopen verwende kommt auch der Timeout und dann die Meldungen der Schleife, dass $handle kein gültiger Stream ist für feof/fgets.
 
Letzter Versuch: Einfach mal eine Verbindung mit fsockopen öffnen. Vielleicht einfach mal zu Google oder Wo-der-Pfeffer-zu-wachsen-Pflegt.

Wenn das nicht geht, kann ich dir nicht mehr weiter helfen. Dann tippe ich auf höhere Gewalt wie eine Firewall o.ä., Zwickau hat den Mauerfall nicht richtig miterlebt oder die PHP-Installation ist korrupt.
 
Also das 3. (oder 4.?) Argument in fsockopen ist das Timeout in Sekunden, gell?
Also nicht dass du dort eine 2 stehen hast und meinst es wären 2 Minuten...
 
Zurück
Oben