БлогNot. PHP: получить массив вещественных чисел из поля ввода

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 просмотра]


теги: php числа

К этой статье пока нет комментариев, Ваш будет первым