簡體   English   中英

Javascript / PHP中的HTML轉義/編碼

[英]HTML Escaping/Encoding in Javascript/PHP

我有多頁html代碼保存到數據庫中。 我希望文件能夠翻轉每個頁面而無需重新加載。

我創建了一個PHP文件,將所有頁面都拉入數據庫。

該頁面顯示第一頁和導航按鈕。

還有javascript將所有其他頁面放入一個數組,以便我可以快速切換頁面。

var pages = new Array();
<?php foreach ($coursePages as $page): ?>
    pages[pageCount] = "<?php echo ($page['body']) ?>";
    pageCount++;
<?php endforeach ?>

我的問題是創建javascript數組。 如何正確地從回顯中轉義數據,以便最終使用以下內容更改頁面內容:

$(document).ready(function() {
    $('.navNext, .navPrevious').click(function({
        if ($(this).hasClass('navNext')) {
            page++;
            if (page > pageCount) {
                page = 0;
            }
        } else {
            page--;
            if (page < 0) {
                page = 0;
            }
        }

        $('.page').html(pages[page]);
    }))
});

你可以使用這個函數來轉義js值:

function js_escape_string($str)
{
    $str = str_replace("\\", "\\\\", strval($str));
    $str = str_replace("'", "\\'", $str);
    $str = str_replace("\r", "\\r", $str);
    $str = str_replace("\n", "\\n", $str);
    $str = str_replace("\t", "\\t", $str);
    $str = str_replace("</script>", "</'+'script>", $str);
    return $str;
}

注意:圍繞JS值使用單引號,例如:

<script>
var a = '<?php echo js_escape_string(....); ?>';
</script>

無論何時您將值從PHP動態發送到JavaScript,您都可以使用json_encode()。 它將始終生成有效的JavaScript並處理所有數據類型。 例:

<script>
    var a = <?php echo json_encode($var)?>;
</script>

暫無
暫無

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

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