Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/125: Рейтинг темы: голосов - 125, средняя оценка - 4.72
web dev
 Аватар для TBIKC
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737

Редактирование html страниц посредством php

20.04.2011, 21:20. Показов 25594. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что то сижу и додуматься не как не могу:

Есть страница index.php
В ней подключаются в зависимости от перехода по ссылке
index.php?page=main
index.php?page=second
index.php?page=about

html файл с информацией ...
Нужно создать страничку edit.php где можно выбрать любой html файл в папке pages открыть отредактировать и сохранить, либо как то другим алгоритмом (edit.php) Подскажите как пожалуйста
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.04.2011, 21:20
Ответы с готовыми решениями:

Редактирование HTML посредством PHP
Здравствуйте гуру веб-разработки!!! Сразу предупреждаю я новичок в этом деле!! Возник такой вопрос: Реально ли изменить HTML...

Вывод текста на html посредством php
Имеется html страничка index.html где прописан вызов php файла <--какой-то html код--> <div class="post"> ...

Как, использующие php, сайты имеют расширение страниц html, но не php?
Сабж. Собственно говоря, сайты наверняка построены с использованием PHP, но при этом страница может иметь расширение html. Либо страница...

9
84 / 84 / 8
Регистрация: 12.04.2010
Сообщений: 324
21.04.2011, 04:47
Лучший ответ Сообщение было отмечено как решение

Решение

Ну давайте рассуждать логически.
1. Нужно получить список всех таких html страничек в папке
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// edit.php
// пробегаем по содержимому
$all_files = scandir('pages');
// в цикле перебираем файлы
foreach($all_files as $one_file)
{
// проверяем не директория ли
if(!is_dir($one_file))
{
// проверяем расширение
if(pathinfo($one_file, PATHINFO_EXTENSION) == 'html')
{
// выполняем вывод списка
$file_name = explode('.', $one_file); // получаем имя
echo '<a href="?edit_page='.$file_name[0].'">'.$file_name[0].'</a><br/>';
}
}
}
В итоге получили список всех страничек
2. Если не пуста $_GET['edit_page'] то получаем содержимое
PHP
1
2
3
4
5
6
if(!empty($_GET['edit_page']))
{
$content = file_get_contents('pages/'.$_GET['edit_page'].'.html');
// форму и кнопку сделаешь сам
echo '<textarea name="content">'.$content.'</textarea>';
}
В итоге у нас в текстовом поле содержимое страницы. Далее в этом же поле можно отредактировть что нужно (можно к полю прикрутить визуальный редактор для удобства)
3. При нажатии на кнопку "сохранить" - сохраняем изменения
PHP
1
2
3
4
5
6
7
8
9
// в обработчике или в этом же файле
if(isset($_POST['имя кнопки в форме']))
{
$cont = $_POST['content'];
$status = file_put_contents('pages/'.$_GET['edit_page'].'.html', $cont);
if($status)
echo 'ok';
else echo'fail';
}
В итоге сохранили изменения
3
 Аватар для c4boomb
198 / 166 / 23
Регистрация: 20.04.2011
Сообщений: 750
Записей в блоге: 1
21.04.2011, 09:16
Цитата Сообщение от TBIKC Посмотреть сообщение
........ либо как то другим алгоритмом (edit.php) Подскажите как пожалуйста
Можно это зделать через базу MySql. Занести все тексты в неё и присвоить им id. Далее с помощью php вывести их из базы на экран
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
include ('cf.php');
 
$qtext = mysql_query("SELECT text FROM pages where id = 1");
 
$rows = mysql_num_rows($qtext);
$fields = mysql_num_fields($qtext);
echo "<pre>";
  for ($c=0; $c<$rows; $c++) {
     for ($cc=0; $cc<$fields; $cc++) {
     $text = mysql_result($qtext, $c, $cc);
     echo $text; 
     echo "\n";
     }
  }
echo "</pre>";

Редактировать можно элементарно с помощью запроса UPDATE.

redakt.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<h1><center>Редактирование главной страницы сайта</center></h1>
<br><br>
<h3>Сейчас текст главной тсраницы выглядит так:</h3>
<br>
<br>
<h4>
<?php
//файл с вашими настройками подключения к серверу
include ('cf.php');
//Делаем запрос. Получаем ответ и присваеваем его $b. Выводим на экран.
$q = mysql_query("SELECT text FROM pages where id = 1");
 
$rows = mysql_num_rows($q);
$fields = mysql_num_fields($q);
echo "<pre>";
  for ($c=0; $c<$rows; $c++) {
     for ($cc=0; $cc<$fields; $cc++) {
     $b = mysql_result($q, $c, $cc);
     echo mysql_result($q, $c, $cc)."\t";  
     echo "\n";
     }
  }
echo "</pre>";
echo <<<HERE
</h4>
<h2><center> Редактировать:</center></h2>
HERE;
//создаём форму с отправкой данных в файл action.
echo "<form method='POST' action='action.php'>";
echo "<textarea name='text' rows='20' cols='50'>";
echo "$b";
 
echo "</textarea>";
//вместо кнопка подставте своё значение(по желанию).
echo "<input type='submit' name='KNOPKA'>";
echo "</form>";
 
?>

В файле action.php



PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include ('cf.php');
 
 
 
//обнавляем базу
if (isset($_POST['KNOPKA'])) {
$e= $_POST["text"];
$q= "UPDATE text SET pages = '$e' WHERE id = '1';";
mysql_query($q);
//Делаем переадресацию на какую то страничку.
header("Location:yes.html");
}
 
?>
Вот и всё. (это самый простой вариант оброботчика и скрипта.)

ОФФТОП: Если не жалко нажми +1
0
web dev
 Аватар для TBIKC
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
21.04.2011, 10:15  [ТС]
Вообще я уже сам написал скрипт:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Зачитываем файл
$filename = "pages/main.html"; 
   
$newdata = $_POST['newd']; 
if ($newdata != '') { 
// Открываем файл 
$fw = fopen($filename, 'w') or die('Невозможно открыть файл'); 
// Ведём запись в файл + stripslashes
$fb = fwrite($fw,stripslashes($newdata)) or die('Невозможно изменить файл'); 
// Закрываем
fclose($fw); 
} 
 
// Открываем файл 
$fh = fopen($filename, "r") or die("Невозможно открыть файл"); 
// Читаем его
$data = fread($fh, filesize($filename)) or die("Невозможно прочитать файл"); 
// Закрываем
fclose($fh); 
// Выводим его содержимое
echo"
<form action='$_SERVER[php_self]' method='post'> 
<textarea cols=50 rows=2 name=newd> $data</textarea>
<br><input type='submit' value='Сохранить'> 
</form> 
";
Но проблема в том что он читает тока 1 файл ( $filename = "pages/main.html"; )
Попробовал использовать xand код: выводит нормально список html файлов но не загружает их в поле ( перуделывал уже минут 40 наверно, не получаеться )

Пс: с mysql не буду работать
0
84 / 84 / 8
Регистрация: 12.04.2010
Сообщений: 324
21.04.2011, 10:17
TBIKC, кинь архивом всю писанину, посомтрю, поправлю
0
web dev
 Аватар для TBIKC
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
21.04.2011, 10:24  [ТС]
Атач
Вложения
Тип файла: rar 1.rar (1.2 Кб, 129 просмотров)
0
84 / 84 / 8
Регистрация: 12.04.2010
Сообщений: 324
21.04.2011, 11:01
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// пробегаем по содержимому
$all_files = scandir('pages');
// в цикле перебираем файлы
foreach($all_files as $one_file){
// проверяем не директория ли
    if(!is_dir($one_file)){
        // проверяем расширение
        if(pathinfo($one_file, PATHINFO_EXTENSION) == 'html'){
        // выполняем вывод списка
        $file_name = explode('.', $one_file); // получаем имя
        echo '<a href="?edit_page='.$file_name[0].'">'.$file_name[0].'</a><br/>';
        }
    }
}
 
if(!empty($_GET['edit_page']))
{
    $content = file_get_contents('pages/'.$_GET['edit_page'].'.html');
}
// сохранение изменений
if(!empty($_POST['newd']) and isset($_POST['save']))
{
    $file = fopen ('pages/'.$_GET['edit_page'].'.html', 'w+');
    if (!$file )
    echo("Ошибка открытия файла");
    else
    fputs ($file, $_POST['newd']);
    fclose ($file);
}
// Выводим его содержимое
echo '
<form action="" method="post"> 
<textarea name="newd">'.$content.'</textarea>
<br><input type="submit" name="save" value="Сохранить"> 
</form> 
';
у меня работает
1
web dev
 Аватар для TBIKC
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
21.04.2011, 12:04  [ТС]
Работает, только вот ещё 1 момент вносишь изменения жмёшь save он сохраняет,
как сделать редирект чтобы он тут же показал поле со всеми изменениями внесёнными ( сейчас не показывает)
0
84 / 84 / 8
Регистрация: 12.04.2010
Сообщений: 324
21.04.2011, 12:14
Не нужен ни какой редирект. После закрытия файла (fclose ($file) нужно дописать следующее
PHP
1
$content = $_POST['newd'];
0
web dev
 Аватар для TBIKC
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
21.04.2011, 12:53  [ТС]
а ну да вы правы, работает, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2011, 12:53
Помогаю со студенческими работами здесь

Html и PHP... Не пойму как считать данные с html форм в PHP.
Прошу не ругаться. Но что то я не пойму. Ну например в PHP указывают файл: &lt;?php $file = 'example.txt'; ?&gt; а что надо...

Удаление записи из БД посредством PHP - PHP
помогите пожалуйста разобраться, почему мой скриптик не удаляет запись из бд? If (isset($_GET)) { $sql=mysql_query(&quot;SELECT *...

Добавление страниц и их редактирование
Добрый день, я в php очень слаб, но у меня есть задача, которую мне сложно выполнить. Мне нужно сделать вот что: Есть страница, назовем...

Отправка письма посредством php
Написал код для заказа диска через сайт, программа не срабатывает в файле пхп, выдаёт ошибку на 7 строке: Notice: Undefined variable: pass...

Переход по ссылке посредством PHP
Добрый день, уважаемые форумчане. Подскажите с решением одного вопроса. Есть форма на сайте, она отправляет на почту контакты клиентов. У...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru