2016-06-23 47 views
1

我有一個替換代碼,用XD笑臉替換XD的所有實例...事情是,如果鏈接包含字符串'XD',則會斷開鏈接。str_replace只在字符串中包含空白

我希望它只替換XD,如果它後面跟着一個空格,就像在'XD'中一樣,除非我似乎無法使它工作(試過& nbsp,/ \ s /和  as在'XD & nbsp')

機會是我得到的東西真的很明顯的錯誤,但我找不到任何幫助(所有這似乎是關於刪除空白,不需要它),所以我希望有人能幫助我。

下面的代碼以供參考:

function BB_CODE($content) { 
    $content = str_replace("XD", "<img src=\"images/smilies/icon_xd.gif\" alt=\"XD\">", $content); 
} 

含量用戶輸入。謝謝你的幫助!

回答

1

你應該圍繞 「XD」 以%

$content= str_replace("%XD%", "<img src=\"images/smilies/icon_xd.gif\" alt=\"XD\">", $content); 

編輯: 或者使用的preg_replace

preg_replace("/XD/", "<img src=\"images/smilies/icon_xd.gif\" alt=\"XD\">", $content); 
+0

嗯,它仍然只是似乎抵消代碼...鏈接消失,文字停留在「XD」 –

+0

使用的preg_replace試試這個 'preg_replace(「/ XD /」,「\"XD\"」,$ input_lines);' –

0

所以你要替換XD只有當它的人嗎?

preg_replace('/\bXD\b/', '(ಠ‿ಠ)', "Then I was like XD") 

使用\b看爲字邊界,而不是\s。這意味着它可以在字符串的開頭和結尾運行,就像在我的例子中一樣。

隨着preg_replace()有兩種常見的問題:

  • 分隔字符,我用/這裏按照慣例,但在我自己的代碼,我更喜歡%。您可以將正則表達式編寫爲'%\bXD\b%',其含義相同。
  • 轉義反斜槓,我用了一個單引號字符串,所以我不必在\b中轉義反斜線。如果使用雙qoutes,你要逃避它,就像這樣:"/\\bXD\\b/"
+0

嗯,鏈接還在消失...我正在使用鏈接測試它,然後笑臉,笑臉出現在這種情況下,但鏈接只是由空白空間替換 –

+0

此代碼不會替換鏈接。這發生在別的地方。檢查論壇的清潔功能。 – sba

+0

我不是想替換鏈接,事情是如果我有鏈接'www.XDlalala.com',鏈接因XD替換代碼干擾而中斷 –