Seite 1 von 1
Mittels PHP den Body-Tag auslesen ?
Verfasst: 20.12.2003 22:11
von Breaker
Gibt es irgendeine Möglichkeit, mit PHP aus einer PHP-Datei den Body-Tag auszulesen ?
Den Hintergrund auslesen weiß ich ja, aber der Body-Tag, da bin ich überfragt....kann mir da jemand weiterhelfen ?
Verfasst: 20.12.2003 22:27
von Shadowman
öhm, wie meinst du das??
dass da in ner datei irgendwo <body></body> steht und du willst das dazwischen haben???
wenn ja, dann musst die diese datei erstmal mit file aufrufen.
dann suchst du nach dem ersten vorkommen von <body...
danach nach dem </body>. da bei file() jede zeile in einem array gespeichert ist, weisst du nun, zwischen welchen zeilen du den text auslesen musst. dass sieht dann ca. so aus:
Code: Alles auswählen
$datei = file('http://deine.url');
if(!$datei)
{
echo "<p>Datei Konnte nicht geöffnet werden.\n</p>";
}
else
{
$tag1="<body>";
$tag2="</body>";
for($i=0;$i<count($datei);$i++)
{
$datei[$i]=trim($datei[$i]);
if($datei[$i]==$tag1 AND !$abc1)
{
$zeile1=$i;
$zeile1++;
$abc1=1;
}
if($datei[$i]==$tag2 AND !$abc2)
{
$zeile2=$i;
$zeile2++;
$abc2=1;
}
}
$o=0;
for($u=$zeile1;$u<$zeile2;$u++)
{
$ausgabe[$o]=$datei[$u];
$o++;
}
}
für den body tag is es ja einfacher ^^
Code: Alles auswählen
$datei = file('http://deine.url');
if(!$datei)
{
echo "<p>Datei Konnte nicht geöffnet werden.\n</p>";
}
else
{
$tag="<body";
for($i=0;$i<count($datei);$i++)
{
$datei[$i]=trim($datei[$i]);
if($datei[$i]==$tag1 AND !$abc)
{
$zeile=$i;
$zeile++;
$abc=1;
}
}
$body_tag=$datei[$zeile];
}
dieses beispiel funktioniert
nur wenn der gesammte body tag, und nichts anderes in einer zeile stehen, wenn das nicht der fall ist, dann musst du halt das danach per ereg_replace() ersetzen, wenn du nicht weisst wie -->
www.php.net/manual/de
ich hoffe es funzt

Verfasst: 20.12.2003 22:30
von Breaker
Das ging aber schnell
Danke dir, hast jetzt was gut bei mir

Verfasst: 21.12.2003 16:44
von Pyramide
Wozu gibts denn reguläre Ausdrücke?
Code: Alles auswählen
$url = 'http://foo/bar';
$inhalt= implode('', file($url));
if(!preg_match('#<body[^>]*>(.*)</body>#si', $inhalt, $matches)) {
die('kein <body> gefunden');
}
echo $matches[1];