1
문자열을 검사하여 다음 형식인지 확인합니다.이미지 파일 이름을 검사하는 정규 표현식
"thumb_*.jpg|gif|png"
여기서 *는 와일드 카드이며 jpg | gif | png는 선택적 파일 확장명입니다.
이것은 PHP 입니다. 그게 가능하니?추신 : 그냥 반환 값을 true 또는 false로 원한다
문자열을 검사하여 다음 형식인지 확인합니다.이미지 파일 이름을 검사하는 정규 표현식
"thumb_*.jpg|gif|png"
여기서 *는 와일드 카드이며 jpg | gif | png는 선택적 파일 확장명입니다.
이것은 PHP 입니다. 그게 가능하니?추신 : 그냥 반환 값을 true 또는 false로 원한다
$valid = preg_match('~^thumb_.*\.(jpg|gif|png)$~', $filename) != 0;
또는 당신이 정말로 확장자는 선택 사양 일하려면 :
$valid = preg_match('~^thumb_.*(\.(jpg|gif|png))?$~', $filename) != 0;
편집 : 클리 터스에 암의 주석 사항에 따라 ' 슬래시가 일치하지 않도록 와일드 카드를 제한 할 수 있습니다.
$valid = preg_match('~^thumb_[^/]*\.(jpg|gif|png)$~', $filename) != 0;
if (preg_match('/^thumb_.*?\.(jpg|gif|png)$/i', $filename)) {
...
}
이렇게하면 파일 이름이 잘못되거나 보안 위협 (예 : __ ../../../__)이 허용 될 수 있습니다. . *는 특정 문자로 제한해야합니다. – Amirshk
안녕하세요. 이 $ 파일 이름이 true를 반환하지 않는 이유는 무엇입니까? "thumb_abc.jpg" – user263241
"true"가 반환되지 않습니다. 그것은 '1'즉, 매치 한 시간의 수를 반환 할 것이다. –