http://c9.ioのようなサービスを作成して、サーバー上の.phpファイルをブラウザーで直接編集しています。
そこでCodeMirrorエディターを実装しました。エディタは次のように見えます: http: //codemirror.net/mode/php/index.html
私の問題は、jQuery.ajaxPOSTを介してphpコードを含むデータを送信できないことです。
次の行をhello.phpに保存したいとします。
<?php
require_once("lukujA.php");
?>
私はファイルを保存するために次のjs/jqueryコードを使用しています:
$(".save-file").click(function (){
var content = editor.getValue(); //textarea text
var path = "hello.php";
//following line shows content-data as it shows on CodeMirror editor
//confirm box without any quotes / slashes / and with every linebreak
var response = confirm("Do you want to save? DATA: " + content);
if(response)
{
$.ajax({
type: "GET",
url: "saveFile.php",
data: "content="+content+"&path="+path+"",
success: function(){
alert("File saved!");
}
});
}
else{
alert("File not saved!");
}
});
saveFile.php:
$path = $_GET['path'];
$content = $_GET['content'];
if($path !== "" and is_writable($path))
file_put_contents($path, $content);
上記のコードは、hello.phpを次のように出力します(1行にスラッシュを付けて)(POSTを使用すると、エディターで作成した改行が削除されるようです):
<?php require_once(\"lukujA.php\"); ?>
stripslashes($content);
次のようなphpコードがある場合、saveFile.phpの原因で使用できません。
<?php echo "<input type=\"text\" name=\"foo\">"; ?>
strip_slashes
それらのスラッシュを削除し、実行するとコードが無効になります。
これに遭遇するにはどうすればよいですか?また、新しいコードをファイルに保存するにはどうすればよいですか?この種のエディターをどのように作成しますか?
ありがとう