在php中替换字符串中标记之间的子字符串

在php中替换字符串中标记之间的子字符串,php,regex,string,dom,substring,Php,Regex,String,Dom,Substring,我已经为此工作了一整天,但找不到一个解决方案,可以像替换字符串一样在php中替换字符串中的子字符串 '<div> <h2>this is <span>String</span> found in h2 tag</h2> <p>Hello World</p> <h2>this is <span>String</span> found in h2 tag</

我已经为此工作了一整天,但找不到一个解决方案,可以像替换字符串一样在php中替换字符串中的子字符串

'<div>
   <h2>this is <span>String</span> found in h2 tag</h2>
   <p>Hello World</p>
   <h2>this is <span>String</span> found in h2 tag</h2>
   <p>Hello Universe</p>
   <h2>this is <span>String</span> found in h2 tag</h2>
</div>'
'
这是在h2标记中找到的字符串
你好,世界

这是在h2标记中找到的字符串 你好,宇宙

这是在h2标记中找到的字符串 '
我想得到h2中的每个字符串,然后执行一些HTML替换,比如

$str = 'this is <span>String</span> found in h2 tag';
$sanitized = htmlspecialchars($str,ENT_QUOTES);
$str='这是在h2标记中找到的字符串';
$sanitized=htmlspecialchars($str,entu引号);
然后输出完整的字符串,但被替换

如何做到这一点

<div>
    <h2>this is &lt;span&gt;String&lt;/span&gt; found in h2 tag</h2>
    <p><b>Hello</b> World</p>
    <h3>this is <span>String</span> found in h2 tag</h3>
    <p><b>hello</b> Universe</p>
    <h2>this is &lt;span&gt;String&lt;/span&gt; found in h2 tag</h2>
</div>

这是在h2标记中找到的span字符串/span
你好,世界

这是在h2标记中找到的字符串 你好,宇宙

这是在h2标记中找到的span字符串/span
您可以使用。匹配
标记的正则表达式为:

/<h2>(.+?)<\/h2>/  
/(.+?)/
如果要匹配所有
标记,请使用以下选项:

/<h([1-6])(.*?)<\/h\1>/ 
/您可以使用。匹配
标记的正则表达式为:

/<h2>(.+?)<\/h2>/  
/(.+?)/
如果要匹配所有
标记,请使用以下选项:

/<h([1-6])(.*?)<\/h\1>/ 
/您可以使用。匹配
标记的正则表达式为:

/<h2>(.+?)<\/h2>/  
/(.+?)/
如果要匹配所有
标记,请使用以下选项:

/<h([1-6])(.*?)<\/h\1>/ 
/您可以使用。匹配
标记的正则表达式为:

/<h2>(.+?)<\/h2>/  
/(.+?)/
如果要匹配所有
标记,请使用以下选项:

/<h([1-6])(.*?)<\/h\1>/ 


/看看这是否有帮助?是否有一些简单的解决方案来获取子字符串并执行一些计算,然后替换?这似乎我将不得不返工很多。事实上,我现在已经变得愚蠢了,因为我已经在itI上投入了一整天的时间。我会向您指出这个问题。虽然使用substr似乎更简单,但dom绝对是正确的解决方案。把失去的一天当作一次学习经历。看看这是否有帮助。是否有一些简单的解决方案来获取子字符串并执行一些计算,然后替换?这似乎我将不得不返工很多。事实上,我现在已经变得愚蠢了,因为我已经在itI上投入了一整天的时间。我会向您指出这个问题。虽然使用substr似乎更简单,但dom绝对是正确的解决方案。把失去的一天当作一次学习经历。看看这是否有帮助。是否有一些简单的解决方案来获取子字符串并执行一些计算,然后替换?这似乎我将不得不返工很多。事实上,我现在已经变得愚蠢了,因为我已经在itI上投入了一整天的时间。我会向您指出这个问题。虽然使用substr似乎更简单,但dom绝对是正确的解决方案。把失去的一天当作一次学习经历。看看这是否有帮助。是否有一些简单的解决方案来获取子字符串并执行一些计算,然后替换?这似乎我将不得不返工很多。事实上,我现在已经变得愚蠢了,因为我已经在itI上投入了一整天的时间。我会向您指出这个问题。虽然使用substr似乎更简单,但dom绝对是正确的解决方案。拥抱失落的一天作为一种学习体验。哇,米卡,这真是个了不起的人。我是否可以将内容也全部替换为在中更改Hello?我正在编辑我的问题,请看是否可能。除了替换h2内容外,我还想将所有的标签都加粗。可以用你说的同一个函数来做吗?更新了示例以匹配其他问题。如果它回答了问号,它就被批准了。谢谢米卡。难道不能在一个函数中同时执行bold和htmlreplacement吗?您可以将regexp数组传递给preg_replace_callback(),这样就可以完成这项工作。问题是你们还需要知道哪个regexp手表匹配,因为你们正在对它们进行不同的转换。我是否可以将内容也全部替换为在中更改Hello?我正在编辑我的问题,请看是否可能。除了替换h2内容外,我还想将所有的标签都加粗。可以用你说的同一个函数来做吗?更新了示例以匹配其他问题。如果它回答了问号,它就被批准了。谢谢米卡。难道不能在一个函数中同时执行bold和htmlreplacement吗?您可以将regexp数组传递给preg_replace_callback(),这样就可以完成这项工作。问题是你们还需要知道哪个regexp手表匹配,因为你们正在对它们进行不同的转换。我是否可以将内容也全部替换为在中更改Hello?我正在编辑我的问题,请看是否可能。除了替换h2内容外,我还想将所有的标签都加粗。可以用你说的同一个函数来做吗?更新了示例以匹配其他问题。如果它回答了问号,它就被批准了。谢谢米卡。难道不能在一个函数中同时执行bold和htmlreplacement吗?您可以将regexp数组传递给preg_replace_callback(),这样就可以完成这项工作。问题是你们还需要知道哪个regexp手表匹配,因为你们正在对它们进行不同的转换。我是否可以将内容也全部替换为在中更改Hello?我正在编辑我的问题,请看是否可能。除了替换h2内容外,我还想将所有的标签都加粗。可以用你说的同一个函数来做吗?更新了示例以匹配其他问题。如果它回答了问号,它就被批准了。谢谢米卡。难道不能在一个函数中同时执行bold和htmlreplacement吗?您可以将regexp数组传递给preg_replace_callback(),这样就可以完成这项工作。问题是您还需要知道哪个regexp手表匹配,因为您正在对它们进行不同的转换。