Rumah > Soal Jawab > teks badan
Untuk menyelesaikan masalah, seperti dalam soalan, tujuannya adalah untuk membaca ID pengguna yang ditanda dalam kandungan dan mendapatkan semula nama pengguna daripada pangkalan data.
Masalah, hanya "$1" boleh dibaca, tetapi nilainya tidak boleh diperoleh.
function usvid($csse,$uvid){
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 manakala ($usersid=mysql_fetch_array(); $sql_usersid)){
$bbs_H=$usersid['Nama Pengguna'];
pulangkan $bbs_H;
}
fungsi vubb($str){
$str=preg_replace("/\[userid=(.+?)\](.+?)\[\/userid\]/is",usvid("$1",'$2'),$str);
pulangkan $str;
}
echo vubb("[userid=10000]xy[/userid]");
巴扎黑2017-05-16 13:02:47
Parameter kedua preg_replace hanya boleh berupa rentetan atau tatasusunan, penggunaan fungsi adalah salah
Tukar kepada preg_replace_callback yang betul, parameter kedua ialah fungsi panggil balik
Tulis semula contoh seperti berikut (tidak diuji sama ada betul atau tidak):
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]");
Hanya 4 baris sahaja penulis boleh cuba lagi.
怪我咯2017-05-16 13:02:47
Terima kasih atas jemputan!
Kalau begitu, ada sebarang soalan?
Tafsiran saya tentang sql anda ialah:
select * from users where Uid='' order by Uid desc
巴扎黑2017-05-16 13:02:47
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]");
Saya telah mengujinya dan output sql adalah sama seperti yang anda minta
pilih * daripada pengguna di mana pesanan Uid='10000' mengikut Uid desc