ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Нужна функция проверки строковой переменной на Php
  #1  
Старый 08.12.2007, 01:38
Аватар для -=lebed=-
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию Нужна функция проверки строковой переменной на Php

check($value)

if Only numeric (0-9) (1-8 символов)
or
Only loweralpha(a-z) (1-6 символов)
or
Only alpha (A-Z) (1-6 символов)
-> false

else -> true

ЗЫ Вообщем ложь, если только цифры 1-8 символов или только строчные 1-6 символов или только заглавные 1-6 симоволов, в остальных случаях правда...
 
Ответить с цитированием

  #2  
Старый 08.12.2007, 01:50
Аватар для GreenBear
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме:
19975136

Репутация: 4536


Отправить сообщение для GreenBear с помощью ICQ
По умолчанию

PHP код:
function mda($s){
if(
ereg('^([0-9]{1,8})$'$s)) return false;
if(
ereg('^([a-z]{1,6})$'$s)) return false;
if(
ereg('^([A-Z]{1,6})$'$s)) return false;
return 
true;

 
Ответить с цитированием

  #3  
Старый 08.12.2007, 23:44
Аватар для Helios
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

PHP код:

function check($str)
{
  return 
preg_match('/^([0-9]{1,8}])$|^([a-z]{1,6})$|^([A-Z]{1,6})$/'$str);

Регулярки те же, но preg_match работает быстрее
 
Ответить с цитированием

  #4  
Старый 08.12.2007, 23:49
Аватар для Macro
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

Цитата:
Сообщение от Helios  
PHP код:

function check($str)
{
  return 
preg_match('/^([0-9]{1,8}])$|^([a-z]{1,6})$|^([A-Z]{1,6})$/'$str);

Регулярки те же, но preg_match работает быстрее
Лучше так

PHP код:

function check($str)
{
if(
preg_match('/^({[0-9]{1,8}}|{[a-z]{1,6}}|{[A-Z]{1,6}})$/'$str);)
 { return 
false;}
else {return 
true;}


Последний раз редактировалось Macro; 08.12.2007 в 23:53..
 
Ответить с цитированием

  #5  
Старый 09.12.2007, 00:38
Аватар для Helios
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

Цитата:
Сообщение от Macro  
Лучше так

PHP код:

function check($str)
{
if(
preg_match('/^({[0-9]{1,8}}|{[a-z]{1,6}}|{[A-Z]{1,6}})$/'$str);)
 { return 
false;}
else {return 
true;}

Во первых:
Код:
({[0-9]{1,8}}
несовпадение открывающих и закрывающих скобок (фигурные и круглые)

Во вторых:
Код:
{[a-z]{1,6}}
Неверное использование фигурных скобок
Цитата:
Сообщение от Спецификации PCRE  
{
start min/max quantifier

}
end min/max quantifier
В третьих:
Код:
 if (preg_match(...) {return true;} else {return false;})
Лишнее условие, а условные переходы являются самой медленной частью в любой программе
Цитата:
Сообщение от php documentation  
preg_match() returns the number of times pattern matches. That will be either 0 times (no match) or 1 time because preg_match() will stop searching after the first match.
PS: зато идея "вынести за скобки" ^ и $ - как раз в тему+)
 
Ответить с цитированием

  #6  
Старый 09.12.2007, 01:38
Аватар для Macro
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

Ты прав,я прокололся. Но твоя функция работает неверно.Вот так работает правильно:
PHP код:
function check($str

return 
preg_match('/(^[0-9]{1,8}$)|(^[a-z]{1,6}$)|(^[A-Z]{1,6}$)/',$str)>0?false:true;
 } 
 
Ответить с цитированием

  #7  
Старый 09.12.2007, 01:49
Аватар для Helios
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

Прочитай цитату из документации пхп в моем предыдущем посте, там ясно написано, что preg_match может возвращать только два значения: 0 или 1, а они в php равносильны false или true соответственно.

Поэтому проверка
Код:
>0?false:true
излишня
 
Ответить с цитированием

  #8  
Старый 09.12.2007, 10:50
Аватар для Macro
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

Цитата:
Сообщение от Helios  
Прочитай цитату из документации пхп в моем предыдущем посте, там ясно написано, что preg_match может возвращать только два значения: 0 или 1, а они в php равносильны false или true соответственно.

Поэтому проверка
Код:
>0?false:true
излишня
Нет, не излишняя ибо в случае не нахождения совпадений ппо твоей функции она выкинет 0, а эта фуннкция должна наоборот выкинуть 1.
 
Ответить с цитированием

  #9  
Старый 09.12.2007, 13:11
Аватар для Digimortal
Digimortal
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме:
6144796

Репутация: 1095


По умолчанию

Цитата:
Сообщение от Macro  
Нет, не излишняя ибо в случае не нахождения совпадений ппо твоей функции она выкинет 0, а эта фуннкция должна наоборот выкинуть 1.
тогда все равно можно обойтись без проверки.. )
Цитата:
return !preg_match('/(^[0-9]{1,8}$)|(^[a-z]{1,6}$)|(^[A-Z]{1,6}$)/',$str);
 
Ответить с цитированием

  #10  
Старый 09.12.2007, 14:54
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
if(preg_match('/^({[0-9]{1,8}}|{[a-z]{1,6}}|{[A-Z]{1,6}})$/', $str)
{ return false;}
else {return true;}
ппц ))))
а ?: или приведение типов (bool) заюзать? )
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
php скрипт для проверки прокси utilizator PHP, PERL, MySQL, JavaScript 2 17.10.2006 17:07
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Пишем Php код, устойчивый к ошибкам k00p3r Чужие Статьи 0 10.07.2005 22:34
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ