Ashura: Text zwischen 2 Tags auslesen

Beitrag lesen

Hallo Sanne.

Habe ich die Funktion falsch eingebunden?

<?php

function parsing($tag,$string) {
       $start=strpos($string,"<" . $tag . ">" );
       $start=$start + strlen("<" . $tag . ">");
         $end=(strpos($string, "</" . $tag . ">"));
         $num=  ($end - $start);
         $valore=substr($string,$start,$num);
         echo "$valore"; // Im Original return
}

  
Die Funktion ist soweit in Ordnung, auch wenn du zur Ermittlung von $end der strpos-Funktion noch $start als dritten Parameter übergeben solltest. Ansonsten sucht dir strpos immer nur das allererste schließende Tag.  
  

> ~~~php

/* so versuche ich die Funtkion aufzurufen */  

> $fp = "test.xml";  
> if ($datei = fopen($fp, "r"));{  
>  while (!feof($datei)) {  
>   $string = fgets($datei);  
>   }  
> }  
> $tag = "<Date>";  
> parsing($tag,$string);  
> ?>

Der erste Parameter darf deiner eigenen Funktion nach nur der Elementname sein; hier entsteht intern also „<<Date>>“. Dass dies nie gefunden werden kann, verwundert weniger.

Offenbar möchtest du ein XML-Dokument verarbeiten. Dafür normale Dateifunktionen zu verwenden ist nicht sonderlich geeignet, wenn auch als Fallback ausreichend.

Du solltest dich mit den PHP-eigenen Möglichkeiten zur Interaktion mit XML-Dokumenten befassen. Für den Anfang dürfte hierbei simplexml genügen, für mehr Kontrolle empfehle ich die DOM-Funktionen.

Einen schönen Sonntag noch.

Gruß, Ashura

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]