2017-06-24 78 views
0

我有一大串有效的HTML代碼將被插入到DOM中,該字符串還包含PHP代碼。我希望將php代碼顯示爲純文本,Chrome會自動註釋PHP代碼。顯然,PHP代碼被包裹在<?php ... ?>所以我的問題是:在字符串中查找並替換<?php & ?>

我如何用<span>標籤與</span>取代公開<?php,並更換?>關閉打開的<span>標記,這樣的PHP代碼中的<span>標籤和爲此可見爲純文本?

編輯:我將通過替換span來包裝PHP代碼回<?php ?>,因此轉義字符會使這變得更加困難。

+0

你想簡單地逃避它,讓它顯示出來嗎? – mkaatman

+0

我將通過獲取span標籤中的文本將跨度轉換回,所以我猜不是。 – guub

+0

在你的PHP內容(字符串)上使用['htmlentities()'](https://3v4l.org/t2Jhr),這會給你在瀏覽器中解釋爲字符串的字符。 –

回答

1

正如你說,HTML是一個字符串,你可以很容易地只使用replace()功能。

var html = // your html 
var sanitized = html.replace(/<\?php/g, "<span>").replace(/\?>/g, "</span>"); 
+0

需要更多正則表達式 – DZDomi

+0

@DZDomi修復了它 – Aenadon

+0

謝謝。現在好多了。你有空閒時間談論耶穌,我們的主和救主? – DZDomi

1

使用正則表達式!

RegExp101是一個很棒的操場。 請記住將左側菜單中的風味改爲JavaScript

最簡單的方法是使用.replace()函數。

var str = str.replace(/(<\?php)|(<\?)|(<\?=)/g, '<span>').replace(/(\?>)/g, '</span>');

編輯:按照要求通過Get Off My Lawn,我已經添加了支持<?=第二<?標籤。管道|代表正則表達式中的

+0

可能還需要支持'<?' –

+0

@GetOffMyLawn我不是PHP的傢伙,是'<?'沒有'php'的東西?如果是這樣,它會作爲備用開標籤工作嗎(我可以很容易地將它添加到解決方案) – warkentien2

+0

是的,它是一件事情。 php支持多項:'<?php','<?'和'<?=' –

相關問題