왜 is_file($file) 이 false값을 가지죠? 채택완료
$dirlist = scandir($dir);
foreach ($dirlist as $file){
//분명 여기시점에서 $file 값이 test.php 이 들어있거든요
if(is_file($file)){ //<= 그런데 왜 여기(if문)안으로 안들어올까요?
// $file 값은 여기에서 분명히 test.php입니다
어쩌구 저쩌구...
}
}
답변 6개
$dir = './';
if ($dirlist = scandir($dir)) {
foreach ($dirlist as $file){
if (is_dir($file)) {
echo '<br>dir => ' . $file . '<br>';
continue;
} else if (is_file($file)) {
echo $file . '<br>';
} else
echo 'not file => ' . $file . '<br>';
}
} else
echo 'not dir';
답변에 대한 댓글 3개
즐거운 한주 맞이하세요^^
댓글을 작성하려면 로그인이 필요합니다.
슈와이님께 ^^
댓글이 단락 구분이 안지어져서
여기에 새로 글 써드립니다
$dir = './main';
if(is_dir($dir)) {
recursive_file_list($dir);
}else{
echo "not a directory";
exit;
}
function recursive_file_list($dir){
$dirlist = scandir($dir);
foreach ($dirlist as $file){
if(($file==".")||($file=="..")){
continue;
}
if(is_dir($file)) {
recursive_file_list($file);
}
if(is_file($file)){
$temp = new SplFileInfo($file);
if($temp->getExtension()=="php"){
my_process();
}
}else{
echo $file."is not a file<br>";
}
}
}
답변에 대한 댓글 2개
$dirlist = scandir($dir);
foreach ($dirlist as $file){
if ($file== '.' || $file == '..') continue;
if (is_dir($dir . '/' . $file)) {
recursive_file_list( $dir . '/' . $file);
} else if (is_file($dir . '/' . $file)) {
if (preg_match('/\.php$/', $file))
my_process();
} else
echo $file . " is not a file<br>";
}
}
참고사이트 http://php.net/manual/kr/function.is-file.php#86992
슈와이님 말씀대로 하니까 됩니다^^
그런데 궁금한게요... php.net 보면...is_file 함수는 패스까지 넣는 예제도없던데
is_file함수에 패스 넣어야 한다는 것은 혹시 어디를 보면 알수 있죠?^^
그리고 매개변수도 filename이라고 되어있던데요
댓글을 작성하려면 로그인이 필요합니다.
최종적으로 무엇을 해야 되는지 이해가...
if문만 실행되면 되는건지 아니면
test.php 파일을 if문 안에서 사용해야 되는건가요?
아래처럼 echo 찍으면 어떻게 나오나요?
//분명 여기시점에서 $file 값이 test.php 이 들어있거든요
echo $file; <= 폴더내 전체 파일 출력됨
echo "<br>";
if(is_file($file)){ //<= 그런데 왜 여기(if문)안으로 안들어올까요?
// $file 값은 여기에서 분명히 test.php입니다
echo $file; <= 제일 마지막 파일만 출력되네요
답변에 대한 댓글 4개
if(is_file($dir.'/'.$file)){
}
혹시 이렇게 해도 안되나요?
저는 테스트하니 잘나오는데 다른 문제가 있는건지 모르겠네요.
즐거운 한주 맞이하세요^^
댓글을 작성하려면 로그인이 필요합니다.
파일에 test.php가 들어있다고 해도 경로가 같은건 아니죠
만약 처음에 들어가는 $dir이 실행하고 있는 php랑 다르면 경로가 들어가야죠 그 두개가 같다면 모르겠네요
도움이 못되고 댓글만 같네요
답변에 대한 댓글 2개
즐거운 한주 맞이하세요^^
댓글을 작성하려면 로그인이 필요합니다.
http://php.net/manual/kr/function.scandir.php">http://php.net/manual/kr/function.scandir.php 위 매뉴얼 처럼
현재디렉토리(.)와 상위디렉토리(..)가 포함되어 있어 그렇지 않나요?
답변에 대한 댓글 2개
아래처럼이요
if(($file==".")||($file=="..")){
continue;
}
즐거운 한주 맞이하세요^^
댓글을 작성하려면 로그인이 필요합니다.
혹시 파일이 php 실행하는 곳과 같은 경로에 있는건가요?
만약 경로가 다르다면 앞에 경로를 붙여주시면 됩니다.
http://blog.habonyphp.com/entry/php-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%ED%8F%B4%EB%8D%94-%EC%A0%95%EB%B3%B4%EB%A5%BC-%EC%B6%9C%EB%A0%A5%ED%95%98%EB%8A%94-%ED%95%A8%EC%88%98-readdir-scandir-dir-%ED%81%B4%EB%A0%88%EC%8A%A4">http://blog.habonyphp.com/entry/php-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%ED%8F%B4%EB%8D%94-%EC%A0%95%EB%B3%B4%EB%A5%BC-%EC%B6%9C%EB%A0%A5%ED%95%98%EB%8A%94-%ED%95%A8%EC%88%98-readdir-scandir-dir-%ED%81%B4%EB%A0%88%EC%8A%A4
보시면 파일 디렉토리 구분해서 저장 한 기본소스도 있으니 혹시나 참고 하시면 편하실거 같아서 올려둡니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
내용)
저는 원래 아래처럼 짰습니다
슈와이님과는 다른 방법으로 짰고요
문제는 if_file($file)이 왜 false로 인식이 되는지...이해가 안갑니다.-_-
분명 $file값은 some_file.php 파일로 들어있거든요
수정) 댓글에 소스를 달아드렸더니...단락 구분이 안되어서
답변 글 형식으로 새로 올려드렸습니다