array URLs verarbeiten mit file_get_contents() - klappt nicht :(
Katharina Stern
- php
Ausgang:
Ich habe in einem Array lauter kleine Urls meiner Seite
und möchte den Inhalt jeder einzelnen URL haben und verarbeiten!
Versuch:
while( list($k, $v) = @each($arr[2]) )
{
$fdx = "$arr[2];
$repcontent = file_get_contents($fdx[$k]);
}
Error:
leider bekomme ich folgenden Fehler:
Warning: file_get_contents( http://dierichtige.de/richtigeseite.php ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
Warning: file_get_contents( http://dierichtige.de/richtigeseite2.php ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
...
trotz ewigen herumprobieren bekomme ich das Problem nicht gelöst, hat jemand einen Tipp wie ich das ganze lösen kann!
vielen Dank
Katharina Stern
Kommt file_get_contents mit URLs kalr? Normal übergibt man die Dateinamen im Dateisystem.
$repcontent = file_get_contents('./richtigeseite.php');
Sky
hi,
leider bekomme ich folgenden Fehler:
Abgesehen davon, dass du zunächst mal einen parse_error bekommen müsstest, wenn du den Code wirklich so verwendest, weil du ein Anführungszeichen vergessen hast (nein, eigentlich hast du eins zu viel):
Warning: file_get_contents( http://dierichtige.de/richtigeseite.php ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
Warning: file_get_contents( http://dierichtige.de/richtigeseite2.php ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
...
Und welche Debug-Maßnahmen hast du unternommen?
Bspw. mal zur Kontrolle ausgeben lassen, was eigentlich in dem Parameter, den du der Funktion übergibst, drinsteht?
gruß,
wahsaga
Warning: file_get_contents( http://dierichtige.de/richtigeseite.php ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
Warning: file_get_contents( http://dierichtige.de/richtigeseite2.php ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
...Und welche Debug-Maßnahmen hast du unternommen?
ich habe die sache schonmal mit var_dump ausgegeben, da steht korrekt drin: http://dierichtige.de/richtigeseite.php - wenn ich das da manuell eingebe dann klappt das auch ... anscheinend ist das Format da falsch, weiss leider trotzdem nicht weiter...
vielen Dank für Eure Mühe
Hello,
while( list($k, $v) = @each($arr[2]) )
{
$fdx = "$arr[2];
$repcontent = file_get_contents($fdx[$k]);
}
warum so antiquiert?
list und each sind zwar in manchen Fällen auch heute noch brauchbar, aber in diesem Fall schreibe lieber:
foreach($arr[2] as $key => $val) ## dazu muss aber $arr[2] ein Sub-Array sein!
{
$repcontent = file_get_contents($val);
echo "<p>$repcontent</p>; ### nur zur Kontrolle
}
Wenn ich Deinen Knoten richtig aufgelöst habe, dann müsste es so klappen.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
foreach($arr[2] as $key => $val) ## dazu muss aber $arr[2] ein Sub-Array sein!
{
$repcontent = file_get_contents($val);
echo "<p>$repcontent</p>; ### nur zur Kontrolle
}Wenn ich Deinen Knoten richtig aufgelöst habe, dann müsste es so klappen.
leider bekomme ich trotzdem:
Warning: file_get_contents( http://www.myurl.de/?id=45111AAfWz7Z ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
Warning: file_get_contents( http://www.myurl.de/?id=44310AAT3dO6 ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
Warning: file_get_contents( http://www.myurl.de/?id=43221AAO7yzT ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
Warning: file_get_contents( http://www.myurl.de/?id=42647AAgjTxZ ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
:( weiss echt nicht mehr weiter!
hi,
:( weiss echt nicht mehr weiter!
gruß,
wahsaga
Hello,
leider bekomme ich trotzdem:
Warning: file_get_contents( http://www.myurl.de/?id=45111AAfWz7Z ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
kann ich mir nicht vorstellen, dass Du wirklich auf "www.myurl.de" zugreifen willst.
Du solltest hier mal auf eine Domain zugreifen, die Du auf diese Weise auslesen darfst, damit Du uns anschließend die _reale_ Fehlermeldung posten kannst.
Du kannst dafüru gerne "www.harte-harzer.de" benutzen...
Vermutlich enthält das Argument von file_get_contents() Zeichen, die es nicht verknusen kann.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hello,
leider bekomme ich trotzdem:
Warning: file_get_contents( http://www.myurl.de/?id=45111AAfWz7Z ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
kann ich mir nicht vorstellen, dass Du wirklich auf "www.myurl.de" zugreifen willst.
Du solltest hier mal auf eine Domain zugreifen, die Du auf diese Weise auslesen darfst, damit Du uns anschließend die _reale_ Fehlermeldung posten kannst.
hi tom,
ich habe lediglich meine domain gegen myurl.de ausgetauscht, ansonsten ist alles gleich und die seiten sind auch mit inhalt hinterlegt!
muss irgendwie daran liegen das das anscheinend ein array format ist!?
Hello,
dann ändere nochmals die Schleife:
error_reporting(E_ALL);
ini_set('track_errors',1);
foreach($arr[2] as $key => $val) ## dazu muss aber $arr[2] ein Sub-Array sein!
{
$repcontent = file_get_contents($val);
echo "<pre>\n";
echo " <h3>Öffnen von ". htmlentities($val)."</h3>\n";
echo " <p>$php_errormsg</p>\n";
echo " <p>$repcontent</p>\n"; ### nur zur Kontrolle
echo "</pre>\n";
}
Und dann zeig mal das wahre Ergebnis...
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Katharina,
leider bekomme ich trotzdem:
Warning: file_get_contents( http://www.myurl.de/?id=45111AAfWz7Z ) [function.file-get-contents]: failed to open stream: Invalid argument in C:\home\index.php on line 29
...
:( weiss echt nicht mehr weiter!
Ich möchte mal den Gedanken mit den nicht erlaubten Zeichen aufnehmen.
Diese kann man auf verschiedene Weise sichtbar machen. Für diesen Fall
bietet sich urlencode() an:
...
// Ausgabe der "rohen" und der urlencodierten Version untereinander
printf('<pre>%s%s%s</pre>', $fdx[$k], "\r\n", urlencode($fdx[$k]));
$repcontent = file_get_contents($fdx[$k]);
...
Wenn jetzt (vor allem am Anfang und am Ende) der url-kodierten Variante
komische Hex-Zahlen mit Prozentzeichen davor auftauchen, wäre das schon
ein erster Schritt zur Problemlösung. Danach müsstest du nur noch
herausfinden, wo diese Zeichen (aus Versehen) eingefügt wurden, oder sie
einfach entsorgen -- bleistiftsweise mit trim().
MffG
EisFuX
Ich möchte mal den Gedanken mit den nicht erlaubten Zeichen aufnehmen.
Diese kann man auf verschiedene Weise sichtbar machen. Für diesen Fall
bietet sich urlencode() an:
Wow, vielen Dank, Du bist die Lösung gewesen!
%0A war jeweils davor und dahinter (hab ich jetzt einfach rausgefiltert!)
vielen Dank! freue mich riesig
Hello,
Wow, vielen Dank, Du bist die Lösung gewesen!
%0A war jeweils davor und dahinter (hab ich jetzt einfach rausgefiltert!)
Wirklich auch davor? Doch vermutlich wohl eher nur dahinter.
Wenn Du das Array mit "file()" aus einer Textdatei geladen hast,
dann stand das Zeilenendezeichen noch hinten dran.
Aber daran sieht man mal wieder, nur sehen nützt. Aber das muss man dann auch "richtig" machen. :-)
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Katharina,
Ich habe in einem Array lauter kleine Urls meiner Seite
und möchte den Inhalt jeder einzelnen URL haben und verarbeiten!Versuch:
while( list($k, $v) = @each($arr[2]) )
{
$fdx = "$arr[2];
$repcontent = file_get_contents($fdx[$k]);
}
Verzeihe meine dumme Frage, aber ist dein PHP auch so konfiguriert, dass es dir erlaubt ist, mit file_get_contents()
Dateien von "entfernten URLs" zu holen?
MffG
EisFuX
Hello,
Verzeihe meine dumme Frage, aber ist dein PHP auch so konfiguriert, dass es dir erlaubt ist, mit file_get_contents()
Dateien von "entfernten URLs" zu holen?
Das würde eine ander Fehlermeldung geben, wenn es nicht erlaubt wäre.
Heißt jetzt aber nicht, dass die nicht noch kommt, wenn der erste Fehler behoben ist.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom