替换标签之间文本中的单词

发布于 2025-01-17 12:47:19 字数 267 浏览 0 评论 0原文

我知道有很多类似的问题,但是没有我想要的,我需要替换标签之间的文字中的单词,但是问题是没有帐户空间或其他较差的问题,所以它不匹配,

我尝试添加以前添加逗号 /b,但行不通。

代码示例:

$content= preg_replace('@(?<=<p>)'.$value->data['target'].'(?=.*</p>)@', $value->data['string'], $content);

i know that there are many similar question but none have what im looking for, i need to replace a word from a text between tags but the problem is that is not having in account spaces or other wors so it doesnt match,

I tried adding before comma the /b but is not working.

Code Example:

$content= preg_replace('@(?<=<p>)'.$value->data['target'].'(?=.*</p>)@', $value->data['string'], $content);

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

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

发布评论

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

评论(1

从此见与不见 2025-01-24 12:47:19

您可以尝试在标签之间找到文本并替换它。您可以尝试以下代码:

function replace_content_between_tags(string $content, string $tagname, string $searchStr, string $replaceWith)
{
   $pattern = "#<\s*?$tagname\b[^>]*>(.*?)</$tagname\b[^>]*>#s";
   preg_match_all($pattern, $content, $matches);

   foreach($matches[1] as $key => $match) {
    
     if(strpos($match, $searchStr) !== false) {
        $replaceContent = '<' . $tagname . '>' . $match . '</' . $tagname . '>';
        $content = str_replace($replaceContent, $replaceWith, $content);
        break ;
     }
   }
            
   return $content;
    
}

$new_content = replace_content_between_tags($content, 'p', $value->data['target'], $value->data['string']);

You can try to find the text between tags and replace it. You can try the following code:

function replace_content_between_tags(string $content, string $tagname, string $searchStr, string $replaceWith)
{
   $pattern = "#<\s*?$tagname\b[^>]*>(.*?)</$tagname\b[^>]*>#s";
   preg_match_all($pattern, $content, $matches);

   foreach($matches[1] as $key => $match) {
    
     if(strpos($match, $searchStr) !== false) {
        $replaceContent = '<' . $tagname . '>' . $match . '</' . $tagname . '>';
        $content = str_replace($replaceContent, $replaceWith, $content);
        break ;
     }
   }
            
   return $content;
    
}

$new_content = replace_content_between_tags($content, 'p', $value->data['target'], $value->data['string']);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文