Hallo Linuchs,
... ich weiss, es heisst extrahieren. Aber der Verschreiber war zu schön, um ihn wegzuwerfen 😉
Ich finde es auch lustig 😉
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> ... <trkpt lat="53.188185" lon="7.216993"></trkpt> <trkpt lat="53.184541" lon="7.217456"></trkpt> ...
Diese
trkpt
Werte interessieren mich. Gibt es für PHP ein Kommando, die zu extrahieren?Ein Array mit lat-Werten und eines mit lon-Werten wäre ideal.
Viele Wege führen nach Rom... hier mal einer:
*Was die Regex betrifft, auch wenn sie funktioniert wie gewünscht, ist sie bestimmt nicht perfekt, das sollte dann jemand verbessern der sich damit besser auskennt😉
<?PHP
//
// Text, der durchsucht werden soll
//
$subject = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
...
<trkpt lat=\"53.188185\" lon=\"7.216993\"></trkpt>
<trkpt lat=\"53.184541\" lon=\"7.217456\"></trkpt>';
//
// Der Reguläre Ausdruck
//
$pattern = '@<trkpt .*="(.*)".*"(.*)">@isU';
//
// RegExp auswerten
//
$result = preg_match_all($pattern, $subject, $subpattern);
//
// Ergebnis ausgeben
//
echo '<p>Der verwendete Reguläre Ausdruck trifft auf den zu durchsuchenden Text '.
(($result) ? $result.' mal ' : 'nicht ').'zu.</p>';
//
// Unterausdrücke ausgeben
//
echo '<pre>'.print_r($subpattern, TRUE).'</pre>';
?>
Resultat:
Array
(
[0] => Array
(
[0] => <trkpt lat="53.188185" lon="7.216993">
[1] => <trkpt lat="53.184541" lon="7.217456">
)
[1] => Array
(
[0] => 53.188185
[1] => 53.184541
)
[2] => Array
(
[0] => 7.216993
[1] => 7.217456
)
)
Und um das Ganze auszuprobieren: Hier
Gruss
Henry