検索

ホームページ  >  に質問  >  本文

php関数は正規表現の値を呼び出すことができません

質問にあるように、問題を解決するには、コンテンツにマークされているユーザー 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]");
怪我咯怪我咯2778日前417

全員に返信(3)返信します

  • 巴扎黑

    巴扎黑2017-05-16 13:02:47

    1. preg_replace の 2 番目のパラメータは文字列または配列のみにすることができ、関数の使用法が間違っています

    2. 正しい preg_replace_callback に変更します。2 番目のパラメータはコールバック関数です

    例を次のように書き換えます (正しいかどうかはテストされていません):

    リーリー

    作者は4行だけ変更しました。間違いがあればご容赦ください。

    返事
    0
  • 怪我咯

    怪我咯2017-05-16 13:02:47

    ご招待ありがとうございます!

    それでは、何か質問はありますか?

    あなたのSQLの私の解釈は次のとおりです:

    リーリー

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:02:47

    リーリー

    テストしたところ、出力SQLはリクエストしたものと同じです
    select * from users where Uid='10000' order by Uid desc

    返事
    0
  • キャンセル返事