为了账号安全,请及时绑定邮箱和手机立即绑定

在 PHP 中从两个刺之间获取数据

在 PHP 中从两个刺之间获取数据

PHP
holdtom 2022-09-17 17:45:51
我有以下字符串$str = "Loreum Ipsum Dolor Sit Amet <code>Some HTML Code like <h1>Head</h1></code>. Loreum Ipsum <code>Some Code</code> Dolor Sit Amet."我需要的是从所有代码标记中获取值,并将的PHP函数应用于该数据并将字符串连接回去。str_replace()str_replace('<', '&lt;', $sub_str);我尝试过使用,但无法从字符串中获取所有标签。explode()<code>
查看完整描述

1 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

您无需拉出标记内的字符串,替换文本并将任何内容连接回去。这一切都可以使用:<code></code>preg_replace_callback


<?php

$str = "Loreum Ipsum Dolor Sit Amet <code>Some HTML Code like <h1>Head</h1></code>. Loreum Ipsum <code>Some Code</code> Dolor Sit Amet.";

$str = preg_replace_callback(

    '|(?s)(?<=<code>).*?(?=</code>)|',

    function ($matches) {

        return str_replace('<', '&lt;', $matches[0]);

        // to replace '>' also:

        //return str_replace('>', '&gt;', str_replace('<', '&lt;',$matches[0]));

    },

    $str

);

echo $str;

指纹:


Loreum Ipsum Dolor Sit Amet <code>Some HTML Code like &lt;h1>Head&lt;/h1></code>. Loreum Ipsum <code>Some Code</code> Dolor Sit Amet.

请参阅正则表达式演示

    1. (s)设置单行模式,以便与换行符匹配。.

    2. (?<=<code>)指示上述字符匹配的后视断言。<code>

    3. .*?匹配 0 个或更多字符的非贪婪匹配,直到 ...

    4. (?=</code>)一个前瞻断言,指出以下字符匹配 。<code>

    语言演示


    查看完整回答
    反对 回复 2022-09-17
    • 1 回答
    • 0 关注
    • 91 浏览

    添加回答

    举报

    0/150
    提交
    取消
    意见反馈 帮助中心 APP下载
    官方微信