la fonction php ne peut pas appeler la valeur de l'expression régulière
怪我咯
怪我咯 2017-05-16 13:00:47
0
3
459

Pour résoudre le problème, comme dans la question, le but est de lire l'ID utilisateur marqué dans le contenu et de récupérer le nom d'utilisateur dans la base de données.
Problème, seul "$1" peut être lu, mais la valeur ne peut pas être obtenue.

fonction usvid($csse,$uvid){
    global $db,$DBpréfixe ;
    echo $csse.$uvid; $query_usersid="select * from ".$DBprefix."users which Uid='$csse' order by Uid desc" $sql_usersid=mysql_query($query_usersid); $sql_usersid)){
    $bbs_H=$usersid['NomUtilisateur'];
    renvoie $bbs_H ;
    }

fonction vubb($str){
    $str=preg_replace("/\[userid=(.+?)\](.+?)\[\/userid\]/is",usvid("$1",'$2'),$str);
    retourner $ str ;
    }
    
    echo vubb("[userid=10000]xy[/userid]");
怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(3)
巴扎黑
  1. Le deuxième paramètre de preg_replace ne peut être qu'une chaîne ou un tableau, l'utilisation de la fonction est erronée

  2. Changez pour le bon preg_replace_callback, le deuxième paramètre est la fonction de rappel

Réécrivez l'exemple comme suit (pas testé s'il est correct ou non) :

function usvid($match) // 被修改
{
    $csse = $match[1]; // 新增行
    $uvid = $match[2]; // 新增行
    
    global $db, $DBprefix;
    echo $csse.$uvid; 
    $query_usersid = "select * from ".$DBprefix."users where Uid='$csse' order by Uid desc";
    $sql_usersid = mysql_query($query_usersid); 
    while ($usersid = mysql_fetch_array($sql_usersid)) {
        $bbs_H = $usersid['UserName'];   
    } 
    return $bbs_H; 
}

function vubb($str)
{
    $str = preg_replace_callback("/\[userid=(.+?)\](.+?)\[\/userid\]/is", "usvid", $str); // 修改行
    return $str; 
} 
    
echo vubb("[userid=10000]xy[/userid]");

Seules 4 lignes ont été modifiées. L'auteur peut réessayer. Veuillez me pardonner s'il y a des erreurs.

刘奇

Merci pour l'invitation !

Alors, y a-t-il des questions ?

Mon interprétation de votre SQL est :

    select * from users where Uid='' order by Uid desc
巴扎黑
function usvid($csse,$uvid) // 被修改
{
    global $db, $DBprefix;
    $query_usersid = "select * from ".$DBprefix."users where Uid='$csse' order by Uid desc";
    return  $query_usersid;
    $sql_usersid = mysql_query($query_usersid); 
    while ($usersid = mysql_fetch_array($sql_usersid)) {
        $bbs_H = $usersid['UserName'];   
    } 
    return $bbs_H; 
}

function vubb($str)
{
    $str = preg_replace("/\[userid=(.+?)\](.+?)\[\/userid\]/is", usvid("",''), $str); // 
} 
    
echo vubb("[userid=10000]xy[/userid]");

Je l'ai testé et la sortie SQL est la même que celle que vous avez demandée
sélectionnez * parmi les utilisateurs où Uid='10000' commande par Uid desc

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal