簡體   English   中英

混合文本和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 replace()獲得了更好的結果。

我的問題是-實現上述目標的最佳方法是什么? 我應該使用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代碼包裝quotes 。只需像這樣進行更改,

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

以您的html代碼到php字符串為例。

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

試試這個可能會有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM