|
|
|
| Суть такая: есть <textarea> в него пользователь пишет хокку(японское трехстишье) по следующим правилам: Первая строчка- 5 слогов
Вторая строчка- 7 слогов
Третья строчка- 5 слогов
Когда пользователь заканчивае писать строчку и переходит на новую, слева от <textarea> напротив законченой строки должны появиться либо крестик, либо галочка, в зависимости от того удовлетворяет ли строка условию. Тоесть по сути, надо после перехода на новую строку подсчитать кол-во гласных в строчке и дальше просто If() { } else { }...
Подсчитать общее кол-во глассных в <textarea> у меня получилось, это не сложно
<?php
if(isset($tex)) {
$str=0;
$alf[0]="АЕЁИОУЫЭЮЯаеёиоуыэюя";
for ($j = 0; $j < strlen($tex); $j++) {
for ($i = 0; $i < strlen($alf[0]); $i++) {
if (substr($tex, $j, 1)==substr($alf[0], $i, 1)) {
$str++;
}
}
}
echo $str;
}
?>
<form name="hokku" method="post" action="hcheck.php" >
<textarea name="tex" cols="35" rows="6"></textarea>
<input type="submit" value="check" />
</form>
Вопрос как подсчитать гласные в определенной строчке? или если кто то подскажет хотя бы, как занести значение <textarea> в масив, чтоб в каждую яйчейку по строчке??? Заранее благодарю!!! надеюсь что все понятно излажил)) | |
|
|
|
|
|
|
|
для: UnlikeAO
(12.08.2008 в 21:10)
| |
<?
/* Battle 2007 */
$stih = 'Это было давно, Касту еще не знали даже в пределах Ростова.
Вова тогда ещё не переехал в Москву из Молдовы.
Тогда ещё даже не было самого Кишинёва.
Не было ни грэндмастера флеша, ни диджея сто восьмого.
Но было слово. Я над водою носился словно овод.
Было холодно, темно, скучно и беспонтово.
Я сказал: "Да будет свет!", и, прикинь, прокатило!
В небе тот час запылало светило.
Бвгд жз клмн прст фхцч.';
/* Battle 2007 */
$stih = explode("\n", $stih);
echo '<table>';
foreach($stih as $cur_string)
{
if(!empty($cur_string))
{
if (preg_match_all('/([аеёиоуыэюя])/si', $cur_string, $result, PREG_PATTERN_ORDER)) {
$kolichestvo_glasnyh = count($result[0]); // Кол-во гласных в строке, делайте с ней что хотите
/* подсветка гласных в тексте - опционально */
$result = eregi_replace('([аеёиоуыэюя])', '<u><i><font color="#0000FF">\\1</font></i></u>', $cur_string);
/* подсветка гласных в тексте - опционально */
echo '<tr><td>' . $result . '</td><td>[гласных в строке: ' . $kolichestvo_glasnyh . ']</td></tr>';
} else {
echo '<tr><td>' . $cur_string . '</td><td>[гласных в строке: нет]</td></tr>';
}
} else {
echo '<tr><td colspan="2" align="center"><i><font color="#808080">пустая строка</font></i></td></tr>';
}
}
echo '</table>';
?>
|
Результат выполнения: _http://etenclub.ru/ddk/misc/kolvo_glasnyh.php | |
|
|
|
|
|
|
|
для: DDK
(12.08.2008 в 22:18)
| | Если уж так, то лучше использовать preg_replace.
$result = preg_replace('#([аеёиоуыэюя])#i', '<u><i><font color="#0000FF">\\1</font></i></u>', $cur_string);
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(12.08.2008 в 22:34)
| | А в чём такая принципиальность? :) | |
|
|
|
|
|
|
|
для: DDK
(12.08.2008 в 22:37)
| | >А в чём такая принципиальность? :)
ereg с новыми версиями PHP уйдет в небытия. | |
|
|
|
|
|
|
|
для: AcidTrash
(12.08.2008 в 22:43)
| | На 5-ке вроде работает , оно и хорошо :) | |
|
|
|
|
|
|
|
для: DDK
(12.08.2008 в 22:18)
| | Гениально! Спасибо!! | |
|
|
|