猿问

在 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."


我需要的是从所有代码标记中获取值,并将的PHP函数应用于该数据并将字符串连接回去。str_replace()

str_replace('<', '&lt;', $sub_str);

我尝试过使用,但无法从字符串中获取所有标签。explode()<code>


holdtom
浏览 92回答 1
1回答

慕容3067478

您无需拉出标记内的字符串,替换文本并将任何内容连接回去。这一切都可以使用:<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(&nbsp; &nbsp; '|(?s)(?<=<code>).*?(?=</code>)|',&nbsp; &nbsp; function ($matches) {&nbsp; &nbsp; &nbsp; &nbsp; return str_replace('<', '&lt;', $matches[0]);&nbsp; &nbsp; &nbsp; &nbsp; // to replace '>' also:&nbsp; &nbsp; &nbsp; &nbsp; //return str_replace('>', '&gt;', str_replace('<', '&lt;',$matches[0]));&nbsp; &nbsp; },&nbsp; &nbsp; $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.请参阅正则表达式演示(s)设置单行模式,以便与换行符匹配。.(?<=<code>)指示上述字符匹配的后视断言。<code>.*?匹配 0 个或更多字符的非贪婪匹配,直到 ...(?=</code>)一个前瞻断言,指出以下字符匹配 。<code>语言演示
随时随地看视频慕课网APP
我要回答