我得到了一個從文本文件加載html代碼到一個textarea的頁面,我需要能夠使用腳本保存它的內容。加載一個文件,編輯並保存它(服務器端)PHP
我正在使用PHP腳本從文件加載代碼並將其回送到textarea,但是如何將內容發送回腳本並將其保存到相同的文件或文件中一個新的名字?
我想如果getElementById會幫助我,但我不知道如何。
負載腳本(它刪除文件太多的能力)
// The file hierarchy:
//
//Web root - admin - This file
// - pages - in here are the page text files
// The variable pagesList is the filename chosen in a dropdown list earlier
$page = $_GET["pagesList"];
$action = $_GET["action"];
//get the path to the page(all pages are in a folder named 'pages')
$filename = dirname(dirname(__FILE__))."/pages/".$page;
if(file_exists($filename) and is_file($filename)){
//If I want to load a file
if($action == "open"){
$f = fopen($filename,"rt");
$content = fread($f, filesize($filename));
echo $content;
@fclose($f);
//If I want to delete a file
}elseif($action == "delete" && is_file($filename)){
//move the working directory to where the file is
$old = getcwd();
chdir(dirname(dirname(__FILE__))."/pages/");
//----
if(unlink($filename))
echo "File deleted,".$filename;
else
echo "Error deleting file!";
//change back the working directory to where it was
chdir($old);
//If I want to save a file
}elseif($action == "save"){
if(file_exists($filename)){
//Unknown script, need help!
}else{
}
}
}
textarea裏有隻有一行包括它:
<textarea id="html_content" style="width:600;height:200;"><?php include("loader.php") ?></textarea>
概括起來:我需要幫助將textarea的內容提供給腳本以便稍後保存。
編輯:感謝davidkonrad我只需在腳本中添加幾個POST接收並添加file_put_content與發送給它的內容。
出現的問題是,jQuery顯然會在每個「或」之前放置\,這會弄亂所有應該是乾淨有效的html代碼,我將不得不用「以某種方式替換\」,str_replace不會削減它的任何想法
EDIT2:?再次感謝davidkonrad通過使用encodeURIComponent方法(jQuery的)客戶方和urldecode(PHP)服務器端固定它
哇,謝謝,但我得到的主要問題是關於將textarea內的文本轉移到php腳本。你可以看到已經完成了加載和刪除操作。 Theres沒有錯你的代碼的方式,但我寧願繼續我開始它的方式。而且我看到您使用POST來處理內容,但我會使用GET,以獲得更大的靈活性。 –
好吧,不太明白 - 爲什麼你不能通過正常的形式/提交將textarea的內容傳遞給PHP腳本?使用POST代替GET的原因有一個原因:GET有一些窄的限制,對於使用suhosin補丁的普通PHP,$ _GET字段的默認限制是512字節。對於瀏覽器,GET的最大長度(包括所有字段)大約爲2000個字符。編輯HTML文件時不多 - 請參閱http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers - 我想您最終會使用POST最後:) – davidkonrad
啊,theres一個限制..那麼,有可能在表單中有一個textarea,並通過POST提交其內容?我的意思是我想繼續使用我已有的腳本,而不是使用JQuery或第二個全新的腳本來處理我已有的腳本。 –