2016-06-23 15 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替换代码干扰而中断 –