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

Форум PHP

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

 

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

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

тема: работа со строками
 
 автор: Byte   (06.10.2004 в 17:53)   письмо автору
 
 

Здравствуйте!
Вопрос такой, есть ли встроенные средства для проверки строки на наличие больших слов, т.е. когда пробел забывают\не хотят ставить?

   
 
 автор: Byte   (06.10.2004 в 18:31)   письмо автору
 
   для: Byte   (06.10.2004 в 17:53)
 

Est' kto givoy? :)

   
 
 автор: glsv (Дизайнер)   (06.10.2004 в 19:18)   письмо автору
 
   для: Byte   (06.10.2004 в 18:31)
 

Живые думают.
Ну как нибудь вот так.


<?
  // $num - максимальное число символов в слове
  $num=20;
  // строка, которую проверяем
  $str="sfesf hsfhsjfhs fghsfgs hgfhsgfh jsgfhjsgf dhjsdf";
  $start=0;
  $end=strlen($str);
  $pos=1;  
  while($pos)
  {
    $pos = strpos($str, " ", $start+1);  
    if (($pos-$start)>$num) 
    {
      echo "Слишком длинная строка";
      exit();
    }
    $start=$pos;    
  }
  echo "Нормальная строка";
?>

   
 
 автор: LimP   (06.10.2004 в 19:26)   письмо автору
 
   для: Byte   (06.10.2004 в 18:31)
 

я тебе посоветую не писать вот это
>Est' kto givoy? :)
а просто поднимать сообщение вверх например вот так :)))))

   
 
 автор: Byte   (06.10.2004 в 19:43)   письмо автору
 
   для: LimP   (06.10.2004 в 19:26)
 

Спасибо за совет(ы)

   
 
 автор: cheops   (06.10.2004 в 21:54)   письмо автору
 
   для: Byte   (06.10.2004 в 17:53)
 

Ну можно, так, только мне этот вариант не очень нравится...
<?php
  // Проверяем сообщение на слишком длинные слова
  $lenmsg = strlen($msg);
  $templen = 0;
  $temp = strtok($msg, " ");
  if (strlen($msg)>60)
  {
    while ($templen < $lenmsg)
    { 
      if (strlen($temp)>60)
      {
        $action = ""; 
        $error = $error."<LI>Текст сообщения содержит слишком много символов без пробелов\n";
        break;
      }
      else
      {
        $templen = $templen + strlen($temp) + 1;
      }
      $temp = strtok(" ");            
    }       
  }
?>

   
 
 автор: Byte   (06.10.2004 в 23:22)   письмо автору
 
   для: cheops   (06.10.2004 в 21:54)
 

Да, я понимаю , что много способов реализовать данную задачу можно придумать,
я просто надеялся на существование какой-нибудь готовой функции. Ну, а вообще,
уже решил вопрос этот, но все равно спасибо, чем больше алгоритмов тем лучше :).