Обрезание строки url по заданному кол-ву символов

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

InstantCMS 1.10.6

#1 10 февраля 2015 в 00:13
Сейчас формируется урл из всего заголовка целиком. А как задать, чтобы урл брал только первые 40 символов?

на 1.10.5 на это работал код в файле cms.php
  1.  
  2. if (!$string){ $string = 'untitled'; }
  3. if (is_numeric($string)){ $string .= 'untitled'; }
  4.  
  5. return mb_substr($string, 0, 40);
на 1.10.6 все уже сложнее :)

  1. /**
  2.  * Обрезает строку по заданному кол-ву символов
  3.  * @return str
  4.  */
  5. function crop($string, $length = 250, $etc = ''){
  6.  
  7. if ($length == 0) { return ''; }
  8.  
  9. $string = str_replace("\n", ' ', strip_tags($string));
  10.  
  11. if (mb_strlen($string) > $length){
  12.  
  13. $length -= min($length, mb_strlen($etc));
  14. $string = preg_replace('/\s+?(\S+)?$/u', '', mb_substr($string, 0, $length+1));
  15.  
  16. return mb_substr($string, 0, $length) . $etc;
  17.  
  18. } else {
  19. return $string;
  20. }
Если поменять там 250 на 40, то эффекта не будет. Также формируется урл из всего заголовка. Как нужно поменять, чтобы урл формировался только из 40 символов из заголовка?
#2 10 февраля 2015 в 09:01

Если поменять там 250 на 40, то эффекта не будет.

Антон Самарин
Да, эффекта не будет. Так как это — значение по умолчанию. Вам надо выводить ваш урл, как-то так, $url = crop($url, 40);
#3 10 февраля 2015 в 09:14
Настройки версии 1.10.6

#4 10 февраля 2015 в 09:44
Pasha, Волшебно! Спасибо! smile
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.