2017-08-24 3 views
0

newbee hier ...wie preg_split() zu verwenden, anstatt split()

Ich versuche, das split() Funktionen in einer Website zu ersetzen, so fand ich preg_split() zu verwenden. Zuerst musste, um herauszufinden, wie sich die Funktion split() funktioniert so sah ich in diesem Beispiel an der php.net Website:

<?php 
// Delimiters may be slash, dot, or hyphen 
$date = "04-30/1973"; 
list($month, $day, $year) = split('[/.-]', $date); 
echo "Month: $month; Day: $day; Year: $year<br />\n"; 
?> 

Der Ausgang war wie erwartet: Monat: 04; Tag: 30; Jahr: 1973

Also dachte ich, es wäre einfach und es einfach zu ändern:

<?php 
// Delimiters may be slash, dot, or hyphen 
$date = "04-30/1973"; 
list($month, $day, $year) = preg_split('[/.-]', $date); 
echo "Month: $month; Day: $day; Year: $year<br />\n"; 
?> 

Ausgang: Monat: 04-30/1973; Tag: ; Jahr:

Was ist falsch in meinem Denken?

Antwort

2

Fügen Sie einfach einige Symbole hinzu, um Start/Ende des regulären Ausdrucks zu definieren. Es kann ~ sein, zum Beispiel:

$date = "04-30/1973"; 
list($month, $day, $year) = preg_split('~[/.-]~', $date); 
echo "Month: $month; Day: $day; Year: $year<br />\n"; 

aktualisieren:

Wenn Ihr Code mit / als regexp Grenzen arbeitet, dann haben Sie / mit einem Backslash zu entkommen:

list($month, $day, $year) = preg_split('/[\/.-]/', $date); 
+0

Changed es ist aber die Ausgabe immer noch gleich: Ausgabe: Monat: 04-30/1973; Tag: ; Jahr: – Maurice69

+0

Nein, https://3v4l.org/03TLO –

+0

Nun, ich habe ein wenig weiter, es muss ein/stattdessen sein, wenn eine ~ like ** Liste ($ Monat, $ Tag, $ Jahr) = preg_split (' /[.-]/ ', $ date); ** muss jetzt aber noch herausfinden, wie man das/als Split-Zeichen bekommt. – Maurice69

Verwandte Themen