Удалить ссылки из HTML документов на PHP

Форум для тех кто начинает осваивать язык php.
Аватара пользователя
vihtor
Сообщения: 112
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Удалить ссылки из HTML документов на PHP

Сообщение vihtor » Вт сен 06, 2016 8:35 pm

Здравствуйте.
Появилась проблема с массовым удалением всех ссылок (абсолютных и относительных) из текстов html-документов. Анкоры, естественно, необходимо оставить.
Файлы в одной папке. Кодировку сделаю любую. Расширение файлов сделаю любое.

Имеется так:

Код: Выделить всё

<a href="http://mysite.ru/avto/56.html">Автомобиль</a>  
<
a href="avto-lada.html">Автомобиль Лада</a

Нужно сделать так:

Код: Выделить всё

Автомобиль
Автомобиль Лада

Есть нерабочая конструкция, что здесь не так:

Код: Выделить всё

<?PHP
$s
=preg_replace('|<a[^>]+>([^<]+)</a>|ism','$1',$s);
?>
Последний раз редактировалось Slash Вт сен 06, 2016 8:38 pm, всего редактировалось 1 раз.
Причина: BBcode
Реклама
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Удалить ссылки из HTML документов на PHP

Сообщение Slash » Вт сен 06, 2016 8:58 pm

vihtor, научитесь пользоваться BBcode.
vihtor писал(а):что здесь не так

Проверил, регулярное выражение, работает нормально, от ссылок остаются только анкоры.

Код: Выделить всё

$link '<a href="http://mysite.ru/avto/56.html">Автомобиль</a> <a href="avto-lada.html">Автомобиль Лада</a>';

echo 
preg_replace('|<a[^>]+>([^<]+)</a>|ism''$1'$link); 
Аватара пользователя
vihtor
Сообщения: 112
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Удалить ссылки из HTML документов на PHP

Сообщение vihtor » Вт сен 06, 2016 9:36 pm

У меня ничего не получается. Прошу, пожалуйста, по шагам.
Значит, берём без изменений тот код, что я в первом посте называю "нерабочая конструкция", сохраняем в файл .php
Заливает этот файл в паку с файлами. Файлы должны быть с расширением php и кодировкой utf-8 Запускаем в браузере файл .php
Всё верно?

Отправлено спустя 45 минут 28 секунд:
А, ну его всё нафиг. Я удалил Text Replacer-ом все </a>, а затем им же ссылки пошматовал. На страницах их не видно. Ну а в коде Бог с ними.
Было так:

Код: Выделить всё

<a href="http://mysite.ru/avto/56.html">Автомобиль</a>

Стало так:

Код: Выделить всё

<avto/56>Автомобиль

Пойдёт.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Удалить ссылки из HTML документов на PHP

Сообщение Slash » Ср сен 07, 2016 8:06 am

А если так:

Код: Выделить всё

$s preg_replace('#<a\b[^>]*+>|</a\b[^>]*+>#'''$s); 

Что то изменилось?
Аватара пользователя
vihtor
Сообщения: 112
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Удалить ссылки из HTML документов на PHP

Сообщение vihtor » Ср сен 07, 2016 5:52 pm

Код: Выделить всё

$s = preg_replace('#<a\b[^>]*+>|</a\b[^>]*+>#', '', $s);

Я не понимаю, что мне делать с этой строкой? Сохранить в файле php как есть? В коде ничего больше не должно быть?
Как ЭТО будет называться? Скрипт php? Парсер php?
Куда ЭТО нужно заливать? В папку с файлами?
С какими расширениями должны быть файлы? В какой кодировке?
В предыдущих темах вы всё конкретно объясняли, а здесь сплошной туман, простите.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Удалить ссылки из HTML документов на PHP

Сообщение Slash » Ср сен 07, 2016 9:06 pm

vihtor писал(а):Я не понимаю, что мне делать с этой строкой?

Вставить в свой код, где вы получили исходник документа в строку (в переменную).
Это строка выполняет поиск тега ссылки и заменяет его на пустоту, другими словами удаляет ссылки из строки, оставляя их анкоры.
vihtor писал(а):Сохранить в файле php как есть? В коде ничего больше не должно быть?

В коде должно быть присваивание значения переменной $s, как то же вы пришли к этому регулярному выражению (первый пост). И должно выполняться изменение содержимого документа, после этой замены.
vihtor писал(а):Как ЭТО будет называться? Скрипт php? Парсер php?

Как назовете, так и будет называться, например: name_file.php.
vihtor писал(а):С какими расширениями должны быть файлы?

В перво посте этой темы, вы написали код на php, значит и расширение файла должно быть php.
vihtor писал(а):В какой кодировке?

В которой вам удобно работать, в той делайте. Я всегда использую UTF-8.
vihtor писал(а):В предыдущих темах вы всё конкретно объясняли, а здесь сплошной туман

Вы пишите, что у вас есть не рабочий код, я его проверил, он работает отлично, я сказал, что он рабочий. Что тут туман? Можно взять код из предыдущих тем, кое что заменить на строчку кода из этой темы, и будет вам готовый сценарий по поиску и замене ссылок во всех ваших документах.
Аватара пользователя
vihtor
Сообщения: 112
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Удалить ссылки из HTML документов на PHP

Сообщение vihtor » Чт сен 08, 2016 9:56 am

У вас работает скрипт, а здесь вы выкладываете одну строку, кусок кода скрипта. Почему вы упорно не хотите выложить код всего скрипта.
Чтобы изменить код уже существующих вариантов скриптов, нужно быть программистом. Ну да, а почему бы мне не выучить программирование...
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Удалить ссылки из HTML документов на PHP

Сообщение Slash » Чт сен 08, 2016 10:38 am

vihtor писал(а):У вас работает скрипт, а здесь вы выкладываете одну строку, кусок кода скрипта.

О каком скрипте вы говорите? У меня нет ни какого скрипта. Ваши телепатические способности, опять вас подвели.
Я проверил только код, который дали вы сами, и показал, как это сделал во втором посте: Re: Удалить ссылки из HTML документов на PHP (Пост Slash #7429).
vihtor писал(а):Почему вы упорно не хотите выложить код всего скрипта.

Какого скрипта?
vihtor писал(а):Ну да, а почему бы мне не выучить программирование...

Ну, да. Хороший вопрос.
Аватара пользователя
PCB
Сообщения: 28
Благодарил (а): 5 раз
Поблагодарили: 8 раз

Re: Удалить ссылки из HTML документов на PHP

Сообщение PCB » Чт сен 08, 2016 12:37 pm

vihtor писал(а):Значит, берём без изменений тот код, что я в первом посте называю "нерабочая конструкция", сохраняем в файл .php

Дело в том, что код действительно рабочий, вы делаете не правильно. Кроме регулярки, ещё надо прочитать файл, а как вы это делаете? От куда у вас переменная $s берется?
Где вы вообще взяли регулярку для удаления ссылок? Я сомневаюсь, что вы сами её написали.
vihtor писал(а):Пойдёт.

Если вас устраивает, зачем паникуете?
vihtor писал(а):В предыдущих темах вы всё конкретно объясняли, а здесь сплошной туман, простите.

К хорошему быстро привыкаешь! ;)
vihtor писал(а):Ну да, а почему бы мне не выучить программирование...

А зачем? Когда можно придти сюда и за тебя сделают всю работу! :lol:

Я бы вам посоветовал установить готовый движок блога и размещать туда свои статьи. Вы сможете с легкость сделать, то что вам надо, не выдумывая каждый раз новые костыли.
Аватара пользователя
vihtor
Сообщения: 112
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Удалить ссылки из HTML документов на PHP

Сообщение vihtor » Чт сен 08, 2016 1:20 pm

PCB писал(а):1. Дело в том, что код действительно рабочий, вы делаете не правильно. Кроме регулярки, ещё надо прочитать файл, а как вы это делаете? От куда у вас переменная $s берется?
Где вы вообще взяли регулярку для удаления ссылок? Я сомневаюсь, что вы сами её написали.

2. А зачем? Когда можно придти сюда и за тебя сделают всю работу!

3. Я бы вам посоветовал установить готовый движок блога и размещать туда свои статьи. Вы сможете с легкость сделать, то что вам надо, не выдумывая каждый раз новые костыли.

1. Не знаю откуда у меня переменная $s берется. Как это определить?
Регулярку взял из Интернета.

2. Ну вы же в этой теме писали: "Мы всё видим" Как восстановить сайт из веб-архива?
Я уже объяснял на другом форуме, что вы занимаетесь программированием, а я другими делами. Я не могу всё выучить, чем можно заниматься на компьютере.
Вопрос в принципе неуместен. Может я, кроме как сидения за компьютером, ещё свиней пасу или хлеб убираю...

3. Дык, я же пока свой сайт восстанавливаю. Уже после отключения сайта, у меня была ссылка на скачивание архива (и чего было не скачать архив, когда сайт функционировал...). Так вот, я скачал архив, а там только половина страниц. Значит, нужно всё переделать - в частности удалить ссылки (что здесь по теме). Недостающую часть сайта надеюсь вытащить из веб архива.
Насчёт движка сайта, я ярый противник. Предпочитаю только статику.
Аватара пользователя
PCB
Сообщения: 28
Благодарил (а): 5 раз
Поблагодарили: 8 раз

Re: Удалить ссылки из HTML документов на PHP

Сообщение PCB » Чт сен 08, 2016 2:16 pm

vihtor писал(а):Я уже объяснял на другом форуме

Парень, ты считаешь, что мы должны бегать по форумам и отслеживать, где и что ты объяснял?
Что же тебе на том, форуме, где ты объясняешь, не сделали работу?
vihtor писал(а):Может я, кроме как сидения за компьютером, ещё свиней пасу или хлеб убираю...

Хочешь сказать, что ты один работаешь, а мы тут только за компом сидим. И только по этому должны решать твои проблемы?
Админ прав, с таким подходом тебе к фрилансеру, но имей введу, что они тоже требуют к себе уважение.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Удалить ссылки из HTML документов на PHP

Сообщение Slash » Чт сен 08, 2016 2:42 pm

Тема превратилась в мусор.
vihtor писал(а):Значит, нужно всё переделать - в частности удалить ссылки (что здесь по теме).

Я вам уже говорил, как сделать, можно взять код из любой вашей темы, например, тут: Re: Пакетная вставка тегов на PHP (Пост Slash #7373), заменить строки:

Код: Выделить всё

        $html str_replace('windows-1251''utf-8'$html);

        preg_match('|<body>(.*?)<p>|isu', $html, $line);
        $html = preg_replace('|<body>(.*?)<p>|isu', "<body>\n<h1>" . $line[1] . "</h1>\n<p>", $html);

На:

Код: Выделить всё

        $html = preg_replace('#<a\b[^>]*+>|</a\b[^>]*+>#', '', $html);

И пробуйте.
Аватара пользователя
vihtor
Сообщения: 112
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Удалить ссылки из HTML документов на PHP

Сообщение vihtor » Чт сен 08, 2016 4:50 pm

О! Вот это уже конкретно. В последнем посте всё ясно. Я вижу как переделать скрипт. А то я гоняю одну строку - кусок кода, ничего не получается.
Как дойду до восстанавливаемой папки, где нужно удалять ссылки, буду использовать скрипт.
Большое спасибо.
Аватара пользователя
vihtor
Сообщения: 112
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Удалить ссылки из HTML документов на PHP

Сообщение vihtor » Пт сен 09, 2016 1:08 pm

Да, скрипт получился отличный. Работает на Ура!
Использую для восстановления сайта все скрипты полученные на этом форуме. Вот уж действительно огромное спасибо.
Уважаемый господин Администратор, не хотите ли на этом форуме открыть раздел с конкретными уроками по php? Я буду первым читателем.
А то весь Интернет забит "уроками" для начинающих программистов на php, именно для того, чтобы ты не стал оным.
Аватара пользователя
pessimist
Сообщения: 47
Благодарил (а): 55 раз
Поблагодарили: 6 раз

Re: Удалить ссылки из HTML документов на PHP

Сообщение pessimist » Пт сен 09, 2016 1:18 pm

vihtor писал(а):Уважаемый господин Администратор, не хотите ли на этом форуме открыть раздел с конкретными уроками по php? Я буду первым читателем.

Тут даже несколько таких тем. Заходите на огонек: Моя первая страница на PHP (С чего начать?)

Ну и обязательно читайте каждый день тему: Введение в PHP

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

И потом, форум - это не книга. У книги нельзя спросить непонятные моменты, а у форума - можно.

Желаю успехов!!!

Вернуться в «PHP»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя