|
|
|
|
|
для: sega_z
(10.01.2012 в 23:17)
| | Если я правильно понял Вашу задачу, я решил ее таким образом
<form method="post">
<input text="text" name="msg" value="<?php echo $_POST['msg'];?>">
<input type="submit" value="ok">
</form>
<?php
$f=explode(" ",$_POST['msg']);
$total=0;
for ($i=0;$i<count($f);$i++)
{
$subtotal=strlen($f[$i]);
$total=$total+$subtotal;
}
if ($total>7)
{
echo 'nekorrektnyu vod';
}
else
{
exit();
}
?> | |
|
|
|
|
|
|
|
для: sega_z
(11.01.2012 в 00:08)
| | А, ну раз все что угодно, то все нормально. Просто вы сначала сказали "только пробелы", потом "точки с запятыми", потом про цифры, вот я и подумал что нужно еще и цифры исключить. А так все нормально. Мой последний вариант исключает из слов точки, запятые и пробелы. Все остальное может быть. | |
|
|
|
|
|
|
|
для: Sfinks
(11.01.2012 в 00:02)
| | Да там всё что угодно может быть...
Ладно, воспользуюсь кодом с циклом, т.к нагрузка не большая, слов может быть не более 10. Тем более этому коду по барабану, что содержится в слове.
Всем участникам огромное спасибо!!! | |
|
|
|
|
|
|
|
для: sega_z
(10.01.2012 в 23:57)
| | А не должно быть? Вы уж сразу перечислите все условия? Тогда уж проще перечислить что может быть в словах.... Только буквы? Только русские или только латинские или любые? | |
|
|
|
|
|
|
|
для: Sfinks
(10.01.2012 в 23:52)
| | А если в слове будут цифры? | |
|
|
|
|
|
|
|
для: sega_z
(10.01.2012 в 23:32)
| | Еще можно через РВ:
<?php
$s = "КороткоеСлово СуперДлинноеСловоЯвноДлиннееШестидесятиЗнаковХотяДляТогоЧтобыЕгоТакимСделатьНужноСильноПостараться ЕщеКороче";
$pattern = "#(\A|\s|\.|,)[^\Z\s\.,]{61,}#su";
if(preg_match($pattern,$s)) die("Есть слова длиннее 60 знаков");
else echo "OK";
?>
| Это если кодировка utf-8. Если win-1251, то в $pattern вместо #su надо написать #s
____
P.S. Поправил сразу для точек и запятых
P.P.S. Рекомендую именно этот вариант, т.к. циклы довольно медленны. | |
|
|
|
|
|
|
|
для: Sfinks
(10.01.2012 в 23:41)
| | Да, действительно, то что надо!
Но позвольте спросить, как добавить в разделители слов, помимо пробелов: запятые и точки? | |
|
|
|
|
|
|
|
для: sega_z
(10.01.2012 в 23:32)
| |
<?php
$string = "Какая то строка с кучей слов";
$str = explode(" ", $string);
$error = false
foreach($str as $value){
if(strlen($value) > 60){
$error = true;
break;
}
}
if($error) die("Есть слова длиннее 60 знаков");
?>
|
| |
|
|
|
|
|
|
|
для: sega_z
(10.01.2012 в 23:32)
| | попробуйте тот код, что я дал, должно быть всё нормльно | |
|
|
|
|
|
|
|
для: Sfinks
(10.01.2012 в 23:29)
| | В том то и дело, что нужна длина каждого слова, отдельно. | |
|
|
|
|