Загрузите файл HTML, отредактируйте содержимое внутри тега и сохраните изменения в файле HTML - PullRequest
0 голосов
/ 31 октября 2019

Я работаю над проектом, в котором вам нужно загрузить файл HTML, отредактировать некоторое содержимое в теге, а затем сохранить эти изменения обратно в тот же файл, не затрагивая другой другой контент.

Вот как выглядит моя разметка:


<?php 
    session_start();
    $page_title = "Hello world";

    include "../includes/header.php"
?>
<div data-content></div>
<?php 
    include "../includes/footer.php";
?>

А затем с помощью ajax - я отправляю любой контент, который был добавлен в <div data-content></div>

. наталкивается на попытку сохранить этот новый контент в существующий HTML-файл, не затрагивая остальную часть HTML-файла.

Цель состоит в том, чтобы создать визуальную CMS, поэтому, если у кого-то есть предложения получше - я открыт дляразворачивается и выбирает лучший маршрут.

1 Ответ

0 голосов
/ 31 октября 2019

Ты имеешь в виду что-то подобное?:

<html>
<head>
</head>
<body>
    <form class="public" action="<?php echo "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; ?>" method="POST" enctype="multipart/form-data">
    <p><label for="file">File Name:</label> <input type="file" name="file" id="file" /></p>
    <br/>
    <p><input type="submit" value="Parsing" name="sendData"/></p>
    </form>

</body>
</html>

<?php
//test if the file is selected
if(!isset($_POST['sendData'])) exit;
//get file name
$filename = $_FILES["file"]["name"];
//be sure this file is html file
$ext = explode('.', $filename);
if($ext[1] != 'html'){
    echo '<br>bad file type, it must be html file';
    exit;
}
//upload the file to temp area
move_uploaded_file($_FILES["file"]["tmp_name"], $_FILES["file"]["name"]);
//read the file
$file = @fopen($filename, 'r');
if($file === false){
    echo 'Error when reading the file';
    exit;  
}
//reading line by line
$output ='';
while (($line = fgets($file)) !== FALSE) {
    $output .= str_replace('<img', '<svg', $line);
}
fclose($file);
//write the new file
$result = file_put_contents($filename, $output);
echo $result;
if(!$result){
    echo 'faild';
}else{
    echo 'success <br/>';
    $load_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    $load_link = str_replace('pars.php', '', $load_link); 
    $load_link .= $filename;   
    echo '<a href='.$load_link.'>See the results</a><br>';
}


?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...