내 코드 교체하지 : 나는 그와 관련된 사용자 ID와 @
결국 usernames
를 대체하기 위해 노력하고않는 str_replace는
$string = "@admin BLA BLA @mark BLA BLA BLA @koko BLA BLA";
preg_match_all("/(@\w+)/", $string, $matches);
foreach ($matches[0] as $usernames) {
$user = (" SELECT * FROM user WHERE username = '" . $usernames . "' ");
while ($row = mysql_fetch_array($user)) {
$string = str_replace($usernames, $row["userid"], $string);
}
}
echo $string;
을,하지만 텍스트를 인쇄 할 때 출력은 원문과 동일합니다.
출력 : @admin BLA BLA @mark BLA BLA BLA @koko BLA BLA
나는 당신의 데이터베이스가'@'접두어로 사용자 이름을 포함하고 의심한다. 효과를 얻으려면 그걸 벗겨야합니다. –
또한 일치하는 알고리즘 (이 경우 사용자 ID 가져 오기)을 실행하려면 ['preg_replace_callback'] (http://php.net/preg-replace-callback)을 사용하십시오. –
모든 내용을 바꾸지 않고 $ string 안에 저장합니까? 나는 쓰는 것을 의미한다. – M98