EOMY.NET на главную
|
EOMY.NET Хостинг EOMY.NET: Форум поддержки
|
|
Вопрос по php/MySQL
|
| Автор |
Сообщение |
lazutov $a ||= 5;


Зарегистрирован: 30.04.2007 Сообщения: 2096
12423 
|
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus $a ||= 5;


Зарегистрирован: 26.07.2007 Сообщения: 3178
31651 
|
Добавлено: Сб, 15 Дек, 2007 17:20 Заголовок сообщения: |
|
|
lazutov
тогда проверьте их отдельным условием _________________
  |
|
| Вернуться к началу |
|
 |
girafenok Хостинг — это наше всё!


Зарегистрирован: 17.11.2007 Сообщения: 129
10975 
|
Добавлено: Сб, 15 Дек, 2007 19:04 Заголовок сообщения: |
|
|
Проверка наличия русских букв в величине $string:
| Код: | if preg_match("/[А-Яа-я]/",$string)!=0
{
echo "Есть русские буквы";
} |
По поводу локали не сообразить . Возможно надо использовать функцию setlocale().
Проверка наличия символов с кодами 224 (E0h)- 255 (FFh) в величине $string:
| Код: | if preg_match("/[\xE0-\xFF]/",$string)!=0
{
echo "Есть символы с кодами 224-255";
} |
C уважением |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus $a ||= 5;


Зарегистрирован: 26.07.2007 Сообщения: 3178
31651 
|
Добавлено: Сб, 15 Дек, 2007 19:11 Заголовок сообщения: |
|
|
| Код: | if preg_match("/[А-Яа-я#@]/",$string)!=0
{
echo "Есть символы, не полюбившиеся lazutov'у";
}
|
Итог) _________________
  |
|
| Вернуться к началу |
|
 |
lazutov $a ||= 5;


Зарегистрирован: 30.04.2007 Сообщения: 2096
12423 
|
Добавлено: Сб, 15 Дек, 2007 19:23 Заголовок сообщения: |
|
|
всем спасибо.
теперь такой вопрос:
| Код: |
<?
function ru($s){
$ret='';
for ($i=1; $i<=strlen($s);$i++){
$d=0;
$t=substr($s,$i,1);
$num=ord(substr($s,$i,1));
if ((($num>=65)And($num<=90))OR(($num>=97)And($num<=122))){$ret.='l'; $d=1;}
if ($t=='@'){$ret.='@'; $d=1;}
if ($t==' '){$ret.='s'; $d=1;}
if ($d==0) {$ret.='i';}
}
$return='';
if (strstr($ret,'l')>0){$return.='l';}
if (strstr($ret,'@')>0){$return.='a';}
if (strstr($ret,'s')>0){$return.='s';}
if (strstr($ret,'i')>0){$return.='i';}
return $return;
}//end function RU
$user='@wwwцццц';
if (ru($user)!='l'){$error.='<br>wrongUserChars';}
|
Документация:
функия Ru возвращает от одного до 3 смволова в виде string
'l' возвращается если там есть любые латинские,
'a' если там есть @
's' если есть пробел
'i' если другие символы кроме перечисленных.
вопрос такой: как правильно объявить и вызвать функцию, чтобы оно работало.
Заранее спасибо. _________________ lazutov.ru - блог, Lwhois - Удобный whois для windows | NameIntelligence -все будет... Зимой... |whois-сервис с дополнительными возможностями
Регистрация доменов RU(3 регистратора, прямые договора)-150р и дешевле - в ЛС |
|
| Вернуться к началу |
|
 |
girafenok Хостинг — это наше всё!


Зарегистрирован: 17.11.2007 Сообщения: 129
10975 
|
Добавлено: Сб, 15 Дек, 2007 22:24 Заголовок сообщения: |
|
|
(В предыдущем моем посте есть ошибка в if. Условия надо писать в скобках.)
lazutov
Не совсем понял, что Вы хотите сделать. Вы уже и так объявили функцию и выполнили ее. |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus $a ||= 5;


Зарегистрирован: 26.07.2007 Сообщения: 3178
31651 
|
Добавлено: Сб, 15 Дек, 2007 22:27 Заголовок сообщения: |
|
|
girafenok
она не работает... в чисто английском слове выдало "латиница+прочие_символы"... _________________
  |
|
| Вернуться к началу |
|
 |
Alek$ $a ||= 5;


Зарегистрирован: 24.11.2007 Сообщения: 820
19477 
|
Добавлено: Вс, 16 Дек, 2007 05:55 Заголовок сообщения: |
|
|
lazutov
регулярки - рулят
Вот примерный код:
| Код: |
function ru($s)
{
$ret = "";
if(preg_match("/[A-Za-z]/",$s)!=0)
$ret .= "l";
if(strstr($s,"@"))
$ret .= "a";
if(preg_match("/\s/",$s)!=0)
$ret .= "s";
if(preg_match("/[^A-Za-z\s@]/",$s)!=0)
$ret .= "i";
return $ret;
}
|
Это должно работать несколько быстрее, да и код изящнее, ИМХО
ЗЫ. Писал на коленке и не проверял, но вроде бы должно работать. Если что, думаю, меня поправят  _________________ Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог |
|
| Вернуться к началу |
|
 |
lazutov $a ||= 5;


Зарегистрирован: 30.04.2007 Сообщения: 2096
12423 
|
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus $a ||= 5;


Зарегистрирован: 26.07.2007 Сообщения: 3178
31651 
|
Добавлено: Вс, 16 Дек, 2007 17:20 Заголовок сообщения: |
|
|
lazutov
первое условие (первая пара скобок) - от a до z, независимо от регистра, во втором - НЕ собака, пробельный символ или то, что в первом (как способ выражения "все остальное"... Рекомендую прочитать, это стандарт PCRE, он не только в PHP применяется _________________
  |
|
| Вернуться к началу |
|
 |
girafenok Хостинг — это наше всё!


Зарегистрирован: 17.11.2007 Сообщения: 129
10975 
|
|
| Вернуться к началу |
|
 |
lazutov $a ||= 5;


Зарегистрирован: 30.04.2007 Сообщения: 2096
12423 
|
|
| Вернуться к началу |
|
 |
Thewirus Интернет на завтрак

Зарегистрирован: 16.08.2007 Сообщения: 76
3919 
|
Добавлено: Вс, 16 Дек, 2007 19:13 Заголовок сообщения: |
|
|
| Уверен на 95% что вернет true... |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus $a ||= 5;


Зарегистрирован: 26.07.2007 Сообщения: 3178
31651 
|
Добавлено: Вс, 16 Дек, 2007 19:17 Заголовок сообщения: |
|
|
lazutov
исключительно true, все символы подходят под указанное условие PCRE _________________
  |
|
| Вернуться к началу |
|
 |
girafenok Хостинг — это наше всё!


Зарегистрирован: 17.11.2007 Сообщения: 129
10975 
|
Добавлено: Вс, 16 Дек, 2007 19:32 Заголовок сообщения: |
|
|
Вернет значение 1. Если бы ни один из перечисленных в шаблоне символов не нашелся бы в строке, то функция вернула бы значение 0.
Если необходимо посчитать количество вхождений указанных в шаблоне символов, то необходимо использовать функцию
preg_match_all
C уважением |
|
| Вернуться к началу |
|
 |
|
Powered by phpBB © 2001, 2005 phpBB Group
|