2012-08-10 6 views
0

내가 서버에있는 폴더에서 일부 이미지가 있습니다 PHP에서 알려진 ID를 기반으로 디렉토리에서 파일을 찾는 방법은 무엇입니까?

/9_123456.jpg 
/10_123457.jpg 
/21_123458.jpg 
/14_123459.jpg 
... 

도 나는 그 파일 이름을 유지하는 데이터베이스가 있습니다.

id file 
9  9_123456.jpg 
10 10_123457.jpg 
21 21_123458.jpg 
14 14_123459.jpg 

이 시점에서 내가 뭘하는지는 사진 이름을 쿼리하고 웹 페이지에 표시하는 것입니다.

문제는 내가 수백만 장의 사진을 가지고 있으며 때때로 그 이미지가 다른 테이블과 조인해야만하는 경우에 다시 돌아올 때까지 시간이 걸리는 경우입니다.

look in that directory and find a pic that begins with 9, or 10 , or whatever, because i know that number. some kind of a regexp. 

내 질문이 방법은 빠른 쿼리보다 더 될 것입니다 :

는 데이터베이스 테이블을 무시하고 나에게 이런 식으로 그림을 가져 PHP 함수를 작성하기 위해 내가 무엇을 생각하고 무엇입니까? 그 파일을 어떻게 찾을 수 있을까요?

희망 나는 나 자신을 충분히 분명하게 만들었습니다. glob 있습니다

thnaks

+0

또한 glob() 함수가 있습니다. – mario

+0

어떻게 든 오른쪽 열에 적절한 색인을 사용하면 빠른 조회를 제공 할 것입니다. 그것은 데이터베이스가 올바르게 만들어진 것입니다. – stUrb

답변

3

는 당신을 도울 수 있습니다 : glob($id.'_*.jpg');

성능은 시스템에 따라 달라집니다보십시오. 매우 일반적으로 말하기 : Windows에서는 YMMV (* 의미론이 작성된 방식으로 인해)가 느려질 것입니다. 나는 Linux와 ReiserFS에서 훌륭한 결과를 얻었으며 Linux와 ext *에서 매우 유용한 결과를 얻었습니다. 많은 이미지에 액세스하는 경우, 캐시에 디렉토리가 있습니다. 마음이 있지만, 그 기억력은 이것에 대한 성분입니다!

+0

이 방법은 쿼리보다 빠릅니까? – Patrioticcow

+0

... 답변으로 이동했습니다. –

+0

"이 방법은 쿼리보다 빠릅니까?" 실제로 알 수있는 유일한 방법은 직접 측정하는 것입니다. –