Mailinglisten-Archive |
Hi, Yannik Hampe schrieb: > Es ist mir ein Rätsel, wie dieser Code klappen kann, da str_replace den > replacten String zurückgibt, aber du ihn nirgends speicherst ^^. xD Zu deinen Beispielen: soweit ich es verstanden habe, können auch mehrere (Dezimal-)Zahlen in einem String vorkommen. > $num=(float)preg_replace('/^\D*/','',str_replace(Array('.',','),Array('','.'),$txt)); dann löst das leider nicht das Problem ;) > preg_match('/\d+(?:\\.\\d+)*(?:,\\d+)?/',$txt,$matches); > $num =(float)str_replace(Array('.',','),Array('','.'),$matches[0]); auch nicht^^ > preg_match_all('/[0-9.]+/', > str_replace(Array('.',','),Array('','.'),$txt),$matches,PREG_SET_ORDER); alle Matches in einem Array > preg_match_all("|((\d{0,3})*(\.?\d{1,3})*(\,?\d{1,2})?)\s*(€)|i",$txt,$forderung); > $num =(float)$forderung[0][0]; auch^^ Dass preg_match_all() die langsamste Funktion ist, ist klar. Aber IMHO löst nur preg_match_all das beschriebene Problem. Grüße Seong
php::bar PHP Wiki - Listenarchive