質問にあるように、問題を解決するには、コンテンツにマークされているユーザー ID を読み取り、データベースからユーザー名を取得することが目的です。
問題は、「$1」だけは読み出せるのですが、値が取得できません。
関数 usvid($csse,$uvid){
グローバル $db,$DBprefix;
echo $csse.$uvid="select * from ".$DBprefix."users where Uid='$csse' order by Uid desc"; $sql_usersid=mysql_query($query_usersid); $sql_usersid)){
$bbs_H=$usersid['ユーザー名'];
$bbs_H を返します;
}
関数 vbb($str){
$str=preg_replace("/\[userid=(.+?)\](.+?)\[\/userid\]/is",usvid("$1",'$2'),$str);
$str を返します。
}
echo vbb("[userid=10000]xy[/userid]");
巴扎黑2017-05-16 13:02:47
preg_replace の 2 番目のパラメータは文字列または配列のみにすることができ、関数の使用法が間違っています
正しい preg_replace_callback に変更します。2 番目のパラメータはコールバック関数です
例を次のように書き換えます (正しいかどうかはテストされていません):
リーリー作者は4行だけ変更しました。間違いがあればご容赦ください。
巴扎黑2017-05-16 13:02:47
リーリー
テストしたところ、出力SQLはリクエストしたものと同じです
select * from users where Uid='10000' order by Uid desc