Mailinglisten-Archive |
oliver.haeuser schrieb > Aber wie loese ich das. Die Zeilen koennen beliebig lang sein, also ein > 456,45-567,345,543-234 > ist ebenfalls moeglich. > (beim zweiten ereg stehen noch ein paar mehr zahlen drin ...) > > Oder waere es sinnvoll zu pruefen ob ein , vorhanden ist - wenn ja das > ganze mit explode trennen > und nach - suchen und dann die eregs anwenden ? Ja, das erscheint sinvoll, $string = "11, 126-129,745,123, 345-347, 498 -511, 14, 784s-784"; $string = str_replace(" ", "", $string); $parts = explode(",", $string); $max = count($parts); for($c = 0; $c < $max; $c++) { if(preg_match("=^[0-9]{1,3}$=", $parts[$c])) { $zahlenreihe[] = $parts[$c]; } elseif(preg_match("=^([0-9]{1,3})-([0-9]{1,3})$=", $parts[$c], $x)) { for($i = $x[1]; $x[1] <= $x[2]; $x[1]++) { $zahlenreihe[] = $x[1]; } } else { $msg .= "Fehlerhafte Eingabe ($parts[$c]).<br>\n"; } } sort($zahlenreihe); $zahlenreihe = implode(" ", $zahlenreihe); echo $msg.$zahlenreihe; Guido Haeger
php::bar PHP Wiki - Listenarchive