Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
15.10.2002, 13:44
scus



Moin,
ich hab eine evtl. ganz simple Frage:
Ich will einen String wie z.B.
$str = '123.456.789'
in drei Teile zerlegen. Nämlich in
$str1 = '123'
$str2 = '456'
$str3 = '789'
Diese drei Teile haben _immer_ die Länge von 3 Zeichen und werden immer durch einen Punkt getrennt.
Gibt es da eine Möglichkeit?

PS: Forensuche und mein tolles Buch haben nichts gebracht...

--

sincères amitiés scus
--
Tand, Tand ist das Gebilde von Menschenhand

zum Seitenanfang zum Seitenende Profil || Suche
001
15.10.2002, 14:01
Ferdi



$str = '123.456.789'
$erg = split(".",$str);

daraus ergibt sich:
$erg[0] ist '123'
$erg[1] ist '456'
$erg[2] ist '789'

--

zum Seitenanfang zum Seitenende Profil || Suche
002
15.10.2002, 14:02
Andy_



Quellcode:$str = '123.456.789';
list($str1, $str2, $str3) = explode('.', $str);

echo $str1.$str2.$str3; // Ergibt 123456789

--

42 Es gibt keinen Sinn des Lebens.

zum Seitenanfang zum Seitenende Profil || Suche
003
15.10.2002, 14:04
Ferdi



oder so...

--

zum Seitenanfang zum Seitenende Profil || Suche
004
15.10.2002, 14:09
Andy_



Es gibt einen großen unterschied zwischen split und explode, split benutzt zum erkennen der trennungszeichen Reguläre Ausdrücke, mit denen man viele zusätzliche Bedinungen erstellen kann, jedoch sind sie auch langsamer, als der einfache explode Befehl, der bei sowas wie punkten wirklich nur recht schnell die strings außeinanderreißt.
Bei großen Suchanfragen ist so ein Geschwindigkeitsbonus sehr von Vorteil.

--

42 Es gibt keinen Sinn des Lebens.

zum Seitenanfang zum Seitenende Profil || Suche
005
15.10.2002, 14:30
scus



Danke schön! Nur das von Ferdi hab ich nicht wirklich hinbekommen:
Ich hab
Quellcode:
<?php
$str = '123.456.789';
$erg = split('.',$str);
?>
Block1: <? print $erg[0]; ?><br>
Block2: <? print $erg[1]; ?><br>
Block3: <? print $erg[2]; ?><br>

eingegeben. Nur es gab keine Ausgabe! Mit echo $erg[0]; usw. genauso.

--

sincères amitiés scus
--
Tand, Tand ist das Gebilde von Menschenhand

zum Seitenanfang zum Seitenende Profil || Suche
006
15.10.2002, 16:16
Kriz



print ist eine Funktion, muß also Klammern haben:

Quellcode:Block1: <?php print("$erg[0]"); ?><br>
...

Anders geht's auch mit echo:

Quellcode:Block1: <?php echo "$erg[0]"; ?><br>
...

PS: Das <? sollte eigentlich zur Sicherheit als <?php geschrieben werden.

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
007
15.10.2002, 16:18
Archangel



es liegt aber an was anderem..
'.' ist ein zeichen, das in regexps verwendet werden kann.. also musst du
split("\.", $str); verwenden

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
008
15.10.2002, 16:34
CN



Zitat:
print ist eine Funktion, muß also Klammern haben:
bevor man sowas behauptet sollte man sich erstmal informieren
http://www.php.net/print

Zitat:
print() is not actually a real function (it is a language construct) so you are not required to use parentheses with it.

es geht folgendesQuellcode:<?php
print $erg[0];
print($erg[0]);
/* geht auch mit " " */
?>

was die shorttags angeht kann ich kriz nur rechtgeben

--


Dieser Beitrag wurde am 15.10.2002 um 16:45 von CN bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
009
15.10.2002, 16:40
KhanRKerensky



Zitat:
Archangel postete
es liegt aber an was anderem..
'.' ist ein zeichen, das in regexps verwendet werden kann.. also musst du
split("\.", $str); verwenden

Wenn man aber kein RegExp Pattern baut sollte das doch eigentlich auch so gehen. "." ist eigentlich ja ein String. Bei "/\./" gebich dir aber recht...

*e*
Nur um dp zu unterstützen:

Zitat:
http://www.php.net/manual/en/function.print.php
print() is not actually a real function (it is a language construct) so you are not required to use parentheses with it.

--

"[...] you're going to burn in a very special level of Hell. A level they reserve for child molesters and people who talk at the theater." - Book


Dieser Beitrag wurde am 15.10.2002 um 16:46 von KhanRKerensky bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
15.10.2002, 16:43
dp
Administrator


print ist _keine_ funktion, deswegen braucht es auch keine klammer. gleiches gilt für include.

--

zum Seitenanfang zum Seitenende Profil || Suche
011
15.10.2002, 16:50
Andy_



Ich denke mal das split die Regex-Ausführung erzwingt, immerhin gibts explode gerade aus diesem grund.

--

42 Es gibt keinen Sinn des Lebens.

zum Seitenanfang zum Seitenende Profil || Suche
012
15.10.2002, 16:57
KhanRKerensky



Wenn split wirklich RegExp erzwingt, dann würdich aber direkt preg_split verwenden, da schneller.

--

"[...] you're going to burn in a very special level of Hell. A level they reserve for child molesters and people who talk at the theater." - Book

zum Seitenanfang zum Seitenende Profil || Suche
013
16.10.2002, 15:58
CN



ich schätze mal der unterschied is die art der regexps
preg_split() verwendet wie der name schon sagt pcres (perl compatible regular expressions)
also denk ich mal das split() die posixregexps nutzt

--


Dieser Beitrag wurde am 16.10.2002 um 16:06 von CN bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
014
16.10.2002, 16:01
CN



arg doppelt gemoppelt ;)

--


Dieser Beitrag wurde am 16.10.2002 um 16:02 von CN bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche