파일이 있는지 확인해야하지만 확장자를 알지 못합니다.확장자를 모른 채 PHP 검사 파일이 존재 함
IE 내가 할 싶습니다 : 그것은 더 확장이 없기 때문에 일을 못해 물론
if(file_exists('./uploads/filename')):
// do something
endif;
. 확장자는 jpg, jpeg, png, gif입니다.
루프를 수행하지 않고이 작업을 수행하는 방법에 대한 아이디어가 있습니까?
파일이 있는지 확인해야하지만 확장자를 알지 못합니다.확장자를 모른 채 PHP 검사 파일이 존재 함
IE 내가 할 싶습니다 : 그것은 더 확장이 없기 때문에 일을 못해 물론
if(file_exists('./uploads/filename')):
// do something
endif;
. 확장자는 jpg, jpeg, png, gif입니다.
루프를 수행하지 않고이 작업을 수행하는 방법에 대한 아이디어가 있습니까?
PHP 파일 유형 기능에 대해 알고 계셨습니까? http://php.net/manual/en/function.filetype.php
하거나 is_file()
http://www.php.net/manual/en/function.is-file.php
이것은 전혀 문제를 해결하지 못하는 것처럼 보입니다 –
하지만 그는 정확한 파일명을 모른 채 파일 유형을 얻을 수 없습니다. 이는 정확한 문제입니다. 그는 파일 이름이 '파일 이름. ???'인 것을 알고 있으며 '???'파일을 찾는 방법을 알아야합니다. 각자 확인해주는 확장 기능들을 반복하지 않고 –
당신 말이 맞아요. 필자는 파일 형식을 잘못 이해했습니다. 그러나 그는 is_file()을 사용하여이를 수행 할 수 있습니다. 그렇게 생각하지 않아? – gearsdigital
나도 같은 필요성을 얻고, 글로브를 사용하려고하지만,이 기능은 휴대하지 않을 것으로 보인다했습니다
이 http://php.net/manual/en/function.glob.php에서 정보를 참조하십시오 :
참고 : 일부 시스템 (예 : 이전 Sun OS)에서는이 기능을 사용할 수 없습니다.
주 : GLOB_BRACE 플래그는 Solaris와 같은 일부 비 GNU 시스템에서는 사용할 수 없습니다.
또한 더했던 opendir보다 느리게, 한 번 봐 걸릴 :
function resolve($name) {
// reads informations over the path
$info = pathinfo($name);
if (!empty($info['extension'])) {
// if the file already contains an extension returns it
return $name;
}
$filename = $info['filename'];
$len = strlen($filename);
// open the folder
$dh = opendir($info['dirname']);
if (!$dh) {
return false;
}
// scan each file in the folder
while (($file = readdir($dh)) !== false) {
if (strncmp($file, $filename, $len) === 0) {
if (strlen($name) > $len) {
// if name contains a directory part
$name = substr($name, 0, strlen($name) - $len) . $file;
} else {
// if the name is at the path root
$name = $file;
}
closedir($dh);
return $name;
}
}
// file not found
closedir($dh);
return false;
}
사용법 :
$file = resolve('/var/www/my-website/index');
echo $file; // will output /var/www/my-website/index.html (for example)
Which is faster: glob() or opendir()
그래서 나는 같은 일을 수행하는 코드 조각 기능을 만들었어요
누군가를 도울 수있는 희망, Ioan
'glob'는 bash와 같은 중괄호 확장으로 사용할 수도 있습니다 :'glob ("./ uploads/filename. {jpg, jpeg, png, gif}", GLOB_BRACE)'. – Gumbo
@pekka : 고마워요. –