X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Удаление ссылок из текста, php
Crasher69
Crasher69
Topic Starter сообщение 12.8.2009, 22:44; Ответить: Crasher69
Сообщение #1


Есть текст находится в 1 переменной, нужно из него удалить все ссылкИ, оставив лишь анкоры. Подскажите как правильно составить регулярное выражение для этого, а то я в них не шарю.


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
K_Yu_Pro
K_Yu_Pro
сообщение 12.8.2009, 22:56; Ответить: K_Yu_Pro
Сообщение #2


а текст постоянно разный? имею в виду можно обойтись удалением определенных символов из переменной (например удалить символы с 1 по 3 и с 34 по 38) ?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Crasher69
Crasher69
Topic Starter сообщение 12.8.2009, 23:04; Ответить: Crasher69
Сообщение #3


Всегда разный.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kronos
kronos
сообщение 12.8.2009, 23:28; Ответить: kronos
Сообщение #4


$text=preg_replace("#(https?|ftp)://\S+[^\s.,>)\];'\"!?]#",'<a href="\\0">\\0</a>',$text);

Это выражение преображает текст httр://site.ru/ в ссылку http://site.ru/ , может у вас получиться его перевернуть...


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
K_Yu_Pro
K_Yu_Pro
сообщение 13.8.2009, 0:13; Ответить: K_Yu_Pro
Сообщение #5


На самом деле стало интересно, как это сделать стандартными методами, так что сейчас займусь написанием скрипта для вас (хотя что-то мне подсказывает, что основная область применения будет с акцентом на грабинг)

И так, ТС, оценивай скрипт, все основано на стандартных функциях:

<?php
$tekst = "<a href='сиськи'>Мы любим сиськи</a> ну и просто <a href='ссылка' class='css'>о</a> сиськах <a href='еще'>для</a> примера";
echo "Исходный текст: ",$tekst, "<br><br>";

$link = "<a";
$linkov = substr_count($tekst, $link) * 2;

do
{
$linkov = $linkov - 1;
$link_start =  strpos ($tekst, "<");
$link_finish = strpos ($tekst, ">");
$udalyaem_simvoli = $link_finish - $link_start +1;
$tekst = substr_replace($tekst, "", $link_start, $udalyaem_simvoli);
}
while ($linkov > 0);

echo "Текст, после редактирования: ",$tekst;


?>


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

Сообщение отредактировал K_Yu_Pro - 13.8.2009, 0:49


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Crasher69
Crasher69
Topic Starter сообщение 13.8.2009, 11:20; Ответить: Crasher69
Сообщение #6


Спасибо огромное. K_Yu_Pro, твой код заставил меня немного призадуматься, с твоим примером, где все так просто, работает норм, вот код который получился. Но с моим всетаки пока неочень, там много нюансов. Ну всеравно спасибо, буду дальше дорабатывать)
<?
$tekst = "<b><a href=\"сиськи\">Мы любим сиськи</a></b> ну и просто <a href=\"ссылка\" class=\"css\">о</a> сиськах <a href=\"еще\">для</a> примера";

echo "Текст, до редактирования: ",$tekst;

$link = "<a";
$linkov = substr_count($tekst, $link) * 2;

do
{

$linkov = $linkov - 1;
$link_start =  strpos ($tekst, "<a");
$link_finish = strpos ($tekst, "\">");
    if ($link_start==0)
    break;

$udalyaem_simvoli = $link_finish - $link_start +2;
$tekst = substr_replace($tekst, "", $link_start, $udalyaem_simvoli);

}
while ($linkov > 0||$link_start>0);

// Теперь удалим оставшиеся теги </a>
$link = "</a>";
$out= str_replace($link,"",$tekst);
echo "<br> Текст после редактирования: ".$out;

    ?>


Обновление, если кому пригдится, довел до ума, погуглил насчет функции strpos, теперь ниче не лагает, все нужные теги остаются на месте:
Изначально текст в переменной $content

$link = "</a>";
$out= str_replace($link,"",$content); //Вырезали закрывающие теги
//Теперь текст в $out

$link = "<a";
$linkov = substr_count($out, $link) * 2;
do
{
$linkov = $linkov - 1;
$link_start =  strpos ($out, "<a");
$link_finish = strpos ($out, ">",$link_start);
if ($link_start==0)
    break;
$udalyaem_simvoli = $link_finish - $link_start +1;
$out = substr_replace($out, "", $link_start, $udalyaem_simvoli);

}
while ($linkov > 0);
echo $out;


Вся фигня в том, что было - искало первое вхождение > в тексте, теперь этот закрывающий тег ищется после <a - так правильнее wink.gif

Сообщение отредактировал Crasher69 - 13.8.2009, 11:27


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
xpert13
xpert13
сообщение 13.8.2009, 23:39; Ответить: xpert13
Сообщение #7


Боже мой! А не проще выучить регулярки и решить задачу в одну строку?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gamerati
gamerati
сообщение 14.8.2009, 1:21; Ответить: gamerati
Сообщение #8


$text = preg_replace('/<[\/]?a[^>]*>/i', '', $text);
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Crasher69
Crasher69
Topic Starter сообщение 14.8.2009, 9:49; Ответить: Crasher69
Сообщение #9


хехехе. Мы не ищем легких путей)
"Нормальные герои всегда идут в обход" )))

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Сайт не индексируется в Google без добавления ссылок в адурилку
4 Nekit 994 20.3.2024, 21:44
автор: MorKer
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыБыстрая индексация страниц сайта и обратных ссылок - 2Index
32 2Index 5845 18.3.2024, 16:33
автор: 2Index
Горячая тема (нет новых ответов) Оптимизация сайтов, продвижение, наращивание ссылок
Большой опыт работы, отзывы
304 tario777 203077 13.3.2024, 14:01
автор: tario777
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыРучное размещение вечных ссылок и статей на хороших площадках
Опыт 10 лет!
419 leonidukg 273850 12.3.2024, 15:17
автор: leonidukg
Открытая тема (нет новых ответов) Backlinks.su - генератор обратных ссылок
Он позволяет разместить 1500+ внешних ссылок на ваш сайт бесплатно!
0 MihaylovRA 1206 3.3.2024, 18:08
автор: MihaylovRA


 



RSS Текстовая версия Сейчас: 29.3.2024, 16:49
Дизайн