2014-09-05 61 views
0

我一直在嘗試創建一個代碼片段網站,我需要的只是一個帶語法高亮顯示的漂亮的開放源代碼編輯器。我發現http://ace.c9.io/,但它似乎無法正常工作,當我通過編輯器腳本傳遞PHP;如何製作基於Web的代碼編輯器

PHP代碼正在通過CodeEditor跑:

<div id="editor"><?php echo 'test'; ?></div> 
<script> 
    var editor = ace.edit("editor"); 
    editor.setTheme("ace/theme/monokai"); 
    editor.getSession().setMode("ace/mode/javascript"); 
    editor.setReadOnly(true); 
</script> 

它顯示在編輯框 '測試'。

如果我使用此代碼通過的Javascript它的工作原理:

<div id="editor">function foo(items) { 
    var x = "All this is syntax highlighted"; 
    return x; 
}</div> 


<script> 
    var editor = ace.edit("editor"); 
    editor.setTheme("ace/theme/monokai"); 
    editor.getSession().setMode("ace/mode/javascript"); 
</script> 

我需要一個,很容易讓我輸入任何文字/代碼,並適當突出顯示。

+0

codemirror可以做php – dandavis 2014-09-05 23:04:50

回答

0

你需要編碼<>字符,以便他們不會被解釋爲HTML標籤

<div id="editor">&lt;?php echo 'test'; ?&gt;</div> 

如果您正在創建使用PHP的頁面,你可以使用htmlentities()來執行這種編碼。如果你使用jQuery,$("#editor").text(code)會正確編碼它(使用.html()將解釋HTML標籤)。

0

如果您正在運行.php文件,它將在編輯框中顯示測試。 您必須通過html編碼才能將其轉義。

<?php echo htmlspecialchars('<?php echo \'test\'; ?>'); ?> 
+0

大概在編輯器中顯示的PHP不會被硬編碼......所以我沒有得到這個答案。 – developerwjk 2014-09-05 23:09:27

相關問題