Mehrere fopen in While Schleife

droni

Erfahrenes Mitglied
Hallo,

ich stehe mal wieder vor einem Rätsel :rolleyes:

Und zwar habe ich eine .txt Datei, in der mehrere URLs untereinander stehen.
Ich rufe die Datei auf und gehe sie Zeile für Zeile mit fgets durch.
Nun soll jede URL aus der Datei ebenfalls wegen einer Auswertung geöffnet werden (ich versuche es auch mit fopen). Die Url hat einen Aufbau wie http://test.seite.de/unterdir/weiteres_unterdir/

Nun das komische.... in meiner url.txt stehen derzeit 3 Links drin. Diese sind per Browser alle korrekt erreichbar. Im Script erhalte ich für die ersten beiden Links den 404-Fehler von dem Server wessen Seite ich aufrufe. Der letzte geht dann.

Wenn ich die Reihenfolge der Links in der Datei tausche, bleiben trotzdem die ersten beiden bei 404. (Auch der, der vorher als letztes kam) und die Url die jetzt unten steht, wird korreckt eingelesen.

Das machte mich schon stutzig... aber weiter.
Dann habe ich mal nicht mit einer Datei gearbeitet, den Datei-auslese kram entfernt, dann eine URL in eine Variable gespeichert. Den ganzen brocken kopiert, zwei mal eingefügt und die URLs abgeändert. Sprich 3 mal den gleichen Code untereinander nur mit den verschiedenen Adressen. DAS KLAPPT! *koppkratz*
Kann es aber nicht sein. Die Adressen ändern sich schonmal und ich möchte die Person, die das Script nutzen will nicht im Script fuschen lassen. Der soll einfach nur die .txt Datei öffnen und seine Adressen da eintragen.

Dann dachte ich, vielleicht gehen 2 fopen nicht gleichzeitig. Also habe ich eine Function geschrieben, der man eine URL übergibt, die den Inhalt ausliest und per return wieder zurück schiebt. Dann meinen URL.txt kram wieder eingebaut, durchlaufen lassen, die Adressen in einem Array gespeichert, die Datei wieder geschlossen, und dann mit foreach das Array durchrattern lassen, was dann die function aufgerufen hat. Resultat: 2x 404 der letzte geht. *verzweifel*

Hier mal ein Codeschnipsel wie ich es gerne hätte. Irgendwo da muss was faul sein... finde es aber nicht :(

Code:
$datei = "url.txt";

$fd = fopen($datei, "r");
if($fd)
{
	while (!feof($fd))
	{
		$url = fgets($fd, 4096);  //hier steht nun die URL drin.

		$link = fopen($url, "r");
		if($link)
		{
			while(!feof($link))
			{
				$ausgabe = fgetss($link, 4096);
				echo $ausgabe;  //Hier sollen später die Auswertungen hin
			}
		}
		fclose($link);
	}
}
fclose($fd);

Vielleicht findet ihr ja etwas.

Vielen Dank!
 
Nachtrag:

Ich habe nun mal in der Datei ein Array angelegt.

$url[] = "http://blabla1";
$url[] = "http://blabla2";
$url[] = "http://blabla3";

Also ohne die .txt Datei einzulesen. Das geht auch wieder. Alle drei Adressen werden korreckt eingelesen. Also muss es ja irgendwie mit der Datei an sich zusammen hängen. Wenn ich aber die Adressen mit echo ausgebe stimmen sie aber...
 
Hehe...

OK, ich habs...
Das es nur dann nicht geht, wenn ich die Adressen aus der Datei hole gab mir zu denken....

$url = trim($url); nach dem fgets.... wirkt wunder :/
 
Zurück