PDA

Показать полную графическую версию : регулярное выражение на пхп.


Drem
21-07-2006, 00:29
Люди в регулярных выражениях я 0.Читать справчник нет времени, надо срочно.
Помогите составить выражение на проверку имени загружаемого графического файла.
Имя файла должно быть только на английском и таких форматов: jpg, jpeg, gif, bmp, png.
Думаю тут ничего сложного.

strejiok
21-07-2006, 11:09
'/(.*\.jpg|.*\.jpeg|.*\.bmp|.*\.gif|.*\.png)/i'

да?

vadimiron
21-07-2006, 11:45
или
"/(.*)\.(jpg|jpeg|bmp|gif|png)/"
что в общемто равнозначно

мне же больше нравится вариант сделать массив из всех разрешённых расширений, отрезать расширение с помощью strrpos and substr, и потом проверить в массиве ли с помощью in_array

mrcnn
21-07-2006, 12:05
vadimiron,strejiok имя файла только на английском, а в указанных вами вариантах русский и любой другой язык позволяется

mar
21-07-2006, 12:47
тогда [a-zA-Z]
или если еще цифры можно, то [a-zA-Z0-9]

mrcnn
21-07-2006, 13:38
mar]
тогда [a-zA-Z]
или если еще цифры можно, то [a-zA-Z0-9]

Я хотел написать тоже самое, но это не сработает при имени файла "rрекаus.jpg.", то есть при наличии и русских и английских букв. С помощью этого выражения можно только посимвольно проверять.

mar
21-07-2006, 14:12
Я хотел написать тоже самое, но это не сработает при имени файла "rрекаus.jpg.", то есть при наличии и русских и английских букв
т.е. при этом пропустился вариант со смесью букв?

Drem
21-07-2006, 14:33
ок то-что надо сенкс....

mrcnn
21-07-2006, 14:50
т.е. при этом пропустился вариант со смесью букв?
Да, этим проверяется только наличие английских букв, а не факт отсутствия русских или каких-либо других

Vlad Drakula
21-07-2006, 14:55
mrcnn, oleksiy, mar

"/^([a-zA-Z0-9]*)\.(jpg|jpeg|bmp|gif|png)$/"

strejiok
21-07-2006, 14:59
:) ну да ну да.

Drem
21-07-2006, 23:35
if(!eregi("/^([a-zA-Z0-9_]*)\.(jpg|jpeg|bmp|gif|png)$/", $up_photo_name)){
echo 'Такие файлы не загружаю!';
exit;
}

что-то тут не так, совсем ни чего не загружает...
а без "!" загружает всё подряд.

Vlad Drakula
21-07-2006, 23:43
oleksiy
нету функцию используете... нужно использовать "preg_match"....

Drem
22-07-2006, 00:16
ах да... тьфу, извиняюсь... спасибо.




© OSzone.net 2001-2012