Intereting Posts
phpmailer не отправляет почту в gmail, yahoo, hotmail или блокирует электронную почту, отправленную phpmailer Установка SSH2 для PHP для запуска на сервере Xampp Apache на OSX 10.9.1 Когда я использую постоянную PHP «PHP_EOL»? Как вывести MD5 хешированный пароль в виде обычного текста? Удаление повторяющихся данных из массива POST Переменная Php в R Как обновить значения в моей БД новыми значениями из тегов <select> и <input>? Начало транзакции не определено Может ли кто-нибудь помочь мне разобраться в значении этого сообщения об ошибке php? Как удалить элемент из дерева XML, где атрибут – это определенная строка в Simple XML PHP Перепишите URL-адрес настраиваемого веб-сайта электронной коммерции на основе php undefined offset при использовании php explode () Как выбрать отдельные значения из нескольких столбцов mysql и поместить их в один массив PHP? Входы пользователя, очистка и дезинфекция перед отправкой на db Ошибка сервера 500 – перемещено приложение в подпапку

вырезать текст после (x) количества символов

Это в WordPress (не уверен, что имеет значение)

Этот бит php выводит заголовок сообщения

<?php echo $data['nameofpost']; ?> 

Это простой текст, который может быть длиной до 100 символов. Я бы хотел, чтобы выведенные символы были длиннее 20, чтобы отобразить «…» или просто ничего.

благодаря

Solutions Collecting From Web of "вырезать текст после (x) количества символов"

После проверки длины строки с помощью strlen используйте substr

 $string = "This is a large text for demonstrations purposes"; if(strlen($string) > 20) $string = substr($string, 0, 20).'...'; echo $string; 

Выходы

 "This is a large text..." 

Другой способ вырезать строку в конце слова – с регулярным выражением. Этот параметр должен быть отключен со 100 символами или ближайшим словом break после 100 символов:

 function firstXChars($string, $chars = 100) { preg_match('/^.{0,' . $chars. '}(?:.*?)\b/iu', $string, $matches); return $matches[0]; } 
 <?php function abbreviate($text, $max) { if (strlen($text)<=$max) return $text; return substr($text, 0, $max-3).'...'; } ?> <?php echo htmlspecialchars(abbreviate($data['nameofpost'], 20)); ?> 

Общим достижением было бы попытаться вырезать строку в конце слова:

  if (strlen($text)<=$max) return $text; $ix= strrpos($text, ' ', $max-2); if ($ix===FALSE) $text= substr($text, 0, $max-3); else $text= substr($text, 0, $ix); return $text.'...'; 

Если вы используете строки UTF-8, вы захотите использовать многобайтовые версии mb_ строки ops для подсчета символов более соответствующим образом.

в вашем файле темы используйте что-то вроде этого, попробуйте использовать <div class="teaser-text"><?php the_content_limit(100, ''); ?></div> <div class="teaser-text"><?php the_content_limit(100, ''); ?></div>

то в файлах functions.php используйте это

 function the_content_limit($max_char, $more_link_text = '(more...)', $stripteaser = 0, $more_file = '') { $content = get_the_content($more_link_text, $stripteaser, $more_file); $content = apply_filters('the_content', $content); $content = str_replace(']]>', ']]&gt;', $content); $content = strip_tags($content); if (strlen($_GET['p']) > 0) { echo "<div>"; echo $content; echo "</div>"; } else if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) { $content = substr($content, 0, $espacio); $content = $content; echo "<div>"; echo $content; echo "..."; echo "</div>"; } else { echo "<div>"; echo $content; echo "</div>"; } } 

удачи 🙂

 if(count($data['nameofpost']) > 20) { echo(substr($data['nameofpost'], 0, 17)."..."); } 

Для $data['nameofpost'] более 20 символов он выведет первые 17 плюс три точки ...