正则表达式:使用 preg_replace_callback 忽略 HTML 标签

发布于 2024-11-27 18:18:59 字数 856 浏览 0 评论 0原文

我试图抓取 HTML 标签之间的所有文本(如果有),并在其上放置一个函数.. 我的意思是..我现在的代码现在是

$code = preg_replace_callback('/(\(\s*\')\s*(.*?)\s*(\')/',
        function($matches) {
            return strtolower($matches);
        }, $code);

我想要的:

  1. 如果有 HTML 标签 === 返回 HTML 标签 + strtolower(用于标签之间的文本)。

  2. 如果没有 HTML 标签 === 返回 strtolower(所有文本)


示例: if 我们有 :

('TEST HERE this is a TEXT')

return

('test here this is a text')

但 if 带有像

<DIV CLASS='tesT'>This IS A TEXT</DIV><Div class='Test1'>THIS is another TEXT</DIV>

return这样的 HTML 标签

<DIV CLASS='tesT'>this is a text</DIV><Div class='Test1'>this is another text</DIV>

I'm trying to grab all text between the HTML Tags (if there), and put a function on it ..
i mean.. my code now is

$code = preg_replace_callback('/(\(\s*\')\s*(.*?)\s*(\')/',
        function($matches) {
            return strtolower($matches);
        }, $code);

now what i want is :

  1. If there is a HTML tags === Return HTML tags + strtolower(for the text between the tags).

  2. If there isn't a HTML tags === Return strtolower(all the text)


example :
if we have :

('TEST HERE this is a TEXT')

return

('test here this is a text')

but if with HTML tags like

<DIV CLASS='tesT'>This IS A TEXT</DIV><Div class='Test1'>THIS is another TEXT</DIV>

return

<DIV CLASS='tesT'>this is a text</DIV><Div class='Test1'>this is another text</DIV>

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

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

发布评论

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

评论(1

桃酥萝莉 2024-12-04 18:18:59
$str = preg_replace_callback( '/(<.+?>)*(.*?)/s', 'replace', $str );

function replace( $matches ) {
    return $matches[1].strtolower( $matches[2] );
}
$str = preg_replace_callback( '/(<.+?>)*(.*?)/s', 'replace', $str );

function replace( $matches ) {
    return $matches[1].strtolower( $matches[2] );
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文