Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разбивка строки
 
 автор: Lenux   (27.07.2005 в 10:12)   письмо автору
 
 

Есть строка: "Сегодня я создал, эту тему" - например. Искал я функции, не нашёл везде либо после, какого то символа он преобразует, а мне нужно, что бы после 3-его символа, отрезалась строка, а затем поставилось ..., как это можно реализовать? Можно сделать, что бы после n-ого символа, нашёлся знак пробела и после него ... поставилось?
Т.е.(для трёх символов) "Сегодня я создал эту тему"->"Сег..."->(ещё лучше вариант)"Сегодня..."

   
 
 автор: RV   (27.07.2005 в 11:19)   письмо автору
 
   для: Lenux   (27.07.2005 в 10:12)
 


explode (" " , $str);

не то?

   
 
 автор: Loki   (27.07.2005 в 11:51)   письмо автору
 
   для: RV   (27.07.2005 в 11:19)
 

Нет. Человеку, видимо, для форума или новостей нужно.
Можно попробовать так:

<?
$len
=10//допустимая длина строки
$str="Это подопытная строка";
if (
strpos($str" ")>$len//если в пределах заданного количества символов нет пробелов
$text=substr($str1$len)."..."//тупо обрезаем строку
else
{
$text="";
$tmp=explode (" " $str); //разделяем строку на слова
foreach ($tmp as $word)
 {
  if (
srtlen($text." ".$word)<=$len//добавляем в строку слова до тех пор, пока она меньше разрешенной длины
  
$text.=" ".$word;
 }
$text.="...";
}
echo 
$text;
?>

   
 
 автор: cheops   (27.07.2005 в 12:41)   письмо автору
 
   для: Lenux   (27.07.2005 в 10:12)
 

Ага, я тоже в своё время не нашёл и написал следующий скрипт:
<?php
  $numchar 
3;
  
$text "Сегодня я создал, эту тему";
  
$pos strpos(substr($text,$numchar), " ");
  
$text substr($text0$numchar+$pos);
  echo 
$text."...";
?>

$numchar - показывает, начиная с какого символа следует искать окончание слова. Т.е. фрагмент до троеточия будет не менее трёх символов.

   
 
 автор: Loki   (27.07.2005 в 13:00)   письмо автору
 
   для: cheops   (27.07.2005 в 12:41)
 

ХитрО!:)
Вот только конструкция вида "А даваааааааааааааааааааааааааааааааа ааааааайте напишем так" через этот код пролезет. Или я что-то неправильно прочел?

   
 
 автор: cheops   (27.07.2005 в 13:08)   письмо автору
 
   для: Loki   (27.07.2005 в 13:00)
 

Пролезет :))) но я для новостей писал, расчитывая, что редактор будет вменяемым и заинтересован в том, чтобы всё выглядело красиво :)))

   
 
 автор: Lenux   (27.07.2005 в 15:14)   письмо автору
 
   для: cheops   (27.07.2005 в 13:08)
 

Всё равно списабо щас до ума буду доводить:)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования