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