Как в PHP обрезать строку, оставив только первые 1000 символов? При этом строка содержит HTML теги и нужно обрезать строку без учёта тегов.(т.е. просто substr, не подходит) Т.е. 1000 символов должно остаться текста, а сколько символов будет занимать HTML не важно...
Есть несколько способов
Пересмотреть задачу, выкасить весь html и обрезать
$test = strip_tags($test); $test = substr($test,0,1000);
Ввести тэг описания допустим <cat>
или bb-код и обрезать по нему [cat]
.
вам подойдёт только способ под номером 1,2-в, если обрезать автоматом то с вероятностью в 98% вы обрежите закрывающие теги, и будете фиксить баги пожизненно.
$str = $source_string;
$tmp = substr(strip_tags ($str),0,1000);
$target = '';
$k=0;
for($i=0;$i<strlen($str);$i++){
$target .= $str[$i];
if($str[$i] == $tmp[$k]) $k++;
if($k == 1000) break;
}
Не тестировал, но идея должна быть понятна
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть сайт, у сайта есть блок с id регионов, городов и тп, но этот блок скрыт пока на него не нажмешь мышкой
При загрузке изображения в БД через поле file вместо обычного пути выводится C:fakepathmailpng
Есть тег или атрибут для div но не могу его найтиПри нажатии на div он изменялся на textarea и в нем можно было изменять содержымое блока