Как в 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;
}
Не тестировал, но идея должна быть понятна
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости