【问题标题】:Remove or strip html tags and put them back again at the same position for a php string删除或剥离 html 标记并将它们重新放回 php 字符串的相同位置
【发布时间】:2022-07-24 17:54:27
【问题描述】:

我正在寻找一种方法来从字符串中删除 html 标签,并在发送字符串以使用 deepL 进行翻译后将它们放回相同的位置(如果 html 标签有属性,这不适用于它们)。

我将在下面发布解决方案。

【问题讨论】:

    标签: php html string preg-replace preg-match


    【解决方案1】:

    解决方案:

    如果你需要像我一样使用 DeepL 翻译字符串或做其他不需要字符串中的 html 标记的事情,那么你们可以按照相同的顺序删除和恢复所有 html 标签。

    https://gist.github.com/miguelgisbert/7ef9ee15aa0cc1ba32ea5ed192e486c3

    $str1 = "<p style='color:red;'>red</p><strong style='color:green;'>green</strong>";
    $pattern = '/<[^>]+>/';
    
    preg_match_all($pattern, $str1, $matches);
    $replacements = $matches[0];
    $str2 = preg_replace($pattern, '<>', $str1);
    
    // TRanslate $str2 with DeepL or do whatever without html tags
    
    $str3 = preg_replace_callback('/<>/', function($matches) use (&$replacements) {
        return array_shift($replacements);
    }, $str2);
    
    echo "str1 ".$str1."<br>";
    echo "str2 ".$str2."<br>";
    echo "str3 ".$str3."<br>";
    

    【讨论】:

      猜你喜欢
      • 2016-10-18
      • 1970-01-01
      • 2016-09-22
      • 2011-02-16
      • 2013-06-25
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2016-05-22
      相关资源
      最近更新 更多