Войти

Показать полную графическую версию : Можно ли редактировать сохраненные странички форума ?


Tigr
06-07-2008, 00:49
Многие темы представляют собой хорошее учебное пособие по решению каких-либо проблем. Часто такие темы насыщены не относящимися к делу ("шумовыми") сообщениями. Вырезать их, открыв в Блокноте HTML-код - не самый удобный способ. Можно ли выложить инструмент (если таковой можно выдрать из движка форума, конечно), к-й позволил бы открыв сохраненную на хард страничку, удалить нежелательные посты ? Не сравнивал код обычных страничек с тем, что получается если использовать функцию "Версия для печати", но мне намного приятнее смотреть на обычный вид.

Blast
06-07-2008, 00:51
такие инструменты называются HTML-редакторами :)

Tigr
06-07-2008, 01:35
Спасибо, но я уже упоминал Блокнот. В бытность модером пользовался намного более простой возможностью удаления (переноса и т.п.) постов и тем.

fantik
06-07-2008, 01:44
Tigr,

Я Вас понимаю. Я тоже люблю блокнот (Ну, не совсем, конечно, блокнот, но текстовый редактор).

Но существует такие, как DreamWeaver, к примеру.. Там совсем необязательно в коде копаться :yes:

А "простая" возможность переноса и редактирования - это лишь вершина айсберга под названием PHP, всю работу делает за вас движок форума... А сохраненные версии - чистый сгенерированный HTML, и править его "по-простому" ну никак не получится.

Tigr
06-07-2008, 01:56
А сохраненные версии - чистый сгенерированный HTML, и править его "по-простому" ну никак не получится. »
Теперь понял - спасибо.

Coutty
06-07-2008, 08:15
Tigr, если ну очень надо, то можно и написать свой PHP-парсер (а то и вовсе JavaScript'овый :)). Прикрепи пример того, что есть и того, что хотел бы получить из того, что есть) Может, на досуге попробую...

Sham
06-07-2008, 09:44
если есть Firefox, то лучший вариант это плугин firebug (http://getfirebug.com/) - в режиме inspect выделять целые посты и удалять... для IE другой софт типа этого есть...

Tigr
06-07-2008, 13:58
Прикрепи пример того, что есть и того, что хотел бы получить из того, что есть »
Возьми любую тему и попробуй написать скрипт под IE, удаляющий выделенный пост.
для IE другой софт типа этого есть... »
Буду очень рад подробностям.

Sham
06-07-2008, 15:48
я имел в виду Internet Explorer Developer Toolbar (http://www.microsoft.com/downloads/thankyou.aspx?familyId=e59c3964-672d-4511-bb3e-2d5e1db91038&displayLang=en), но к сожалению, как только что убедился, удалить ничего не получится (не нашел заветной кнопочки)...

fantik
06-07-2008, 16:25
Tigr, Sham,

ИМХО проще всего будет открыть страничку форума в DreamWeaver или в том же простеньком Nvu (он, к тому же, и бесплатный) и просто всё удалить.

Конечно, если это в масштабах сотен страниц, то проще написать парсер.

Tigr
06-07-2008, 18:22
Если кто-либо напишет и выложет такой инструмент, думаю, благодарен буду не только я.

maik5
06-07-2008, 18:54
Уже несколько лет использую малюсенькую программку ВебЛомастер (http://sstfree.narod.ru/wlmaster.htm) (жаль, что автор больше не развивает проект) + остатки редактирую в блокноте, а далее сохраняю в Chm формат.

Coutty
06-07-2008, 19:02
Выкладываю инструмент. В некоторой степени это обточенный булыжник, но свою функцию выполняет.


<?php
function repl($str) {
$str = str_replace(":pastequote(", ':posthide(', $str);
$str = str_replace('">Цитировать', '">Удалить', $str);
$str = str_replace('</head>', "<script>function posthide(a,num){location.href='?file=$_GET[file]&delpost='+num;}</script></head>", $str);
return $str;
}
if (!$_GET['file'] && !$_GET['delpost'])
{
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && $file != "index.php")
echo "<a href='?file=$file'>$file</a><br />";
}
closedir($handle);
}
}
else if (!$_GET['delpost'] && $_GET['file'])
{
$fp = fopen($_GET['file'], "r");
$content = fread($fp, 1000000);
fclose($fp);
echo repl($content);
}

else if ($_GET['file'] && $_GET['delpost'])
{
$fp = fopen($_GET['file'], "r");
$content = fread($fp, 1000000);
fclose($fp);
$a = strpos($content, "<!-- post #".$_GET['delpost']);
$b = strpos($content, "<!-- / post #".$_GET['delpost']." -->", ($a+10));
$begin = substr($content, 0, $a);
$end = substr($content, $b);
$all = repl($begin.$end);
$fp = fopen($_GET['file'], 'w');
fwrite($fp, $all);
echo $all;
fclose($fp);
}
?>


1. Предполагается, что у вас есть веб-сервер, способный обрабатывать PHP-скрипты.
2. Создаёте в веб-каталоге папку, скажем, oszone.
3. Кидаете туда этот скрипт под именем index.php (в принципе - на ваш вкус).
4. Кидаете в папку с этим скриптом html-странички с форума (mht не обрабатывает, уж извините). CSS, JS и прочее - не надо. Они всё равно не будут задействоваться.
5. Открываете в браузере 127.0.0.1/oszone/index.php (или куда вы там сохранили).
6. Отображается список файлов из каталога.
7. Выбираете нужный файл, кликая по ссылке.
8. Открывается html-страничка. Правда без оформления. Но это пока не важно. Пусть будет такая. Вместо ссылок "Цитировать" будут ссылки "Удалить".
9. Собственно, кликая по ссылкам "Удалить", удаляете ненужные сообщения. Удаляются без запроса подтверждения. AJAX реализовывать не стал. Пока это всего лишь "рыба"-скрипт.
10. Копируете html-страничку из папки со скриптом в старое место. Все стили и скрипты на месте и работают.

Рекомендую сначала потестировать на копиях (и сами бы догадались, но я предупредил:)).
Удаление рекламы и лишнего оформления - на ваш вкус.

Да, ещё: страницы кэшируются по умолчанию. Это следует учитывать.
И веб-сервер должен иметь права записи на соответствующие html-файлы.

fantik
06-07-2008, 19:15
$fp = fopen($_GET['file'], "r");
$content = fread($fp, 1000000);
fclose($fp);Предлагаю заменить на $content = file_get_contents ($_GET['file'])Соответственно,

$fp = fopen($_GET['file'], 'w');
fwrite($fp, $all);
echo $all;
fclose($fp);наfile_put_contents ($_GET['file'], $all) ;
echo $all ;

Tigr
06-07-2008, 20:23
Предполагается, что у вас есть веб-сервер, способный обрабатывать PHP-скрипты. »
(радостно) Я знал, я знал, что редактировать html-документ можно только изучив Хатха-Йогу (http://ru.wikipedia.org/wiki/%D0%A5%D0%B0%D1%82%D1%85%D0%B0-%D0%B9%D0%BE%D0%B3%D0%B0) !!! (напевая "харе Кришна" удаляется)

sanek_freeman
06-07-2008, 20:40
Tigr, может потом как-нибудь выложешь свою подборку полезных тем. ;) Это будет один из ценнейших материалов на форуме. :)

Tigr
06-07-2008, 20:56
Это будет один из ценнейших материалов на форуме. »
Он ценен для меня. В этой подборке хаотично сохраненные странички, к-е я пытался более или менее вдумчиво распихивать по папкам. Могу в любой момент выложить это и прислать линк, но на всеобщее, думаю, срамиться не нужно.

Coutty
06-07-2008, 21:05
fantik, предложения принимаются) Я ж не профи в PHP-кодерстве:)
Tigr, действительно, а ведь потом ещё и темы читать надо, попутно кликая по ссылке "Удалить" над посторонними сообщениями. Вот бы программка сама (http://ru.wiktionary.org/wiki/губозакаточная_машинка) странички чистила!

Tigr
06-07-2008, 21:23
Coutty, там линк на изображение битый :(




© OSzone.net 2001-2012