Как обрезать строку с html первые 1000 символов

280
10 декабря 2016, 10:37

Как в PHP обрезать строку, оставив только первые 1000 символов? При этом строка содержит HTML теги и нужно обрезать строку без учёта тегов.(т.е. просто substr, не подходит) Т.е. 1000 символов должно остаться текста, а сколько символов будет занимать HTML не важно...

Answer 1

Есть несколько способов

  1. Пересмотреть задачу, выкасить весь html и обрезать

    $test = strip_tags($test); $test = substr($test,0,1000);

  2. Ввести тэг описания допустим <cat> или bb-код и обрезать по нему [cat].

  3. Обрезать не по символам а по количеству слов к примеру с тем условием что бы тэг обязательно закрывался после.

вам подойдёт только способ под номером 1,2-в, если обрезать автоматом то с вероятностью в 98% вы обрежите закрывающие теги, и будете фиксить баги пожизненно.

Answer 2
$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;
}

Не тестировал, но идея должна быть понятна

READ ALSO
Трудности программирования ботов

Трудности программирования ботов

Есть сайт, у сайта есть блок с id регионов, городов и тп, но этот блок скрыт пока на него не нажмешь мышкой

248
Загрузка изображения через type=file

Загрузка изображения через type=file

При загрузке изображения в БД через поле file вместо обычного пути выводится C:fakepathmailpng

225
блок изменяющийся на textarea при нажатии

блок изменяющийся на textarea при нажатии

Есть тег или атрибут для div но не могу его найтиПри нажатии на div он изменялся на textarea и в нем можно было изменять содержымое блока

268