我在定製的CMS中使用了Redactor編輯器。 Redactor有一個選項,phpTags
,當設置爲true
時,允許將PHP代碼輸入並保存爲內容的一部分。如何處理文本字符串中的PHP代碼,以防止它被視爲文本?
問題是,此PHP代碼被視爲文本,而不是PHP代碼,並且正在被轉義而不是被處理。
例如,如果我在編輯器中輸入:
<?php echo date('Y'); ?>
取而代之的是今年的顯示,代碼在頁面的標記註釋,像這樣:
<!--?php echo date('Y'); ?-->
我該如何防止這種情況發生?確保PHP代碼是由服務器處理/解釋的?
我應該提到有很多人使用這個CMS,所以沒有辦法知道可以提前添加什麼PHP代碼。
請與我們分享您的嘗試。 – 2014-09-05 17:58:05
在使用之前,您是否必須啓用對phpTags的支持? – Brian 2014-09-05 18:00:37
@JayBlanchard我首先嚐試了str_replace來用'<?php'替換'<! - ?php',並且同樣關閉了PHP標記。這並沒有導致顯示在他網頁上的內容沒有任何改變。然後,我直接查看數據庫,並且代碼存在,因爲它應該是。數據從數據庫中檢索並傳遞給一個使用'echo'在頁面上顯示的函數,所以'echo'文本包含格式正確的PHP代碼。看起來瀏覽器正在將PHP解釋爲文本,並將其註釋掉。 – 2014-09-05 21:37:27