Гласные буквы - O согласыные - X

Shinbolat

Новичок
Всем привет! Начал изучать PHP. Хотелось решить задачку. Помогите как сделать гласные буквы - O согласные - X?
Вот мой плохой код:
PHP:
<form action="" method="get"
<label>Введите текст: <input name="text" type="text" size="25" /></label>
<input name="submit" type="submit" />
</form>
<?php
$text = $_GET[text];
$textArr = str_split($text);
for ($i = 1; isset($textArr[$i]); $i++) {
    if ($textArr[$i] == "а" or $textArr[$i] == "е" or $textArr[$i] == "ё" or $textArr[$i] == "ы" or $textArr[$i] == "о" or $textArr[$i] == "э" or $textArr[$i] == "и") {
		echo "O";
		}
		else {
			echo "X";
			}
}
?>
Не ругайте я только начинаю изучать, просто подскажите как сделать?
 

AmdY

Пью пиво
Команда форума
почитай про кодировки.
$_GET[text] - какой литературой вы пользуетесь, где обращение к элементам массива подобным образом?
for ($i = 1; isset($textArr[$i]); $i++) откуда ты взял это? посмотри как правильно обходить массивы через for или foreach

п.с. В программировании считают с нуля
 

Shinbolat

Новичок
Вам нужно заменить гласные на "O", а согласные на "X"?
да имменно)
почитай про кодировки.
$_GET[text] - какой литературой вы пользуетесь, где обращение к элементам массива подобным образом?
for ($i = 1; isset($textArr[$i]); $i++) откуда ты взял это? посмотри как правильно обходить массивы через for или foreach

п.с. В программировании считают с нуля
Литература нет у меня, просто читаю все в интернете. Думаю основы знаю.
 

keltanas

marty cats
У меня получилось что-то вроде этого:
PHP:
<?php
$source = "Каждый охотник желает знать";
$vowels = '/[аеёыоэиуюя]/ui';

print join("", array_map(function($char) use ($vowels) {
    return " " == $char ? " " : ( preg_match($vowels, $char) ? "O" : "X" );
}, preg_split('/(?<!^)(?!$)/u', $source ) ) )."\n";
Сначала разбиваем (preg_split) utf-8 (вы же в utf-8 работаете?) строку на символы.
Потом итерируем по ней (array_map), и фильтруем результат в соответствии с задачей
Далее склеиваем полученный массив с помощью join
 

wolfram

Новичок
Что-то вроде этого
PHP:
$str = 'Помогите как сделать гласные буквы - O согласные - X?';
$p = array('/(а|е|ё|и|о|у|ы|э|ю|я)/ui','/(б|в|г|д|ж|з|й|к|л|м|н|п|р|с|т|ф|х|ц|ч|ш|щ)/ui');
$r = array('O', 'X');

echo preg_replace($p, $r, $str);
 
Сверху