我有一个关于重写php字符串的问题。
有这个字符串,在其中我有一个包含bb代码的部分。 像这样:
Mixed all type of things
and edited it
cool stuffasdasdasd
[img]http://google.com/image.jpg[/img]
- [url=http://google.com/]Google one[/url]
- [url=http://google.com/]Google two[/url]
- [url=http://google.com/]Google three[/url]
some more cool stuff
现在我想删除带有[img]标签的块,直到带有网址的列表的最后一个。
如果这是文件的结尾,我已经用strpos完成了并删除了最后一位,但现在conent可能在该字段后面的字符串中,并且列表可以是1个链接,或500个链接,或者那里也不可能是一个清单。如果根本没有列表,我可以再次使用strpos处理该情况,但是我应该使用什么来删除列表及其标题图像而不是更多或更少?此外,我不仅可以查找最后的bb代码标记,因为在该部分之后可以使用其他bb代码,因此它必须严格使用列表的最后一位。如果在底部有一个类似的条目和例如列表,则它不是列表的一部分,并且不应该是删除字符串部分的结束位置......
任何帮助将不胜感激!
非常感谢
关心Arkensor
答案 0 :(得分:1)
如果你的字符串被称为$myOldString
,那么:
$myNewString = preg_replace($myRegexPattern,"",$myOldString);
$myRegexPattern
是您希望从旧字符串中删除的模式。
$myNewString
将成为没有bb代码的新字符串。
示例代码:
$myOldString = "Mixed all type of things
and edited it
cool stuffasdasdasd
[img]http://google.com/image.jpg[/img]
- [url=http://google.com/]Google one[/url]
- [url=http://google.com/]Google two[/url]
- [url=http://google.com/]Google three[/url]
some more cool stuff";
$myRegexPattern = "/[img]http://google.com/image.jpg[/img]/";
$myNewString = preg_replace($myRegexPattern,"",$myOldString);
echo $myNewString;
回声结果:
Mixed all type of things
and edited it
cool stuffasdasdasd
- [url=http://google.com/]Google one[/url]
- [url=http://google.com/]Google two[/url]
- [url=http://google.com/]Google three[/url]
some more cool stuff
[img] http://google.com/image.jpg[/img]不见了
请告诉我这是否适合您!
有关preg_replace的更多信息:PHP DOCUMENTATION