簡體   English   中英

對數組中的變量使用 preg_replace 時,該變量不會反映 preg_replace 更改

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM