PHP preg_match помогите пожалуйста. Довольно просто - PullRequest
2 голосов
/ 25 февраля 2010

Как добавить в список разрешенных предметов (gif$|jpg$|png$|jpeg$)

в следующий код

$regexp = "/[0-9a-zA-z\.]/";
if (preg_match($regexp, $imageInput))

также, как мне добавить список исключений, например, чтобы люди не выгружали файлы .exe и т. Д.

Спасибо

EDIT

Я исправил это с помощью следующего кода

какой-нибудь совет, как сделать это лучше?

$regexp = "/^[a-zA-z0-9._-]+(gif|jpg|png|jpeg)/";

Ответы [ 3 ]

4 голосов
/ 25 февраля 2010

Используйте положительный список:

/^[0-9a-zA-z\.]+\.(gif|jpg|png|jpeg)$/

Или отрицательный взгляд:

/^[0-9a-zA-z\.]+\.(?!exe$)[a-z]+$/

Положительный список является более безопасным, но более ограничительным вариантом.

1 голос
/ 25 февраля 2010

попробовать:

$regexp = "/^[0-9a-zA-z\.]+\.(jpg|gif|png)$/";

для шаблона остановки используйте '/.(exe|cmd|bat|sh)$/', а затем if(!preg_match($pattern, $text))

1 голос
/ 25 февраля 2010

измените свое регулярное выражение на /([0-9a-zA-z\.])(gif|jpg|png|jpeg)$/, это разрешит только те расширения, которые вы указали.

...