2010-08-23 4 views
0

이미지 파일 드롭 박스 디렉토리가 수집 한 변종 수 :목록 이미지 파일 PHP를 사용하여 - 예를 들어, 및 대소 문자를 구분 레터 케이스로

Bonsai.jpg, BONSAI.jpg, Bonsai.JPG, bonsai.jpg 

I가 CodeIgniter의를 사용하여 웹 응용 프로그램을 만드는 중이라서 원격 서버에서 이러한 문서를 관리하십시오. 이 그래픽

파일을 표시하는

  1. file_exists() 또는 is_file()가 을 확인하기 위해 파일의 존재
  2. HTML의 img 태그를 사용하는 것을 의미하지만,이 두 가지 도구를 처음 사용 대/소문자를 불문하고 찾을 수 있습니다. 이 문제를 어떻게 처리 할 수 ​​있습니까?

    는 (나는이 similar question as this을 발견, 대신 PHP의 델파이.)

+0

어떤 OS를 사용하고 계십니까? –

+0

백 스토리 : 부적절한 계획과 웹 서버에서 파일을 관리하는 방법에 대한 이해가 부족하기 때문에 문서 저장소는 엉망입니다. (A) 파일 이름 지정 표준 (예 : 모두 소문자) 설정, (B) 중복 확인 및 해결, (C) 파일 이름을 새로운 표준으로 변환해야하며, (D) 가이드 라인을 적용하기 위해 앱을 개발해야합니다. 그리고 이것들이 많이 있습니다. 필자는 데이터 정규화에 익숙하지만 복잡한 버전입니다. 나는 (B)와 (C)의 모든 것을 다운로드 할 계획이며, 나는 무대에서 일할 수있을 것이다. – Smandoli

+1

모든 파일 이름을 배열에 넣고 중복을 식별하고 이름에 _1을 추가하는 스크립트를 쉽게 작성할 수 있습니다. 이제는 고유 한 파일 이름을가집니다. 그런 다음 모두를 소문자로 변환합니다.기존 파일과 새 파일의 경우 파일 이름을 32 자 문자열로 암호화합니다. 이처럼 파일 이름을 일괄 처리하는 것은 실제로 매우 쉽습니다. 그냥 모든 파일을 백업 해두면 잘못 될 가능성이 거의 없습니다. – stef

답변

1

그러나이 두 가지 도구에 관계없이 경우

그들은 확실히해야

, 그들은 찾은 첫 번째 일치를 사용 - 적어도 리눅스의 기본 파일 시스템과 같이 대소 문자를 구분하는 파일 시스템은 아닙니다 (여전히 ext2라고 부릅니까?). 이 4 개의 파일을 같은 디렉토리의 IMO에 두는 것이 의문 스럽지만, file_exists()도 웹 자원을 제공해도 사용자가 설명하는 동작을 나타내지 않아야합니다.

Windows와 다릅니다. FAT와 NTFS는 대소 문자를 구분하지 않습니다. 귀하의 예제에서 언급 한 네 개의 파일 중 하나만 같은 디렉토리에 존재할 수 있습니다.

+1

나는 그것이 ext4 (http://en.wikipedia.org/wiki/Ext4)라고 생각합니다 – Gordon

+0

'... 그것은 의문의 연습입니다 그 4 개의 파일을 가지고 ... '그래, 물론! 그 아이디어는 시작부터 정리하는 것입니다. – Smandoli

+0

좋아요, 이제 더 명확 해졌습니다. 내 램프 설정은 대소 문자를 구분하여 작동합니다. 내 WAMP 설정하지 않습니다 - 당신이 말한대로. – Smandoli

1

이미지를 허용 할 때 파일 이름을 변경하면 파일 업로드 클래스의 CI 암호화 파일 이름 옵션을 사용하여 이러한 이름을 바꿀 수 있습니다. 그렇지 않으면 커다란 두통이 생길 수 있습니다.

편집 : 당신은 쉽게 배열에있는 모든 파일 이름을두고하는 스크립트를 작성 중복을 확인하고 자신의 이름 _1을 추가 할 수 있습니다

아래 OP에 내 댓글을 추가했습니다. 이제는 고유 한 파일 이름을가집니다. 그런 다음 모두를 소문자로 변환합니다. 기존 파일과 새 파일의 경우 파일 이름을 32 자 문자열로 암호화합니다. 이처럼 파일 이름을 일괄 처리하는 것은 실제로 매우 쉽습니다. 그냥 모든 파일을 백업 해두면 잘못 될 가능성이 거의 없습니다.

CodeIgniter의이 같은 몇 가지 유용한 기능을 가진 파일 배열에 지정된 디렉토리에있는 모든 파일을 저장 도우미의 get_filenames()하고 파일 이름을 암호화 할 보안 도우미의 dohash(). 향후 업로드를 위해 에 대한 설정은 TRUE

+0

OP에 'The Back Story'덧글을보세요. 여기에 귀하의 팁은 매우 유용 할 수 있습니다. – Smandoli

+0

+1 이것은 매우 유용한 정보 집합입니다. 그의 대답이 내 질문에 직접적 이었기 때문에 Pekka는 나의 "동의"를 얻습니다. (지금 오직 한 사람 만 질문 할 질문을 알고 있다면 ...) :-) – Smandoli