- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Столкнулись с проблемой. Ниже представлено регулярное выражение, суть его в том, что оно отмеряет заданное кол-во символов (переменная $len_one=1400) и ровно после 1400 символа вставляет фрагмент рекламы. Но у данного метода есть 2 недостатка.
Первый: он разрывает слова. Идея была в том, чтоб он отмерял до 1400 символа + до первой точки
Второй: из-за первого недостатка, он также нарушает целостность html-кода, в частности становятся битыми картинки.
preg_replace('@([^^]{'.$len_one.'}.*?)(\r?\n\r?\n|)@', "\\1".$rek6."\\2", trim($content), 1);
Подскажите, как исправить эту ошибку
Как вариант:
Скачать таблицу с контентом, открыть в notepad++
Использовать замену
(.{1400}.*?[\.|!|\?])На
UPD:
Регулярку нужно будет немного подправить под Вашу таблицу. Если что, обращайтесь в ЛС.
а что, если сделать так?
1. Найти в тексте точку после 1400 символа, запомнить её позицию, взять 2 подстроки (до и после точки) вставить внутрь рекламу.
примерная реализация(не тестировал) :
$offset = 1400;
$dot = strpos($text, '.', $offset);
$reklama = "blablabla";
$result_str = substr($text,0,$dot).$reklama.substr($text,$dot);
Сохранить таким образом целостность хмтл тегов довольно сложно. Лучше использовать для этого специальные макросы, которые вручную расставляются в тексте, или подумать как можно при помощью стилей вбить этот блок по середине.
1. Найти в тексте точку после 1400 символа, запомнить её позицию, взять 2
Это не спасет, если в этом месте окажется какой-нибудь тег, например a или img.
Но в идее что-то есть.
резать надо по точке, которая идет ПОСЛЕ 1400 символа.
тогда после предложения будет.
красиво и лаконично.
это можно доработать
Найти точку после 1400 символа.
Найти открывающий < и закрывающий > символы тэга, и если закрывающий раньше - вставлять после него (точка ведь может быть в title=".ююю.Эю" :)
Это не спасет, если в этом месте окажется какой-нибудь тег
p.s. Но и это не спасает в некоторых случаях, например, если одиночные символы >< не преобразованы в сущности и тд
Я бы вставлял после окончания абзаца, т.е. сначала сразу отматываем 1000 символов, потом ищем </p> и после него вставлям рекламный блок. Если тексты оформлены нормальным html, то практически всегда должно выглядеть прилично.
Ну а еще лучше свой псевдотег вставлять в текст статьи, который будет заменяться на рекламу, тогда наиболее аккуратно и управляемо будет.
К сожалению эти решения, которые я и сам понимаю, но всё равно спасибо за ответы. Нам нужна готовая реализация или доработка того кода.