Guest User

Untitled

a guest
Jan 17th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. <span style="color:#cc0000" id="id">Текст</span>
  2.  
  3. function cutTags( $str, $tags = [] ){
  4. $not_cut_tags = '';
  5.  
  6. // Собираем массив тегов, которые вырехать не нужно
  7. foreach ($tags as $tag_name => $tag_attrs) {
  8. $not_cut_tags .= "<$tag_name>";
  9. }
  10.  
  11. // Вырезаем теги, но осталяем те которые не нужно резать
  12. $str = strip_tags($str, $not_cut_tags);
  13.  
  14. // Здесь мы убираем ненужные аттрибуты в оставшиййся строке
  15. foreach ($tags as $tag => $attrs) {
  16.  
  17. if( is_array($attrs) ){
  18. // Если есть аттрибуты - делаем regex строку
  19. foreach ($attrs as $attribute) {
  20. $search_attrs .= "s" . "$attribute="([^"]+)"|s";
  21. }
  22.  
  23. preg_match_all( '/'.$search_attrs.'/', $str, $m);
  24. $m = implode(' ', $m[0]);
  25.  
  26. $r_from = "<{$tag}[^>]+>";
  27. $r_to = "<$tag $m>";
  28. }else{
  29. // Аттрибутов нет - просто заменяем тэг <tag ....> на <tag>
  30. $r_from = "<{$tag}[^>]+>";
  31. $r_to = "<$tag>";
  32. }
  33. $str = preg_replace("/".$r_from."/i", $r_to, $str);
  34. }
  35.  
  36. return $str;
  37. }
  38.  
  39. $str = '<p><span style="color:#2980b9"><a href="">Ссылка в спане</a></span></p>';
  40.  
  41. $tags = [
  42. 'span' => ['style'],
  43. 'a' => ['href'],
  44. ];
  45.  
  46. //Конфигурация
  47.  
  48. // Устанавливаем разрешённые теги. (Все не разрешенные теги считаются запрещенными.)
  49. $jevix->cfgAllowTags(array('a', 'img', 'strong', 'ul', 'li', 'h1', 'h2'));
  50.  
  51. // Устанавливаем разрешённые параметры тегов.
  52. $jevix->cfgAllowTagParams('a', array('title', 'href'));
  53.  
  54. // Устанавливаем параметры тегов являющиеся обязяательными. Без них вырезает тег оставляя содержимое.
  55. $jevix->cfgSetTagParamsRequired('a', 'href');
  56.  
  57. // Устанавливаем теги которые может содержать тег контейнер
  58. $jevix->cfgSetTagChilds('ul', 'li', true, false);
  59.  
  60. // Устанавливаем атрибуты тегов, которые будут добавлятся автоматически
  61. $jevix->cfgSetTagParamsAutoAdd('a', array('rel' => 'nofollow'));
  62.  
  63. //Парсинг
  64. $res = $jevix->parse('...тут...мог...бы...быть...ваш...текст...');
  65. ?>
Add Comment
Please, Sign In to add comment