Помощник
|
Удаление ссылок из текста, php |
Crasher69
|
Сообщение
#1
|
||
|
|
||
|
|||
K_Yu_Pro |
12.8.2009, 22:56;
Ответить: K_Yu_Pro
Сообщение
#2
|
|
а текст постоянно разный? имею в виду можно обойтись удалением определенных символов из переменной (например удалить символы с 1 по 3 и с 34 по 38) ?
|
|
|
Crasher69
|
Сообщение
#3
|
|
Всегда разный.
-------------------- |
|
|
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 |
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 |
|
|
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 - так правильнее Сообщение отредактировал Crasher69 - 13.8.2009, 11:27 -------------------- |
|
|
xpert13 |
13.8.2009, 23:39;
Ответить: xpert13
Сообщение
#7
|
|
Боже мой! А не проще выучить регулярки и решить задачу в одну строку?
|
|
|
gamerati |
14.8.2009, 1:21;
Ответить: gamerati
Сообщение
#8
|
|
$text = preg_replace('/<[\/]?a[^>]*>/i', '', $text);
|
|
|
Crasher69
|
Сообщение
#9
|
|
|
хехехе. Мы не ищем легких путей)
"Нормальные герои всегда идут в обход" )))
-------------------- |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Сайт не индексируется в 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 |
Текстовая версия | Сейчас: 29.3.2024, 16:49 |