Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как обрезать полную новость?

Как обрезать полную новость?


     21.03.2017    Общие вопросы, Общие вопросы по PHP, Хаки    297

вопрос
Здравствуйте, проявилась проблема с выводом краткой новости в dle 10.6, после перевода сайта на кодировку utf-8, теперь не корректно режется текст и в конце появляется:
.

Short-story limit не предлагайте, он используется для разметки schema.

Стоит хак который нормально работал на windows-1251, может его можно доработать?

//Красивый выод by elektroshok (creostyle) 

function get_img_basic($text){ 

preg_match('|<img(.*) src="([^"]*)"[^>]*>|is', $text, $out);  

return $out[2]; 

}; 

$charshort = 450; //Количество символов в краткой новости 

//Красивый выод by elektroshok (creostyle) 


//Красивый выод by elektroshok (creostyle) 

$search = array ("'<script[^>]*?>.*?</script>'si",  

"'<[\/\!]*?[^<>]*?>'si",  

"'([\r\n])[\s]+'",  

"'&(quot|#34);'i",  

"'&(amp|#38);'i", 

"'&(lt|#60);'i", 

"'&(gt|#62);'i", 

"'&(nbsp|#160);'i", 

"'&(iexcl|#161);'i", 

"'&(cent|#162);'i", 

"'&(pound|#163);'i", 

"'&(copy|#169);'i", 

"'&#(\d+);'e");  

$replace = array ("", 

"", 

"\\1", 

"\"", 

"&", 

"<", 

">", 

" ", 

chr(161), 

chr(162), 

chr(163), 

chr(169), 

"chr(\\1)"); 

$img = get_img_basic($row['short_story']); 

$img_t= str_replace('thumbs/','',$img); 

$images_show = "<!--ThumbBegin--><a href=\"$img_t\" onClick='return hs.expand(this)'>"; 

$images_show_a = "</a><!--ThumbEnd-->"; 

$images = $images_show."<img src=\"$img\" border=\"0\" alt=\"$title\">".$images_show_a; 

$row['short_story'] = preg_replace( $search,$replace, $row['short_story'] ); 

$row['short_story'] = substr (stripslashes($row['short_story']), 0, $charshort); 

//Красивый выод by elektroshok (creostyle)


Ответа пока нет


6 комментариев

D1mQ4
Юзер

D1mQ4 - 21 марта 2017 16:02 -

Я тут залетный но не пробовал хак который нормально работал на windows-1251 переоткрыть в кодировке виндовс и сохранить в ютф?

Evurg
Юзер

Evurg - 21 марта 2017 16:17 -

Так все файлы сайта были перекодированы в том числе и хак который расположен в show.short

Gott
Юзер

Evurg
Юзер

Evurg - 21 марта 2017 16:54 -

{short-story limit='194'} уже задействован в description микроразметки, я это указал в начале поста, нужно именно обрезать {short-story}, печально что одновременно два с разными значениями не работают {short-story limit='x'}

vitnet
Эксперт

vitnet - 21 марта 2017 17:52 -

$row['short_story'] = substr (stripslashes($row['short_story']), 0, $charshort);

Замените на
$row['short_story'] = dle_substr( stripslashes($row['short_story']), 0, $charshort, $config['charset'] );

Evurg
Юзер

Evurg - 21 марта 2017 19:32 -

при переходе по страница выскакивает ошибка которую не успеваю прочитать

сделал так:
 $row['short_story'] = @preg_replace( $search,$replace, $row['short_story'] );
$row['short_story'] = @mb_substr(@stripslashes($row['short_story']), 0, $charshort, 'UTF-8');


работает вроде норм.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 06.03.2014 vip.boss  Общие вопросы
наверх