我有一个关于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] 标签的块,直到带有 url 的列表的最后一个。
如果这是文件的结尾,我已经使用 strpos 完成了此操作并删除了最后一位,但现在 conent 可以在该字段之后的这个字符串中,并且列表可以是 1 个链接或 500 个链接,或者也可能根本没有列表。如果根本没有列表,我可以再次使用 strpos 处理这种情况进行检查,但是我应该使用什么来仅删除列表及其标题图像,仅删除或多或少?此外,我不仅可以查找最后一个 bb 代码标签,因为在该部分之后可以使用其他 bb 代码,因此它必须严格使用列表的最后一位。例如,如果底部的类似条目和列表有任何划分,则它不是列表的一部分,也不应是删除的字符串部分的结束位置......
任何帮助将不胜感激!
谢谢
问候阿肯索
如果你的字符串被称为 $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 文档