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 :D

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];