Обработка форм в php, как решить?

176
08 июня 2018, 12:50
  1. Создайте форму с method=”post”.
  2. В форме должны быть текстовая область (textarea) и кнопка.
  3. В обработчике необходимо принять строку из текстовой области.
  4. Создайте массив, где каждый элемент будет содержать 1 символ из переданной строки.
  5. Удалите каждый чётный элемент (то есть 0, 2, 4 и так далее).
  6. Соедините все элементы получившегося массива в одну строку и выведите её.

Примечание: Должно получиться что-то наподобие этого: пришла строка «Моя строка», а выйти в браузер должно: «о тоа».

<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
    <textarea name="text" value="<?=$text?>"></textarea>
    <input type="submit" name="submit" value="Отправить" />
</form>
$text = false;
if(isset($_POST['submit'])) {
    $text = htmlspecialchars($_POST['text']);
      for($i = 0; $i <strlen($text); $i++){
    $arr[] = $i;
    }
    echo $arr;
}
//4. Создайте массив, где каждый элемент будет содержать 1 символ из переданной строки.
Если каждой строки textarea, то так может
<form method="post" action=""> 
    <textarea name='text'></textarea>
    <input type='submit' name="Enter">
</form>
if(isset($_POST['Enter'])){
    $text = preg_split("~\n~",trim($_POST['text']));
    print_r(
      array_combine(array_keys($text), array_values(preg_replace("~.{1}\\K.+~","",$text)))
    );
}
//п.5 Удалите каждый чётный элемент (то есть 0, 2, 4 и так далее)
$text ='abcd'; //переданный текст
for ($i=0; $i < mb_strlen($text,'utf-8'); $i++) {
    if ($i % 2 == 0) {
        $text{$i} = '';
    }
}
//echo $text;
echo mb_strlen($text, 'utf-8');
Answer 1

взять строку

$txt   = "abcdefgh klmnopqrst"; // $_POST['text'];

разбить на символы

$chars = preg_split("//u", $txt,-1, PREG_SPLIT_NO_EMPTY);

оставить нечетные

$odd   = array_filter($chars, function($idx){ return $idx & 1;}, ARRAY_FILTER_USE_KEY);

слить обратно

$result = implode("", $odd);

но это решение скорее всего у вас не примут, потому что это учебное задание, и потребует написания циклов и посимвольному перебору строки.

в целом четные буквы можно еще удалить, например, так

$result = preg_replace("/.(.)/", "$1", $txt);
READ ALSO
как подключить composer из проекта

как подключить composer из проекта

У меня в проекте (сайт на yii2) есть папка

158
Посчитать li и вбить теги

Посчитать li и вбить теги

собственно прошу подсказать такой момент выводится список значений через

171
Партиционирование mysql

Партиционирование mysql

Есть таблица с полями name | position(int 11)

210
PHP intl на Mac OSX Sierra 10.13.4

PHP intl на Mac OSX Sierra 10.13.4

При выполнении команды

211