- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Может кто-то подсказать как можно
preg_replace("#слово#", "<u>слово</u>", $text);
заставить не заменять "слово", если оно находиться в ссылке (в качестве куска url'a или в title) или в картинке (опять таки в ссылке или же в alt'е) ?
Или тут каким-то более-менее простым условием не обойтись и нужно заменять сначала ссылки\картинки на какую-то муть (попутно занося в массив, где что лежало), делать замену нужного слова, после чего восстанавливать на прежних местах ранее вырезанное? :(
Не совсем понял =)
Но обычно, когда одним регекспом разобраться не получается (или лениво) - функция preg_replace_callback() помогает отцу русской демократии =)
спасибо :) завтра буду пробовать анализировать в отдельной ф-и близкие от елочки (см. ниже) слова (насколько я понял именно к такому алгоритму подталкивает этот колбек, или я не так понял?)
попробую обьяснить на примере
$text = "<p>В лесу родилась elochka, в лесу она росла <img src=\"/elochka.jpg\" alt=\"elochka\"> <br> зимой и летом стройная, веселая <a href="http://site.ru/elochka/index.html">elochka</a> была</p> <p>(Такая вот рагульная песенка про elochka). Как Вам наша elochka?</p>";
нада получить
$text = "<p>В лесу родилась <u>elochka</u>, в лесу она росла <img src=\"/elochka.jpg\" alt=\"elochka\"> <br> зимой и летом стройная, веселая <a href="http://site.ru/elochka/index.html"><u>elochka</u></a> была</p> <p>(Такая вот рагульная песенка про <u>elochka</u>). Как Вам наша <u>elochka</u>?</p>";
не нада получить (то, что получается при использовании одного прега с простейшим условием)
$text = "<p>В лесу родилась <u>elochka</u>, в лесу она росла <img src=\"/<u>elochka</u>.jpg\" alt=\"<u>elochka</u>\"> <br> зимой и летом стройная, веселая <a href="http://site.ru/<u>elochka</u>/index.html"><u>elochka</u></a> была</p> <p>(Такая вот рагульная песенка про <u>elochka</u>). Как Вам наша <u>elochka</u>?</p>";
А если пробел перед elochka? (Сам не пробовал, да и не програмист я)
не , к сожалению такой вариант не проходит, ибо в тексте может быть и <img src="ссылка" alt="супер elochka однозначно"> :(
Mitos, я бы сделал так. Коряво, но быстро =)
Т.е. в функцию передается массив из 2х строк -
1) тег+то что за ним (все вхождение)
2) только то что за ним (первая подмаска)
Дальше логика такая:
1) Делаем замену во второй строке (т.е. в тексте без тега), сохраняем в $repl;
2) Поскольку вторая строка точно входит в первую, находим ее внутри первой и заменяем на $repl, не забыв проверить, что вхождение находится в конце (иначе в последовательности <a href="http://site.ru/elochka/index.html">elochcka произошла бы замена и внутри атрибута)
3) Возвращаем результат, коим заменяется полное вхождение
Ну, и хитрость с "<drop>" - добавляем его, чтоб строка гарантированно начиналась с тега (чтоб обработалась часть строки до первого тега), потом, соответственно, удаляем.
Вообще, подозреваю, что можно сделать и в один регексп, но это надо думать +)
Коля Дубр, спасибо :) Все работает замечательно