PHP Fehlerhafte Ausgabe/Auswertung bei Stringtrennung mit explode() oder preg_split()

A1exander

New member
9 September 2016
1
0
Hallo zusammen,
ich übergebe eine Koordinateneingabe in der Form "51.194073 6.431526" (mit dem Leerzeichen) an ein Script. Die entsprechende Übergabevariable ist auch in der Form gefüllt.

Versuche ich das nun in zwei Strings aufzuteilen, ergibt der Ansatz:
PHP:
$teilung_kord01 = explode(" ", $_GET['kord01']);
$teilung_kord02 = explode(" ", $_GET['kord02']);
das Ergebnis:
$teilung_kord01[0]:0.89350513135633
$teilung_kord01[1]:


Der Ansatz:
PHP:
§teilung_kord01 = preg_split("/[\s,]+/", $_GET['kord01']);
$teilung_kord02 = preg_split("/[\s,]+/", $_GET['kord02']);
ergibt
$teilung_kord01[0]:0.89350513135633
$teilung_kord01[1]:6.431526


Kann mir jemand beim Denkfehler helfen, mit am Ende
$teilung_kord01[0]:51.194073
$teilung_kord01[1]:6.431526

heraus kommt? Ich habe auch keine Ahnung, was er macht, dass er auf diesen Wert von 0.89... kommt.

Danke und Grüße
Alexander
 
Hast Du Dir mal genau angeguckt, was da über $_GET tatsächlich rein kommt?

PHP:
var_dump(explode(' ', '51.194073 6.431526'));

ergibt bei mir nämlich exakt das gewünschte Ergebnis:

Code:
array(2) {
  [0] =>
  string(9) "51.194073"
  [1] =>
  string(8) "6.431526"
}

Eventuell ist da mehr als ein Leerzeichen, so dass Du Dir mit array_filter() weiterhelfen müsstest. Das würde alle leeren Einträge aus dem erzeugten Array entfernen.
 
Wenn die Koordinaten in der Form "zahl1 zahl2" vorliegen drängt sich strtok() ja geradezu auf:

Code:
[FONT="Courier New"]x=strtok ( "zahl1 zahl2", " " );
y=strtok ( " " );[/FONT]

PS: PHP ist zwar nicht gerade meine Lieblingsbaustelle, aber soweit ich weiß erwartet $_GET eins bis n Elemente der Form "name=wert", die einzelnen Elemente werden durch "&" getrennt. Bei einer Zeichenfolge "zahl1 zahl2" kann zwar irgendwas herauskommen, das ist dann aber mit einer deutlich von Null verschiedenen Wahrscheinlichkeit nicht das gesuchte Ergebnis.