Seiteninhalt auswerten
Andreas
- php
Hallo,
wie kann ich den Inhalt einer PHP-Seite auswerten, von der ich den Link habe?
Habe eine php Datei eines Kollegen der mir so News-Daten zur Verfügung stellt als ein Textstring mit Trennzeichen.
Andreas
hy
das hängt ganz davon ab was dir die seite zurück gibt.
bekommst du die komplette html seite oder nur den daten arry zurück.
du musst den link so oder so mit
file() einlesen und dann den in der file->var befindlichen array auslesen .
zeile für zeile.
und dann das ganze mit
explode() zerlegen.
nun kannst du die daten verwenden
uwi
Hallo,
danke für die Antwort.
Gruß Andreas
Hallo,
klappt irgendwie nicht.
Hier mein Code:
<?php
$url = "http://www.Domain.net/news.php";
if (file_exists($url)){
$file = fopen($url,"r");
if ($file){
while (!feof($file)) {
$zeile = fgets($file,255);
print "$zeile<br>\n";
}
fclose($file);
}
else
echo "nix";
}
?>
Hello,
klappt irgendwie nicht.
Hier mein Code:<?php
$url = "http://www.Domain.net/news.php";
if (file_exists($url)){
http://de3.php.net/manual/en/function.file-exists.php
file_exists arbeitet erst ab PHP 5 auch als Wrapper für die Socket-Funktionen, also mit URLs
Bei PHP 4 muss das geprüfte File im lokalen Directory zu finden sein
$file = fopen($url,"r");
if ($file){
while (!feof($file)) {
$zeile = fgets($file,255);
print "$zeile<br>\n";
}
fclose($file);
}
else
echo "nix";
}
?>
Das ganze ist trotzdem unpraktisch programmiert.
$filehandle = fopen($url,"r");
If(!$filehandle)
{
## Fehlerbehandlung
}
else
{
$filecont = @fread($filehandle,MAXFILESIZE);
}
und wenn dann $filecont etwas enthält auf dem System zerlegen lassen und dann ausgeben.
MAXFILESIZE könntest Du z.B. mit 2MB festlegen. Das passt bei einigermaßen sinniger Programmierung dann meistens noch. die Funktion fread() hört ohnehin auf zu lesen, wenn eof() erreicht ist.
Man könnte dann, um sicher zu gehen, nach dem fread() noch $php_errormsg abfragen, ob eine Exception aufgetreten ist. Das funktioniert aber nur, wenn track_errors=1 steht in der php.ini.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo,
das ist nun mein Code:
<?php
$url = "http://www.domain.net/partner/news_am.php";
$filehandle = fopen($url,"r");
If(!$filehandle)
{
## Fehlerbehandlung
echo "Fehler";
}
else
{
$filecont = @fread($filehandle);
}
echo $filecont;
?>
Das Ergebnis ist dass Fehler ausgegeben wird.
Andreas
Hello,
Hallo,
das ist nun mein Code:
<?php
ini_set("track_errors","1");
error_reporting(E_ALL);
$url = "http://www.domain.net/partner/news_am.php";
$filehandle = fopen($url,"r");
If(!$filehandle)
{
## Fehlerbehandlung
echo "Fehler: $php_errormsg";
}
else
{
$filecont = @fread($filehandle);
}
echo $filecont;
?>
Das Ergebnis ist dass Fehler ausgegeben wird.
Dann ändere den Code nochmal so wie oben...
Ich vermute, dass die fopen-Wrapper für URLs nicht zugelassen sind.
Siehe php.ini z.B. mit phpinfo();
allow_url_fopen ist wohl der Wert, der dafür in Frage kommt.
Lass Dir den mal ausgeben
echo "URL-Wrapper: ".ini_get("allow_url_fopen");
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo,
hier die Antwort:
URL-Wrapper: off
Ich gehe mal davon aus, dass man das auch nicht ändern kann?
Gruß Andreas
Hello,
hier die Antwort:
URL-Wrapper: off
Ich gehe mal davon aus, dass man das auch nicht ändern kann?
die Frage kannst Du Dir
a) durch Experiment
b) durch Nachlesen
beantworten.
a)
<?php
ini_set("track_errors","1");
error_reporting(E_ALL);
ini_set("allow_url_fopen");
echo "Allow URL: ".ini_get("allow_url_fopen"); ## wenn man überhaupt soweit kommt *gg*
$url = "http://www.domain.net/partner/news_am.php";
$filehandle = fopen($url,"r");
If(!$filehandle)
{
## Fehlerbehandlung
echo "Fehler: $php_errormsg";
}
else
{
$filecont = @fread($filehandle);
}
echo $filecont;
?>
b)
http://de2.php.net/manual/en/function.ini-set.php
Da steht "PHP_INI_SYSTEM" => Entry can be set in php.ini or httpd.conf
Dann musst Du ggf eine Socket-Funktion bemühen. Was anderes macht ja fopen() im Falle einer URL auch nicht. In Wirklichkeit verstecken sich hinter fopen() ja verschiedene Öffnungsmechanismen.
http://de2.php.net/manual/en/function.fsockopen.php
Und da findest Du bestimmt diverse Beispiele bei Könttopp (oder heißt der Köhntropp ? Sorry)
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
<?php
ini_set("track_errors","1");
error_reporting(E_ALL);
ini_set("allow_url_fopen","1");
echo "Allow URL: ".ini_get("allow_url_fopen"); ## wenn man überhaupt soweit kommt *gg*
Sorry, den Parameter muss man natürlich auch angeben. Abr es wird wohl nicht funktionieren.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo,
na ich habs mir gedacht.
nix geht.
hier ein Auszug:
Warning: ini_set, ini_alter, ini_restore, diskfreespace, disk_free_space, exec, passthru, system, popen() has been disabled for security reasons in /raid/domains/de/a/access-o-mania/htdocs/www/tst2.php on line 4
Trotzdem danke für deine Mühe.
Gruß Andreas
Hello,
na ich habs mir gedacht.
nix geht.
hier ein Auszug:
Warning: ini_set, ini_alter, ini_restore, diskfreespace, disk_free_space, exec, passthru, system, popen() has been disabled for security reasons in /raid/domains/de/a/access-o-mania/htdocs/www/tst2.php on line 4
Dann wird wohl auch der safe_mode laufen, oder hatte ich das schon gefragt?
Aber die Möglichkeiten mit fsockopen() solltetst Du Dir nochmal anschauen und dann hier auch mal das Ergebnis bekannt geben. Da sind fast fertige Copy and Paste Beispiele im Manual.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo,
werd ich auch machen.
Wenn ich nur mehr Zeit hätte.
In einer Woche habe ich 2 Klausuren auf die ich noch lernen muss.
Gruß Andreas