ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1121  
Старый 14.04.2010, 22:48
ZnikiR
Участник форума
Регистрация: 14.01.2009
Сообщений: 194
Провел на форуме:
798217

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

2 Pashkela
Я хочу чтобы скрипт проверил состоит ли имя пользователя из
Русских Английски букв и тире "-".
Ну то есть,чтобы принимал Русские , Ангийские имена и имена которые пишутся через дефис "-".
"Ван-Дер-Ваальс",но в то же время,чтобы имя нельзя было сделать из одних символов "-"

Старался как мог.
 
Ответить с цитированием

  #1122  
Старый 14.04.2010, 22:55
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме:
2603363

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

Цитата:
Сообщение от svesve  
есть строка вида

Код:
<a clas="..." href="...">info</a>, <a clas="..." href="...">info2</a>, <a clas="..." href="...">info3</a>,........
нужно выдрать все между тегами <a></a> конструкция будет одинакова
PHP код:
preg_match('#">(.*?)<\/a>#',$in,$out); 
, как эту конструкцию повторять,??? ведь может быть и 1 повтор и 10 повторов конструкции.
preg_match_all, не?
 
Ответить с цитированием

  #1123  
Старый 14.04.2010, 23:32
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


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

Цитата:
Сообщение от ZnikiR  
2 Pashkela
Я хочу чтобы скрипт проверил состоит ли имя пользователя из
Русских Английски букв и тире "-".
Ну то есть,чтобы принимал Русские , Ангийские имена и имена которые пишутся через дефис "-".
"Ван-Дер-Ваальс",но в то же время,чтобы имя нельзя было сделать из одних символов "-"

Старался как мог.
Вот теперь ТЗ понятное и вопросов не вызывает:

1. Можно Русские символы
2. Можно Английские символы
3. Нельзя спец-символы (кроме тире)
4. Нельзя одни только "-"
5. Нельзя смесь русских и английских буковок
6. Регистр любой (в любой месте ника)
7. Длина ника от 3 до 60 символов

PHP код:
<?php  
$a 
"Куку"
if (!
preg_match('#[^а-яА-Яa-z\-]#i',$a) && preg_match('#[а-яА-Яa-z]#i',$a) && !(preg_match('#[а-яА-Я]#',$a) && preg_match('#[a-z]#i',$a)) && strlen($a)>=&& strlen($a)<=60) echo "Ok"
else echo 
"Error"
?>

Последний раз редактировалось Pashkela; 14.04.2010 в 23:47..
 
Ответить с цитированием

  #1124  
Старый 15.04.2010, 11:35
ZnikiR
Участник форума
Регистрация: 14.01.2009
Сообщений: 194
Провел на форуме:
798217

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

Так как это раздел, где вопросы для новичков,то решил спросить,а то понять не могу.И нигде не написано про "#"
Чем отличается
preg_match('#[^а-яА-Яa-z\-]#i',$a)
от
preg_match('/[^а-яА-Яa-z\-]/i',$a)
И вообще я до сих пор не понял,как работает preg_match.
Можете объяснить?
+ добавлено скрпит Пашкелы пропускает имена типа "-ыв-фы-вфыв---фыв--",что не есть хорошо.
Попробывал так,но не сработало.
[^а-яА-Яa-z\-?]
Я понимаю,что регулярка понимает это как полседовательность
от "\" до "?" ?

Последний раз редактировалось ZnikiR; 15.04.2010 в 11:48..
 
Ответить с цитированием

  #1125  
Старый 15.04.2010, 11:50
Compton
Участник форума
Регистрация: 31.01.2010
Сообщений: 170
Провел на форуме:
1442841

Репутация: 63
Отправить сообщение для Compton с помощью AIM Отправить сообщение для Compton с помощью Yahoo
По умолчанию

если ставить '#' то не придется ставить '\' перед '/'
 
Ответить с цитированием

  #1126  
Старый 15.04.2010, 12:06
svesve
Постоянный
Регистрация: 15.06.2007
Сообщений: 527
Провел на форуме:
1734541

Репутация: 214


По умолчанию

Код HTML:
    <td class="bold">Описание:</td>
    </tr>
    <tr class="infoRow">
    <td>Фрэнк Пеш рoдился под счастливой звeздой. Всю жизнь oн не вeдал пoражeний ни в любви, ни в уличных рaзбoрках, ни зa игoрным столом. А так кaк Фрэнк был итальянцем и жил в Нью-Йорке, жизнь постoянно прeдоставляла ему шанс проверить свою удачливость на практике. В этой гангстерской комедии есть все: смех и слезы, любовь и ненависть. Перед вашими глазами на протяжении нескольких десятилетий разворачивается история семьи Пеш со всеми ее горестями и радостями, прекрасные актерские работы не оставят равнодушными даже самого взыскательного зрителя.</td>

    </tr>
            <tr class="infoRow2">
    <td class="bold">В главных ролях:</td>
    </tr>
    <tr class="infoRow">
    <td><a href="actor.php?name=%D0%94%D1%8D%D0%BD%D0%BD%D0%B8%20%D0%90%D0%B9%D0%B5%D0%BB%D0%BB%D0%BE">Дэнни Айелло</a>, <a href="actor.php?name=%D0%AD%D0%BD%D1%82%D0%BE%D0%BD%D0%B8%20%D0%9B%D0%B0%20%D0%9F%D0%B0%D0%BB%D1%8C%D1%8F">Энтони Ла Палья</a></td>
    </tr>
как правильно отпарсить описание??
 
Ответить с цитированием

  #1127  
Старый 15.04.2010, 14:11
ZnikiR
Участник форума
Регистрация: 14.01.2009
Сообщений: 194
Провел на форуме:
798217

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

В общем я написал наконец нормальную проверку имени.
Спасибо Pashkela за код.
В общем функция для проверки имени полязователя на валид ( правильность , валидность )
PHP код:
if (!preg_match('#-{2,}#',$a) && //нет двух подряд тире
    
preg_match_all('#-#',$a,$m1)<&& //И  в строке меньше 3 тире,т.е. 1 или 2
    
!preg_match('#(^-|-$)#',$a) && //И нет тире в начале или конце
    
!(preg_match('#[а-яА-Я]#',$a) && preg_match('#[a-z]#i',$a)) && //И не используються сразу англ и русские символы 
    
!preg_match('#[^а-яА-Яa-z\-]#i',$a) && //И  не используються знаки кроме разрешенных {"а-я" "А-Я" "a-z" "A-Z" и "-"}
    
strlen($a)>=&& //И имя длиннее 3 символов
    
strlen($a)<=30 //И имя короче 30 символов
    
)echo "Ok";
else echo 
"Error<br>"
Еще Можно объядинить эти две строки
PHP код:
!preg_match('#-{2,}#',$a)
!
preg_match('#(^-|-$)#',$a
В
PHP код:
preg_match('#-{2,}|(^-|-$)#',$a,$m1); 

Последний раз редактировалось ZnikiR; 15.04.2010 в 14:26..
 
Ответить с цитированием

  #1128  
Старый 15.04.2010, 18:51
Compton
Участник форума
Регистрация: 31.01.2010
Сообщений: 170
Провел на форуме:
1442841

Репутация: 63
Отправить сообщение для Compton с помощью AIM Отправить сообщение для Compton с помощью Yahoo
По умолчанию

Цитата:
Сообщение от svesve  
как правильно отпарсить описание??
PHP код:
preg_match('/<td>(.+)<\/td>/',$text,$a); 
 
Ответить с цитированием

  #1129  
Старый 15.04.2010, 20:51
svesve
Постоянный
Регистрация: 15.06.2007
Сообщений: 527
Провел на форуме:
1734541

Репутация: 214


По умолчанию

Цитата:
Сообщение от Compton  
PHP код:
preg_match('/<td>(.+)<\/td>/',$text,$a); 
такой регуляркой помимо описания ты еще кучу чего зацепишь

спс.но я уже разобрался )
 
Ответить с цитированием

  #1130  
Старый 17.04.2010, 00:01
Vlad&slav
Участник форума
Регистрация: 01.01.2009
Сообщений: 138
Провел на форуме:
817404

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

svesve
PHP код:
preg_match('/\"infoRow\">[^<]*<td>(.+)<\/td>/',$text,$a); 
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi]/[Pascal] Задай вопрос, получи ответ Isis С/С++, C#, Delphi, .NET, Asm 6762 17.06.2010 21:23
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[Lan] Задай вопрос - получи ответ! sedoy_xxx АнтиАдмин 133 31.03.2010 08:35
Всё о беспороводном соединении на кпк и смартфонах! Задай вопрос - получи ответ! ARMENIN Беспроводные технологии/WPAN/WLAN 2 02.11.2008 00:40
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



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


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




ANTICHAT.XYZ