php регулярка - хелп - Форум успешных вебмастеров - GoFuckBiz.com - Страница 2
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB88.6852
BTC/USD67869.5489
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 22.01.2013, 18:19
Start Post: php регулярка - хелп 
  #11
dady
Senior Medved
 
Аватар для dady
 
Регистрация: 15.06.2008
Сообщений: 4,146
Бабло: $22479945
Exclamation

Вообщем есть текст

какой то текст

###tab
trololo
###tab

какой то текст

надо удалить весь фрагмент

###tab
trololo
###tab
__________________
Аппрув США >91% и Европа >90% Сливай фарму на Pharmcash - получай хрустящий кэш! / Спонсор! Докажи, что твоя партнерка №1 / 2019
dady вне форума  
Старый 23.07.2013, 02:08   #12
Strikelol
Senior Member
 
Регистрация: 31.03.2011
Сообщений: 3,360
Бабло: $669045
По умолчанию

Цитата:
Сообщение от Ower Посмотреть сообщение
PS Я вообще правильно делаю проверку?
if(preg_match($pattern, $_GET['text'])){ ... }
не правильно.
preg_match("/регулярка/", $text, $out);
$out - массив с элеменами, если они найдены(соответствуют регулярке)
тоесть делаешь так
if(!empty($out[0])){
echo "Найдено";
}
лень уже регулярку тебе тестить, если никто не напишет(а это врядли) то завтра сделаю.
Strikelol вне форума  
Старый 23.07.2013, 02:16   #13
Venya Tolinov
Senior Member
 
Аватар для Venya Tolinov
 
Регистрация: 24.11.2010
Сообщений: 229
Бабло: $52860
Отправить сообщение для Venya Tolinov с помощью Skype™
По умолчанию

Ower, как-то так http://ideone.com/dwfDZx
Вообще ньюансы именно PHP не скажу - не пользуюсь, что именно там с кодировкой может быть. Но в питоне если код как UTF8 идёт то русские буквы лучше без тире перечислять полностью.

Второе вроде там так же, не? Если что завтра гляну, уже сплю.
__________________
Amazon Graffiti - монетизация страниц в Facebook
Venya Tolinov вне форума  
Старый 23.07.2013, 02:31   #14
mironich
Python кодер
 
Аватар для mironich
 
Регистрация: 10.09.2012
Сообщений: 95
Бабло: $27484
Отправить сообщение для mironich с помощью ICQ
По умолчанию

Ower,
PHP код:
<?php

$a 
"";
$pattern "/^[a-zа-яё\s]{3,100}$/ui";
$subject "Форум успешных вебмастеров";
if (
preg_match($pattern$subject)) {
    print 
"ok";
}

?>
По второму вопросу что-то нефига непонятно..
mironich вне форума  
Старый 23.07.2013, 02:41   #15
Ower
ё
 
Аватар для Ower
 
Регистрация: 26.10.2011
Сообщений: 1,520
Бабло: $311895
По умолчанию

Venya Tolinov, не прокатило со словом "Форум успешных вебмастеров"

mironich, А твой вариант получился, спасибо =)

На счет второго вопроса, поступать будут данные типа
Цитата:
img/photo1.jpg
img/photo2.png
img/picture.gif
то есть папка, файл с расширением. Вот как бы это и нужно пропускать: буквы, цифры, слеш, точка

Последний раз редактировалось Ower; 23.07.2013 в 02:53.
Ower вне форума  
Старый 23.07.2013, 03:02   #16
Ower
ё
 
Аватар для Ower
 
Регистрация: 26.10.2011
Сообщений: 1,520
Бабло: $311895
По умолчанию

Написал, вроде

Цитата:
$patternimage = "/^[0-9a-z._\/\s]{3,100}$/ui";
Но хочу еще тире поставить - с ней никак не получается

Цитата:
$patternimage = "/^[0-9a-z.-_\/\s]{3,100}$/ui";
Выкидывает ошибку
Ower вне форума  
Старый 23.07.2013, 03:06   #17
mironich
Python кодер
 
Аватар для mironich
 
Регистрация: 10.09.2012
Сообщений: 95
Бабло: $27484
Отправить сообщение для mironich с помощью ICQ
По умолчанию

Ower, а зачем фильтровать название файла рег-кой тоесть конечная цель?
М.б все более правильно можно сделать?
PHP код:
#^[a-z\d\.\-/]{3,100}$#i 
mironich вне форума  
Старый 24.07.2013, 11:14   #18
DimaX
Senior Member
 
Регистрация: 19.04.2007
Сообщений: 2,393
Бабло: $314345
По умолчанию

Цитата:
Сообщение от Ower Посмотреть сообщение
На счет второго вопроса, поступать будут данные типа:
img/photo1.jpg
img/photo2.png
img/picture.gif
то есть папка, файл с расширением. Вот как бы это и нужно пропускать: буквы, цифры, слеш, точка
В таком случае кулхацкер сможет пропихнуть путь вида
img/../../../../shell.php

Наверное, надо смотреть, чтобы слэш был ровно 1 всегда (либо столько, сколько предполагается изначально в тз сохранения файлов), и задавать конкретный список расширений (перечислить только картиночные), которые можно закачивать:
PHP код:
$str 'img/picture.gif';

$pics = array('.gif''.png''.jpg''.bmp');#разрешенные типы файлов

if (substr_count($str'/') != 1) {die('Должен быть 1 слэш');}

if (!
in_array(substr(basename($str), strlen(basename($str)) - 44), $picsTRUE)) {die('Запрещенный тип файла - '.substr(basename($str), strlen(basename($str)) - 44));} 
и только потом проверять название файла и папки (регулярки те же, что выше уже сделали).
DimaX вне форума  
Старый 24.07.2013, 13:17   #19
Ower
ё
 
Аватар для Ower
 
Регистрация: 26.10.2011
Сообщений: 1,520
Бабло: $311895
По умолчанию

Да, вот так то что нужно. Про каталоги не подумал, там ведь идет у меня вывод картинки <img src="img/photo.jpg"> , то есть можно что угодно туда подсунуть.
Спасибо =)
Ower вне форума  
Старый 24.07.2013, 13:33   #20
llittle indian
Ебланнед
 
Регистрация: 28.05.2013
Сообщений: 44
Бабло: $70920
По умолчанию

Цитата:
Сообщение от DimaX Посмотреть сообщение
В таком случае кулхацкер сможет пропихнуть путь вида
img/../../../../shell.php
написать img\/photo1\.jpg$ и ничего он не пропихнёт
llittle indian вне форума