2014-01-18 27 views
1

我允許自己在這裏提問,因爲我查找了關於我的問題該怎麼做,但沒有找到任何有用的信息。將頁面另存爲.html並上傳到ftp

我有一個網頁,用戶可以在其中修改信息,如文本,圖像等,我想添加一個按鈕,將頁面保存爲當前狀態的.html(重新加載密碼重置所有內容)並上傳它在一個FTP上,所以他們可以在線訪問它。

此時,我知道如何使用js .innerHTML獲取所有html內容,以及如何使用php將文件發送到ftp,但我不知道要生成.html文件其中包含innerHTML內容。

所以我在這裏,請求你的幫助,引導我走向正確的方向。 非常感謝!

遵循CNG27的建議,我認爲現在的問題來自我的PHP腳本..對不起,但我真的不習慣於PHP。

這裏是PHP腳本:

<?php 
$handle = fopen("filename.html", "w+"); 
fwrite($handle, $_POST['HTML']); 

$dossier = 'endpoint/'; 
$fichier = basename($_FILES['HTML']['name']); 

if(!isset($erreur)) 
{ 
$fichier = strtr($fichier, 
     'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
     'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier); 
if(move_uploaded_file($_FILES['HTML']['tmp_name'], $dossier . $fichier)) 
     echo 'Upload done !'; 
} 
else 
{ 
     echo 'Upload failed !'; 
} 
} 
else 
{ 
echo $erreur; 
} 
?> 

它說:「沒有數據接收」

非常感謝您的幫助

回答

0

因此,您的JavaScript文本(在你的情況下,HTML代碼),你想轉移到您的PHP腳本並將其保存爲文件!那是對的嗎?如果是這樣,我會推薦這樣的:

由於JavaScript是客戶端和PHP是服務器端,你應該通過POST發送。 我會用這樣的形式:

<form name="myform" action="url/to/php/script.php" method="POST"> 
<button type="submit">Submit!</button> 
<input type="hidden" name="HTML" id="htmlsubmit" value=""> 
</div> 
</form> 

現在的JS腳本,你必須更新你的隱藏輸入這樣的值:

document.getElementById("htmlsubmit").value = htmlcode; 

htmlcode代表您完成了您的HTML代碼.innerHTML

現在,在你的PHP腳本,你只需要接收代碼並將其寫入文件:

$handle = fopen("filename.html", "w+"); 
fwrite($handle, $_POST['HTML']); 

既然你已經知道如何上傳文件通過PHP到FTP,只是做與你的文件「filename.html」)

希望幫助

編輯:您編輯您的問題,說你需要幫助與PHP腳本...這將是一個可能的完整的腳本,你可以使用:

<?php 
$fname = "filename.html"; 
if(!isset($_POST['HTML'])) 
{ 
    echo "Error: No data received..."; 
}else{ 
    $handle = fopen($fname, "w+"); 
    fwrite($handle, $_POST['HTML']); 
    fclose($handle); 
    echo "HTML Code written to file: <a href=\"".$fname."\">".$fname."</a>"; 
} 
?> 

這是你所需要的腳本嗎?

+0

感謝您的建議,我現在就試試看! – SKYnine

+0

告訴我它是如何工作:) – theCNG27

+0

我編輯我的問題與PHP腳本。看來它現在不起作用。起初,php腳本是用來上傳圖片的,所以它可能不一致。 – SKYnine

0

使用JavaScript,文檔元素調用innerHTML會給你將頁面標記爲字符串,包括對DOM所做的更改。

var markup = document.documentElement.innerHTML; 

然後,可以將這個標記後使用AJAX的端點。端點可以接收字符串,將其保存爲html文件,然後通過FTP將其上傳。

+0

感謝您的建議。我不熟悉AJAX,但我會研究它。這裏的主要問題是不知道要尋找什麼。 – SKYnine

相關問題