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]