字符串替换混合文本和HTML(客户端或服务器端)


String replacement of mixed text and HTML (client or server-side)

我想替换网页上的文本和html字符串。这是为了突出显示文本片段。因此,高亮显示的文本存储在数据库中,当加载其网页时,代码应该查找并替换该文本。

例如,

$original_string = "SOME TEXT"; 
$replacement_string = "<span data-id='7334' class='highlight'>SOME TEXT</span>"; 

我在使用PHP str_replace时遇到了问题,因为它不能很好地替换奇怪的html实体或更大的字符串。

因此,现在,我正尝试使用JS在客户端进行此操作,并使用JS-replacement()获得了更好的结果。

我的问题是,实现上述目标的最佳方式是什么?我应该使用PHP解析器还是坚持使用JS?

如果我使用JS,我应该如何构建for循环,以便所有替换都在同一文本上进行?这并不完全奏效:

var value = $('#domainContainer').html();
    var $highlightsArray_search = <?php echo json_encode($highlightsArray_search); ?>;
    var $highlightsArray_replace = <?php echo json_encode($highlightsArray_replace); ?>;
    for(var i=0; i<2; i++){
        var search_value = $highlightsArray_search[i];
        var replace_value = $highlightsArray_replace[i];
        var formattedSnippet = value.replace(search_value, replace_value);
        value = formattedSnippet;
    }
    $('#domainContainer').html(formattedSnippet); 

你必须用quotes包装php代码

var $highlightsArray_search = "<?php echo json_encode($highlightsArray_search); ?>;"
                              ^                                                    ^
var $highlightsArray_replace = "<?php echo json_encode($highlightsArray_replace); ?>;"
                               ^                                                    ^

以php字符串中的html代码为例。

<?php
$original_string = "SOME TEXT"; 
$first ="<span data-id='7334' class='highlight'>";
$second = "</span>";
echo $first.$original_string.$second;
?>

试试这个可能会有帮助