[英]When using preg_replace on a variable in an array, the variable doesn't reflect preg_replace changes
我無法弄清楚我的代碼到底出了什么問題。
問題:我從 mysql 數據庫獲取結果,返回的變量之一需要通過 preg_replace 運行,當我回顯時preg_replace()
工作得很好,但是當我嘗試將該變量放入數組時,它不反映preg_replace()
更改。
$bl = array(
'skills' => array()
);
if ($result = $db->query($queryStmt)) {
while ($row = mysqli_fetch_assoc($result)) {
extract($row);
$newdesc = preg_replace("/\<[^>]+\)/","",$Desc);
$sk = array(
'desc' => $newdesc
);
array_push($bl['skills'], $sk);
}
};
header('Content-type: application/json');
echo json_encode($bl, JSON_NUMERIC_CHECK);
$db = NULL;
同樣,如果我在數組代碼之前回顯 $newdesc 變量,它會正確顯示,但是當在腳本末尾回顯數組時,它不會顯示。
編輯:有人要求echo
響應,如果我回顯 $newdesc 這個字符串:MP Regeneration 3 Bow Skills used at each Blow mentality may be allowed to up to 3 each extra (but not apply to a range type)
簡單地呼應如下:MP 再生 3 弓技能在每次打擊心態時使用,每增加一次可能有資格獲得多達 3 個(但不適用於范圍類型)
代碼現在反映了這一點:
$bl = array(
'skills' => array()
);
if ($result = $db->query($queryStmt)) {
while ($row = mysqli_fetch_assoc($result)) {
extract($row);
$newdesc = preg_replace("/\<[^>]+\)/","",$Desc);
echo $newdesc;
$sk = array(
'desc' => $newdesc
);
array_push($bl['skills'], $sk);
}
};
header('Content-type: application/json');
echo json_encode($bl, JSON_NUMERIC_CHECK);
$db = NULL;
再次編輯:請參閱答案以獲取解決方案!
感謝評論中的好人,解決問題的方法只是使用strip_tags()
我的朋友們是我白痴的好例子。 代碼現在是這樣的:
$bl = array(
'skills' => array()
);
if ($result = $db->query($queryStmt)) {
while ($row = mysqli_fetch_assoc($result)) {
$newdesc = strip_tags($row['Desc']);
$sk = array(
'desc' => $newdesc
);
array_push($bl['skills'], $sk);
}
};
header('Content-type: application/json');
echo json_encode($bl, JSON_NUMERIC_CHECK);
$db = NULL;
它完美地工作。 我正在制作一個已經存在的函數,請閱讀有關strip_tags()
的文檔以獲取更多信息。 http://php.net/manual/es/function.strip-tags.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.