2013-08-02 36 views
0

目前,我正在编写一个小应用程序,它的未来用户将能够编写将被函数解析的消息(一些正则表达式)。阻止正则表达式修改所有字符串

例如,当用户写

":)" 

它转化为

<img src="link" alt="link" /> 

并以同样的方式,当他写

[code]my code :)[/code] 

它转化为

<pre>my code <img src="link" alt="link" /></pre> 

这里有一个例子:

http://www.legeekcafe.com/upload/img/4298Capture.PNG

它,你可以看到一个很大的问题。所以如何防止正则表达式解析表情符号例如在我的代码块?

感谢您

+2

解决方案是不使用正则表达式。您需要更复杂的解析器。 –

+0

您是否知道我可以使用的更复杂的解析器? – fabsgc

回答

0

采取preg_replace_callback,放在一个子模式的代码块检测和一切的代码块子模式到另一个子模式之前出现。 然后用笑脸正则表达式替换回调的第一个子模式(不是代码块)。

+0

So :) - 我用[code id = X]替换所有的ma [code] [/ code],并将我的代码内容保存在一个数组中 - 我解析了我的表情 - 我替换了[code id = X]由原内容 - 我解析我的[代码[/ code] 谢谢你:) – fabsgc