본문 바로가기
IT/web

[PHP] file_exists()에 공백이 포함되었을 때 해결 방안

by 어느해겨울 2021. 12. 27.

 

file_exists()에 공백이 포함되었을 때

 

file_exists() 에 입력하는 경로가 공백을 포함하고 있다면 bool(false) 를 반환하는 문제가 있다.
파일의 경로에 공백이 없는게 최선이겠지만 그게 내 뜻 때로만 되면 얼마나 좋을까.

그래서 file_exists() 에 공백을 인식시키기 위해서 여러 방법들을 사용해봤지만 생각처럼 동작하지 않아
대안을 만들어서 file_exists() 를 사용하지 않고 대체하였다.

// 기존 
$result = file_exists("<공백 포함 파일 경로>"); 
var_dump($result); // bool(false) 


// 대체 
$result = (int)shell_exec("ls <공백 포함 파일 경로> | wc -l"); 
var_dump($result); // int(1)

shell_exec()와 ls를 이용해 파일을 조회하고 wc를 통해 없는 경우는 0, 있는 경우 1을 반환하도록 한다.

wc는 counter 명령어로 -l 옵션으로 line count를 실행하여 file_exist()와 동일한 동작을 구현하였다.
https://man7.org/linux/man-pages/man1/wc.1.html

 

wc(1) - Linux manual page

wc(1) — Linux manual page WC(1) User Commands WC(1) NAME         top wc - print newline, word, and byte counts for each file SYNOPSIS         top wc [OPTION]... [FILE]... wc [OPTION]... --files0-from=F DESCRIPTION         top Print newline, w

man7.org

 

 

댓글