Автор Тема: Максимальная длинна слова  (Прочитано 8641 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Solid

  • Любитель подемогогить =)
  • Постоялец
  • ***
  • Сообщений: 139
  • +0/-0
  • 2
    • Просмотр профиля
    • http://coding.dyn.ee/
Максимальная длинна слова
« : 08 Февраля 2002, 21:58:29 »
Вот некак не могу решить одну задачу, т.е. решил одним способом, но он меня вообще не устраивает.

Короче вот что нужно, есть какая то пременная в которой много всяких слов типа например обозначим её так:

$string = "здесь что то написанно, и есть ооооооооооооооочччччччеееееееенннньььььь большое слово"

Короче нужно проверкой, если в этом самом стринге одно из слов больше например 20, то извени федя борода типа пишит

echo "Обломись!";

А если всё прошло, то пишит

echo "всё ок Федя, работает расприкласно!";

Сорри не могу показать то что я сделал, стёр уже, а делал я через аррай, рэплайс и eregi =)

Пожалуйста помогите, нужно ..
..  ..

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
Максимальная длинна слова
« Ответ #1 : 08 Февраля 2002, 22:08:28 »
wordwrap функция думаю тебе поможет.

$text = "A very long woooooooooooord.";
$newtext = wordwrap( $text, 8, "\\n", 1);

echo "$newtext\\n";
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Максимальная длинна слова
« Ответ #2 : 09 Февраля 2002, 14:03:25 »
Solid
Если ты хочешь чтобы дробилось слово где  не идёт много много одних и тех же букв как в примере стека то вот пример
PS : чтесно выдрал из одной гостевой книги(manlix.ru)
$f = $mlwim;
$e = explode(" ",$message);
for ($a = 0; $a < sizeof($e); $a++)
{
$o = strlen($e[$a]);
$b = 0;
$q = $o;
while($q > 0)
{
$s[$b] = substr ($e[$a], $f*$b, $f);
$q = $q - $f;
$b++;
}
for ($c=0;$c < sizeof($s);$c++)
$h[] = $s[$c];
}
for ($d = 0; $d < sizeof($h); $d++)
$r .= $h[$d]." ";
$message = $r;
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
Максимальная длинна слова
« Ответ #3 : 09 Февраля 2002, 16:05:26 »
AlieN слабо еще сложнее, чем Stek написал? =)
ну, будем исповедоваться?

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Максимальная длинна слова
« Ответ #4 : 09 Февраля 2002, 17:03:34 »
Не я это писал :)
Зато сам проверял работает :)
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Solid

  • Любитель подемогогить =)
  • Постоялец
  • ***
  • Сообщений: 139
  • +0/-0
  • 2
    • Просмотр профиля
    • http://coding.dyn.ee/
Максимальная длинна слова
« Ответ #5 : 10 Февраля 2002, 00:24:12 »
Не люди, хоть это и мне тоже пригодилось, я совсем не то имел ввиду.

Короче нужно так сделать, если в массиве слов есть слово больше привышаемой нормы (букв всмысле больше), то делаем echo "хехе";
else
echo "хаха";

Вот так.
..  ..

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Максимальная длинна слова
« Ответ #6 : 10 Февраля 2002, 00:56:14 »
блин так бы сразу и сказал:
$words=split(" ",$message)
for($i=0;$i{
if(strlen($wodrs[$i])>50){$words[$i]="хе-хе";}
}
$message=join(" ",$words);

50 в данном случае - макс. кол-во букв
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Solid

  • Любитель подемогогить =)
  • Постоялец
  • ***
  • Сообщений: 139
  • +0/-0
  • 2
    • Просмотр профиля
    • http://coding.dyn.ee/
Максимальная длинна слова
« Ответ #7 : 10 Февраля 2002, 01:42:42 »
=)

Ты хоть пробовал работает это или нет?!

Короче это, это не то всёравно! Это я и сам уже написал ;)

Это же подсчёт сколько слов в предложении скажем так.

А мне нужно сделать так, что бы если в предложении есть какое то слово больше ограниценного числа, то выводится срабатывает TRUE, если нет, то срабатывает FALSE, вот так!
..  ..

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Максимальная длинна слова
« Ответ #8 : 10 Февраля 2002, 10:21:46 »
Пробовал - работает :)
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Solid

  • Любитель подемогогить =)
  • Постоялец
  • ***
  • Сообщений: 139
  • +0/-0
  • 2
    • Просмотр профиля
    • http://coding.dyn.ee/
Максимальная длинна слова
« Ответ #9 : 10 Февраля 2002, 14:39:09 »
Да не так просто ошибка одна ";" не стоит, и ещё ++i .. что то мне не понравилось ;)

Это, а как я сказал, не знаешь как сделать?
..  ..

  • Гость
Максимальная длинна слова
« Ответ #10 : 24 Февраля 2002, 05:43:04 »
Цитировать
А мне нужно сделать так, что бы если в предложении есть какое то слово больше ограниценного числа, то выводится срабатывает TRUE, если нет, то срабатывает FALSE, вот так!



вроде бы так... но не было сил проверять на все возможные случаи... если где не отработает - скажи...

// исходная строка
$str = \'kuka\';

// максимально допустимый размер слова
$maxsize = 3;

// разделитель между словами
$delim = \'\\ \';

/* строка на эрег, одиночные кавычки и конкатенация - существенны */
$ereg = \'^([\'.$delim.\']*)([^\'.$delim.\']{1,\'.$maxsize.\'}[\'.$delim.\']+)*([\'.$delim.\']*)$\';

if ( strlen($str) > $maxsize && (!eregi($ereg, $str)) )
           $res = \'wrong\';
else
           $res = \'correct\';

Оффлайн Solid

  • Любитель подемогогить =)
  • Постоялец
  • ***
  • Сообщений: 139
  • +0/-0
  • 2
    • Просмотр профиля
    • http://coding.dyn.ee/
Максимальная длинна слова
« Ответ #11 : 24 Февраля 2002, 12:56:13 »
Felenka: Это всёравно немного не то что я имел ввиду...

Ну ладно, я уже сам написал, вот код:


<?
/*
	
Script by Solid
	
Web:
	
[url]http://coding.dyn.ee/[/url]
	
E-mail:
	
[email]solid@email.ee[/email]
	
IRC: irc.ircworld.org -> #rus
*/

// исходная строка 
$str = \'Вот так я имел ввиду ..\';

// максимально допустимый размер слова 
$maxsize = 4; 

// разделитель между словами 
$word = explode(" ", $str);

// Пересчитать все слова, если какое то из них больше $maxsize то в массив записываем 0, если меньше то 1
for($i = 0; $i <= count($word); $i++) {
	
GLOBAL $len;
	
if(strlen($word[$i]) > $maxsize) {
	
	
$len[] = "0";
	
} else {
	
	
$len[] = "1";
	
}
}

// Если в массиве есть 1 и нету 0 то "УРА", если в массиве есть 0 то "БОРОДА"
if(in_array("1", $len) xor in_array("0", $len)) {
	
echo ":)";
} else {
	
echo ":(";
}
?>
..  ..

  • Гость
Максимальная длинна слова
« Ответ #12 : 26 Февраля 2002, 02:38:24 »
предлагаю заменить на вот такой вариант :)

// исходная строка
$str = \'Вот так я имел ввиду ..\';

// максимально допустимый размер слова
$maxsize = 4;

// разделитель между словами
$delim = \'\\ \';

/* строка на эрег, одиночные кавычки и конкатенация - существенны */
$ereg = \'([^\'.$delim.\']{\'.($maxsize+1).\',})+\';

/* если в строке есть такое слово, то БОРОДА */
if ( eregi($ereg, $str) ) {
    echo """";
} else {/* иначе - мило улыбаемся */
     echo """";
}


если нужен список "запрещенных" слов или их количество, то просто добавить в вызове eregi третий параметр, в который они и будут складываться :)

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Максимальная длинна слова
« Ответ #13 : 26 Февраля 2002, 11:40:56 »
$er=1;
$words=split(" ",$message)
for($i=0;$i{
if(strlen($wodrs[$i])>50){$er=1;}
}
return $er;

PS объясняй пожалуйста сразу внятно и доступно
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Solid

  • Любитель подемогогить =)
  • Постоялец
  • ***
  • Сообщений: 139
  • +0/-0
  • 2
    • Просмотр профиля
    • http://coding.dyn.ee/
Максимальная длинна слова
« Ответ #14 : 26 Февраля 2002, 16:13:30 »
AlieN
Да с объяснялкой у меня бываю маленькие затруднения, ну ничего, думаю скоро исправлюсь, буду больше книг читать, а то у компа всё у компа ...
..  ..

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28