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

Форум PHP

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

 

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

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

тема: Разбить строку, не просто строку....
 
 автор: mesren   (08.09.2005 в 20:11)
 
 

Всем привет!
Вот я уже был у Вас тут с этим вопрос ... Так мне толком и не могли тогда, но надеюсь сегодня помогут)))
Вообщем есть скрипт новостей, и есть тупой администратор, на столько тупой, что он в новость может добавить нечто:

Тест
тест
тестттттттттттттттттттттттттттттттт ттттттттттттттттттссссссссссссссссс сссссссссстттттттттттттттт

И вот когда он забивает вот это длинно слово - весь дизайн рвет, а я уже и незнаю как с этим справится...Фиксирование таблиц тоже не помагает... Помогите !! Вообщем надо всего-то разбить это длинное слово по 40 символов на строку... Тоесть осуществить проверку в сообщении и если есть длинное слово - разбить его.
Пример:

тестттттттттттттттттттттттттттттттт ттттттттттт<br>
тттттттсссссссссссссссссxcxcxcxсссс сссссс<br>
ттттттттттттттттxccccccccccccccxcxc ccccccc<br>

Я знаю это делается ... Надо эту строку перед выводом разбить .... Жду ответа..

   
 
 автор: Евгений Петров   (08.09.2005 в 21:55)   письмо автору
 
   для: mesren   (08.09.2005 в 20:11)
 

<?
  $str 
= "тестттттттттттттттттттттттттттттттт ттттттттттттттттттссссссссссссссссс сссссссссстттттттттттттттт";
  
$block = 40;
  if(
strlen($str) > $block)
  for(
$i=0;$i<strlen($str);$i=$i+$block)
    echo 
substr($str,$i,$block)."<br>";
?>

   
 
 автор: mesren   (08.09.2005 в 22:20)
 
   для: Евгений Петров   (08.09.2005 в 21:55)
 

Благодарю Вас !!!

   
 
 автор: cheops   (09.09.2005 в 00:16)   письмо автору
 
   для: mesren   (08.09.2005 в 20:11)
 

Вы можете также воспользоваться решением в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=4580

   
 
 автор: antf   (09.09.2005 в 12:15)   письмо автору
 
   для: cheops   (09.09.2005 в 00:16)
 

Вот моя функция разбиения длинных слов на части.

<?  
  
//разбивает слишком длинные слова на части
  // длина определяется параметром $MaxWordLength
  // $Str - входная строка
  
function SplitLongWords($Str, $MaxWordLength)
  {
    
//один элемент массива - одно слово без пробелов
    
$WordsArr = explode(' ', $Str);
    
$Text = "";
    
$cnt = count($WordsArr);
    for(
$i = 0; $i < $cnt; $i++)
    {
      
$Word = $WordsArr[$i];
      
$Length = strlen($Word);
      if(
$Length > $MaxWordLength)
      {
        
$WordsCount = ceil($Length / $MaxWordLength);
        for(
$b = 1; $b <= $WordsCount; $b++)
        {
          
$WordPart = "";
          
$WordPart = substr($Word, 0, $MaxWordLength);
          
$Word = substr($Word, strlen($WordPart));
          
$Text = $Text.$WordPart." ";
        }
      } else
      
$Text = $Text.$Word." ";

    }
    return(
$Text);
  }
?>

   
 
 автор: Евгений Петров   (09.09.2005 в 16:50)   письмо автору
 
   для: antf   (09.09.2005 в 12:15)
 

Ну и как ты дкмаешь чей вариант короче и быстрее? :)

   
Rambler's Top100
вверх

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