
08.02.2009, 09:51
|
|
Постоянный
Регистрация: 07.06.2006
Сообщений: 556
Провел на форуме: 7549607
Репутация:
2702
|
|
Сообщение от .:EnoT:.
mailbrush
PHP код:
if(in_array('', $_POST)) die('Что-то пусто');
А если в POST объявлен служебный элемент (submit формы и тп.)? он ведь будет всегда пустым....
PHP код:
/**
* Find whether a string is really empty
* (Substitution of empty())
*
* If the first argument is an array, its elements will be checked in the aggregate
* depending on the logical method (AND - conjunction, OR - disjunction)
* AND - Returns TRUE if all elements are empty
* OR - Returns TRUE if at least one element is empty
*
* This function also may be used for checking arrays
* concerning absence of elements
*
* @param string|array string(s) to check
* @param string checking method (LOGICAL_AND|LOGICAL_OR)
* @return bool
*/
function is_empty($data, $method = 'LOGICAL_OR')
{
if (is_array($data)) {
switch ($method) {
case 'LOGICAL_AND' :
{
return is_empty(join('', $data));
}
case 'LOGICAL_OR' : {
foreach ($data as $str) {
$result[] = ( (string) $str === '' ) ? 't' : 'f';
}
return (in_array('t', $result)) ? true : false;
}
}
} else {
return ( (string) $data === '' ) ? true : false;
}
}
/*--------------------------------------------------------*/
$is_empty = is_empty(array(
$_POST['var1'],
$_POST['var2'],
$_POST['varN']),
'LOGICAL_OR');
echo $is_empty ? 'some field is empty' : 'all ok';
В отличие от empty() моя функция по-человечески реагирует на '0', то есть не считает строку с нулём пустой.
Последний раз редактировалось [x26]VOLAND; 08.02.2009 в 09:54..
|
|
|