如何在php中删除这个标签?

发布于 2024-09-18 06:04:50 字数 292 浏览 13 评论 0原文

我想从文本中剪切掉里面的所有内容(包括标签),例如:

[url=http://example.com]something[/url]

但有一个条件,在 [url] 标签内部会有 [img] 标签。 所以最后一句话要切:

[url=http://example.com]anything[img]something[/url]

有人能帮忙吗?我不擅长正则表达式,或者有更简单的方法吗?

I want cut out everything inside (tags included) from text, for ex:

[url=http://example.com]something[/url]

but with one condition, inside of [url] tag there would be [img] tag.
So final sentence to cut:

[url=http://example.com]anything[img]something[/url]

can anyone help? im bad with regular expressions, or there is easier way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光礼记 2024-09-25 06:04:50

这个怎么样:

<?php

ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL | E_STRICT);

$testCases = array(
    'foo bar baz [url=http://example.com]anything[img]something[/url] foo bar baz',
    'foo bar baz [url=http://example.com]anythingsomething[/url] foo bar baz',
    'FOO BAR BAZ [URL=HTTP://EXAMPLE.COM]ANYTHING[IMG]SOMETHING[/URL] FOO BAR BAZ',
    'FOO BAR BAZ [URL=HTTP://EXAMPLE.COM]ANYTHINGSOMETHING[/URL] FOO BAR BAZ',
);

foreach ($testCases as $testCase) {
    $results[] = preg_replace("{\[url(?!.*?\[img\].*?).*?\[/url\]}is", '', $testCase);
};

print_r($results);

?>

How about this:

<?php

ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL | E_STRICT);

$testCases = array(
    'foo bar baz [url=http://example.com]anything[img]something[/url] foo bar baz',
    'foo bar baz [url=http://example.com]anythingsomething[/url] foo bar baz',
    'FOO BAR BAZ [URL=HTTP://EXAMPLE.COM]ANYTHING[IMG]SOMETHING[/URL] FOO BAR BAZ',
    'FOO BAR BAZ [URL=HTTP://EXAMPLE.COM]ANYTHINGSOMETHING[/URL] FOO BAR BAZ',
);

foreach ($testCases as $testCase) {
    $results[] = preg_replace("{\[url(?!.*?\[img\].*?).*?\[/url\]}is", '', $testCase);
};

print_r($results);

?>
葵雨 2024-09-25 06:04:50

我会尝试这些脚本行

$subject = '[url=http]anything[imag]something[/url]';
$pattern = '@^\[url[^].]*\]{1}(.*)\[/url\]$@';
preg_match($pattern, $subject, $matches);
echo $matches[1]; //anything[imag]something

结果是你想要的吗?

I would try these lines of scripts

$subject = '[url=http]anything[imag]something[/url]';
$pattern = '@^\[url[^].]*\]{1}(.*)\[/url\]$@';
preg_match($pattern, $subject, $matches);
echo $matches[1]; //anything[imag]something

Is the result what you want?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文