Intereting Posts
Преобразование Mysql Timestamp во времени с момента размещения Простой пример сеанса не работает Как использовать Doctrine_RawSql для полнотекстового поиска и сортировки по релевантности Избегайте использования isset в PHP при доступе к $ _POST, $ _GET и другим переменным? Требуется PHP Mailer Form с скриптом File Attachment для отправки информации о форме с или без вложения PHP – ошибка синтаксического анализа SimpleXML Почему этот jQuery ajax-вызов не возвращает данные из моего php-скрипта? Как вы предлагаете пользователям уникальные имена пользователей в PHP? Можно ли динамически регистрировать пакеты в Symfony2? Каковы правильные кодировки / экранирование / htmlentities, необходимые при отправке данных из js в php, php в mysql и для ответов REST json Как преобразовать GPS-координаты в полный адрес с помощью php? Как поместить php внутри JavaScript? Gmail не позволяет отправителю установить значение возвращаемого пути для получения сообщений о отказе? Форма внутри $ .load не правильно размещена Kohana 3 получает текущий контроллер / действие / аргументы

Ограничение количества символов заголовка в Php без разделения слов

Возможный дубликат:
Сократить строку в PHP (только для полных слов)
Как получить первые х символов из строки, не отрезая последнее слово?

Много похоже на этот вопрос: как ограничить длину тега заголовка с помощью PHP

… где ответ подобен:

[title] ?php echo substr( $mytitle, 0, 70 ); [/title] 

… но есть ли способ сделать это, когда решение не сокращает слова пополам? Так что, если слово частично превышает количество символов в лимите, решение будет удалять полное слово, а не ограничивать его количеством символов?

Related of "Ограничение количества символов заголовка в Php без разделения слов"

Это может привести к вам 95%, но это не идеально …

 $mytitle = 'How to Limit the Length of the Title Tag using PHP'; $arr = explode(' ',$mytitle); $string = ''; foreach($arr as $word) { if(strlen($string) > 69) break; $string .= ' ' . $word; } echo $string; 

Следующее, вероятно, одно из самых простых решений для реализации, но оно не является наиболее эффективным.

Взгляните на wordwrap который разбивает вашу строку на несколько строк без разрыва слов. Затем вы можете разбить результирующую строку на линейные сдвиги, используя, например. explode("\n", $var, 2) чтобы получить первую строку, которая будет вашим названием.

Несколько интересное, если не оптимальное решение (непроверено, но вы должны получить идею):

 $wrapped = wordwrap($mytitle, 70, "ENDOFTITLE") $truncated = substr($wrapped, 0, strpos($wrapped, "ENDOFTITLE")); 

Тем не менее, ответы на дублирующие вопросы дают лучшие решения.