Установка Substr больше длины строки - PullRequest
3 голосов
/ 22 марта 2009

Это больше основной вопрос выполнения PHP.

Каковы положительные или отрицательные значения для двух следующих методов ограничения размера строки?

function max_length($string, $length) {
  return (strlen($string) > $length)?substr($string, 0, $length):$string;
}

substr($string, 0, $length);

Меня беспокоит случай, когда строка меньше запрошенной длины. Может ли это привести к ошибкам переполнения буфера? Лишние пробелы? Повторные символы?

Единственное, что я знаю, это то, что по скорости substr как минимум в 2 раза быстрее , чем предоставленная пользовательская функция.

Ответы [ 2 ]

3 голосов
/ 22 марта 2009

Как вы можете видеть в http://us2.php.net/substr

If length  is given and is positive, the string returned will contain
at most length  characters beginning from start  (depending on the
length of string ). 

Это означает, что вы не получите никаких дополнительных символов, только те, которые вы просите.

2 голосов
/ 22 марта 2009

Нет, не о чем беспокоиться. Если указанный аргумент длины больше, чем длина строки - вся строка и ничего больше - не будет возвращено. Так что просто перейдите с:

$maxString = substr($string, 0, $length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...