PHP: получить массив вещественных чисел из поля ввода
Вполне нормальный способ с регулярным выражением дан в этой заметке. Если же хочется сделать ещё проще и без регулярных выражений, можно разбить входную строку на лексемы и пропустить получившийся массив через фильтр, который оставит в нём только корректно записанные числа. Законченный пример на PHP+HTML5 мог бы выглядеть, например, так:
<!DOCTYPE html> <html><head> <meta charset=utf-8> <title>Получаем массив чисел из 1-строчного поля ввода</title></head><body> <?php if (isset($_POST['action'])) { //Нажата Отправить - обработать данные $data = trim(htmlspecialchars(strip_tags($_POST['data']),ENT_QUOTES,'UTF-8')); $result = ''; if (empty($data)) $result = 'Нет данных!'; else { $numbers = explode (" ",$data); //Разбить по разделителю-пробелу $correctnumbers = array_filter ($numbers, //Убрать не-числа function ($item) { return is_numeric($item); }); $result.= '<p>Из строки <b>'.$data.'</b> извлечены числа:<br>'; if (!count($correctnumbers)) $result .= 'нет чисел!'; else foreach ($correctnumbers as $item) $result .= $item.' '; echo '</p>'."\n"; //Здесь делаем обработку массива $correctnumbers } echo '<p>'.$result.'</p>'."\n"; echo '<p><a href="'.$_SERVER['HTTP_REFERER'].'">Назад</a></p>'."\n"; } else { //Не нажата Отправить - вывести форму echo ' <form method="post"> <input type="text" name="data" value="" size="40" maxlength="38"> <input type="submit" name="action" value="Отправить"> </form>'."\n"; } ?> </body></html>
09.10.2016, 11:53 [4472 просмотра]