нужна помощь с кодом

ЕСТЬ РЕШЕНИЕ InstantCMS 2.X
#1 13 ноября 2023 в 19:06

Скрываю раскрываю текст с помощью:

  1. <?
  2. $str = $item['content'];
  3. $str = strip_tags($str);
  4.  
  5.  
  6. if (strlen($str) > 250) {
  7.  
  8. $textPrev = substr($str, 0, 250);
  9. $textPrev = rtrim($textPrev, "!,.-");
  10. $textPrev = substr($textPrev, 0, strrpos($textPrev, ' '));
  11. $textNext = substr($str, strlen($textPrev));
  12. ?>
  13. <div class="info_profile">
  14. <div class="review-text">
  15. <span class="text-prev"><?=$textPrev?></span> <span class="text-next"><?=$textNext?></span>
  16. <b class="text-more" onclick="show_more(this);">Показать&nbsp;ещё</b>
  17. </div>
  18. </div>
  19.  
  20. <?
  21. } else {
  22. ?>
  23.  
  24. <div class="review-text"><?=$str?></div>
  25.  
  26. <?
  27. }
  28. ?>

$str — съедает все HTML теги и текст становится сплошным. В интернетепишут что можно прописать исключения типа strip_tags($string, "<p><br>")

Но я не понял куда и как правильно вставлять в данном куске кода его. Кто поможет разобраться в данном вопросе. 

#2 13 ноября 2023 в 19:30

Вот дока по этой функции www.php.net/strip_tags

strip_tags($text, '<p><a>');

Если php >7.4 то можно и так

strip_tags($text, ['p', 'a']);

 
#3 13 ноября 2023 в 19:48

Вот дока по этой функции www.php.net/strip_tags

strip_tags($text, '<p><a>');

Если php >7.4 то можно и так

strip_tags($text, ['p', 'a']);

 
Loadырь

Спасибо, я это тоже нашел, я не могу пременить правильно в рамках данного кода 

#4 13 ноября 2023 в 19:59

Ваша третья строка будет такой

$str = strip_tags($str, '<p><br>');

#5 13 ноября 2023 в 20:16

Ваша третья строка будет такой

$str = strip_tags($str, '<p><br>');

Loadырь

К сожалению — нет

Ваша третья строка будет такой

$str = strip_tags($str, '<p><br>');

Loadырь

К сожалению — нет

Happy

а может и да, я контент отдельно выводил а там почему то вместо тегов пробела в консоли такие & nbsp; по этому и не отрабатывает

#6 13 ноября 2023 в 20:19

текст становится сплошным

Happy

это означает, что нет переносов, нет пробелов в словах? Какие теги используются для переноса строк в исходном теге? Нужно описывать проблему подробно.

К сожалению — нет

Happy

а так?

  1. $str = strip_tags(nl2br($str), '<p><br>');
#7 13 ноября 2023 в 20:26
  1. $str = strip_tags(nl2br($str), '<p><br>');
Нил™

Вот это четко подошло, спасибо большое

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.