Форум → Программирование → PHP для идиотов → Нужно найти длинное слово в тексте
Нужно найти длинное слово в тексте
Страницы: ← Следующая страница →
-
-
Июль 13, 2010, 2:50 д.п., спустя 13 минут 27 секунд
user_name, вопрос надо ставить в конце предложения… -
Июль 13, 2010, 10:11 д.п., спустя 7 часов 20 минут 41 секунду
По трдиции не буду приносить тебе пользы. А вообще советую посмотрть доки пхп.Спустя 173 сек.Хотя ладно. Буду чуть полезным. Смотри условные конструкции, операторы сравнения и функцию, которая возрщает длину строки.Спустя 191 сек.Ах, да еще str_word_count() посмотри.
Ну или тупо регулярки, но это сложно.Спустя 77 сек.епта. еще тебе по любому понадобится обрботка массивов. Так что на эу тему тоже почитай. -
Июль 13, 2010, 11:15 д.п., спустя 1 час 3 минуты 55 секунд
но это сложно.
сложно - бороться со своими страхами, а регулярки - просто твой страх, с которым ты еще не поборолся. не такие они и страшные, сколько мощные ;)Сапожник без сапог -
-
Июль 13, 2010, 3:42 п.п., спустя 2 часа 33 минуты 6 секунд
phpdude, я регулярок не боюсь)Спустя 18 сек.Я даже иногда ими злоупотребляю.Спустя 51 сек.Я с точки зрения человека, который задает такой вопрос) -
Июль 13, 2010, 5:51 п.п., спустя 2 часа 8 минут 50 секунд
$text = "?Нужно найти в тексте слово которое длиннее 15 символов.
Слово может быть введено латЕй , или кирЕй.
Как такое осуществить";
$data = explode(' ', preg_replace('/[[:punct:]\s]+/u', ' ', $text));
function cmpLength($a, $b)
{
$lena = mb_strlen($a, 'utf-8');
$lenb = mb_strlen($b, 'utf-8');
if ($lena == $lenb)
{
return 0;
}
return ($lena < $lenb) ? -1 : 1;
}
uasort($data, 'cmpLength');
echo 'Самое длинное слово: "' . array_pop($data) . '"';Work, buy, consume, die -
Июль 13, 2010, 5:56 п.п., спустя 5 минут 25 секунд
Nyaah,$data = explode(' ', preg_replace('/[[:punct:]\s]+/u', ' ', $text));
говно$data = str_word_count($text,1);
Так тру. Имха. -
Июль 13, 2010, 5:58 п.п., спустя 2 минуты 20 секунд
анука, затести её с текстом в utf-8 =)Work, buy, consume, die -
Июль 13, 2010, 6:21 п.п., спустя 22 минуты 40 секунд
нях всегда прав ибо он всегда все тестит перед тем как написать)))Спустя 285 сек.Тогда так:<?php
$text = "?Нужно найти в тексте слово которое длиннее 15 символов.
Слово может быть введено латЕй , или кирилицейвылосыпыдыстской.
Как такое осуществить";
$data = explode(' ', preg_replace('/[[:punct:]\s]+/u', ' ', $text));
foreach ($data as $d) $array[mb_strlen ($d, 'utf-8')] = $d;
ksort($array);
echo 'Самое длинное слово: "' . array_pop($array) . '"';
UPD Чуть имена переменных поправил -
Июль 13, 2010, 6:21 п.п., спустя 23 часа 59 минут 37 секунд
Или так )$text = "?Нужно найти в тексте слово которое длиннее 15 символов.
Слово может быть введено латЕй , или кирЕй.
Как такое осуществить";
$data = preg_replace('/[[:punct:]\s]+/u', ' ', $text);
$pos = mb_strpos($data, ' ', 0, 'utf-8');
$i = 0;
$max = -1;
while ($pos !== false)
{
$prev = $pos;
$pos = mb_strpos($data, ' ', $pos + 1, 'utf-8');
$len = $pos - $prev;
if ($len > $max)
{
$max = $len;
$num = $prev + 1;
}
}
$len = mb_strlen($data) - $prev;
if ($len > $max)
{
$max = $len;
$num = $prev + 1;
}
$word = mb_substr($data, $num, $max, 'utf-8');
echo 'Самое длинное слово: "' . $word . '"';Спустя 54 сек.в стиле работы с указателями в си =)Work, buy, consume, die -
Июль 13, 2010, 6:25 п.п., спустя 4 минуты 9 секунд
Я типа того на qbasic в школе классе в 9ом писал :D -
Июль 13, 2010, 6:47 п.п., спустя 22 минуты 17 секунд
function str_split_utf8($string, $split_length=1)
{
preg_match_all('`.`u', $string, $arr);
return array_map('implode', array_chunk($arr[0], $split_length));
}
$string_array = split('[ ,.]',$string);
foreach ($string_array as $v)
{
if (count(str_split_utf8($v)) >= 15)
{
echo 'Слово бля вот оно:'.$v.'<br />';
}
} -
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!