Mailinglisten-Archive |
Moin, Leider kontet ihr mir bei letztiger frage nicht helfen. Nicht schlimm, war ja keine direckte php frage. ;) Doch nun habe ich was nettes für euch: Also ich habe einen string namens $msg, der da so aussehen kann: "Das ist ein lustiger text von @michael@ und @thomas@ den ich jetzt verarbeiten will" Gut dazu habe ich folgendes: $msg = preg_replace("(\@(.+?)\@)is",getUser("$1"),$msg); was bedeuten soll, das alles zwischen 2 @'s in der funktion getUser() verarbeitet werden soll. Die funktion dazu schaut so aus: function getUser($strUsr){ $result = mysql_query("select * from user_core where usr_name='".$strUsr."'"); $uData = mysql_fetch_array($result); if(@$uData["id"] != ""){ $retStr = "<b>".$uData["usr_name"]."</b>"; }else{ $retStr = "<font color=Aqua>$strUsr</font>"; }; return $retStr; }; Nun mag man sich denken wo ist das problem? Ganz einfach: wenn ich die funktion teste mit echo getUser("michael"); Wird brav was zurück geliefert, also das es den user gibt, Und bei preg_replace() scheint er die DB nicht ab zu fragen... Da immer der gefärbte User zurück kommt! Also der Username wird zumindest in die funktion übergeben, aber mehr passiert nicht. Schaut verdächtig nach BUG aus oder? Mein system: - MMCache 2.4.6 [shm:win32 sem:win32], - PHP 4.3.4 [ZE 1.3.0 TS], - Apache 2.0 Handler [Apache/2.0.48 (Win32) PHP/4.3.4 Kann ich das auch anders PERFORMANT lösen? Danke und beste grüsse michael -- Deine Online Community -> http://net4u.cc/ Chat, Foren, SMS, Mail, Web, Fun & more...
php::bar PHP Wiki - Listenarchive