2013-03-11 223 views
2

有人可以向我解釋爲什麼這個功能不會返回用戶標記的ID?Preg_Replace功能不起作用

function userid($name){ 
    $a_sql = mysql_query("SELECT * FROM utenti WHERE tag='$name' ") or die(mysql_error()); 
    $a_id= mysql_result($a_sql ,0,"id"); 
    return $a_id; 
    } 

$text= $_POST["text"]; 
$text = preg_replace('/@([a-zA-Z0-9]+)/e', htmlspecialchars(userid('$1')), $text); 

爲什麼此方法不起作用?

+0

什麼是'(userid('$ 1')'? – powtac 2013-03-11 17:32:46

回答

1

您需要引用整個第二個參數的結果評價爲PHP:

$text = preg_replace('/@([a-zA-Z0-9]+)/e', 'htmlspecialchars(userid($1))', $text); 

你在做什麼,被調用函數htmlspecialcharsuserid以及因此而引起的餵養preg_replace

+1

好的完美:D非常感謝你 – user2156006 2013-03-11 17:59:27