preg_replace修改文本并保存到数据库

时间:2013-10-03 08:36:53

标签: php mysql wordpress preg-replace preg-match

最近我posted a question用于用短代码替换数据库中的iframe。它确实适用于某些内容,但对于其他一些内容,它会导致不一致,从而产生类似

的字符串
[soundcloud url="http://api.soundcloud.com/tracks/106645167" frameborder="no" scrolling="no" width="100%" height="166"></iframe>"]

这应该是

[soundcloud url="http://api.soundcloud.com/tracks/106645167"]

我认为这是由于数据库中的iframe不同造成的。我需要知道,如果有任何其他方法可以解决我的数据库中的问题。

1 个答案:

答案 0 :(得分:0)

我有点困惑,现在你要转换错误的输出

[soundcloud url="http://api.soundcloud.com/tracks/106645167" frameborder="no" scrolling="no" width="100%" height="166"></iframe>"]

右边 outut?

[soundcloud url="http://api.soundcloud.com/tracks/106645167"]

正则表达式

如果是这样(假设所有实例都是相同的格式:即首先是url),那么以下内容将起作用:

preg_replace('/(\[soundcloud url=".*?").*?(\])/', '$1$2', $string);

简单说明

以上正则表达式匹配

[soundcloud url="all characters before" all characters before]

并将其替换为

[soundcloud url="all chracters before"]