2017-02-07 1 views
1

페이지로드시 헤더 이미지를 랜덤 화하는 아래의 PHP 코드가 있습니다.특정 디렉토리에 텍스트를 포함하는 특정 파일을 대상으로합니까?

이 모든 것이 훌륭하지만 이미지를 가져 오는 디렉토리에는 축소판 이미지와 큰 이미지가 포함 된 수백 개의 이미지 파일이 있습니다.

위의 코드를 변경하여 디렉토리 폴더를 대상으로하고 있지만 파일 이름에 "-header.jpg"라는 특정 텍스트가있는 이미지 파일 만 얻으려고합니다.

  1. doors.jpg
  2. windows.jpg
  3. 알루미늄 thumb.jpg
  4. 윈도우 header.jpg
  5. 온실 헤더 :

    디렉토리 폴더는 다음과 같은 파일이 포함되어 있습니다 .jpg

  6. tiled-thumb.jpg
  7. roof-header.jpg

내가 원하는 결과는 임의의 머리글 만 위의 목록에서 이미지 "4,5,7"을 출력합니다.

답변

0

$ entry가 파일 이름 인 경우 이름에 "-header"가 포함되어 있는지 확인할 수 있습니다.

while (false !== ($entry = readdir($handle))) { 
    if (strpos($entry, '-header') !== false) { 
    $pathToFile = $dir.$entry; 
    // follow with your code 
    } 
    } 
+0

답장을 보내 주셔서 감사합니다. 많이 고맙습니다 – Craig

+0

대단한 !! 또한 @Marcin Orlowski가 말했듯이, 작성한 코드는 폴더의 파일 수가 증가함에 따라 성능이 저하됩니다. – JoshulSharma

0

이 모든 것이 훌륭하지만 이미지를 가져 오는 디렉토리에는 축소판 이미지와 큰 이미지가 포함 된 수백 개의 이미지 파일이 있습니다.

위의 코드를 변경하여 디렉토리 폴더를 대상으로하고 있지만 파일 이름에 "-header.jpg"라는 특정 텍스트가있는 이미지 파일 만 얻으려고합니다.

이러한 JPG는 내가 생각한대로 자주 변경/추가/제거되지 않으므로 원하는 파일 이름이 모두 포함 된 정적 배열 (이미지 추가/제거시 업데이트 됨)을 만든 다음 무작위로 선택하면됩니다 그 배열로부터의 엔트리.

내가 원하는 결과는 임의의 머리글 만 위의 목록에서 이미지 "4,5,7"을 출력합니다.

당신은 glob()이 필요합니다.하지만 이것은 성능 저하로 인한 잘못된 접근입니다.

또한 현재의 코드는 폴더를 스캔 할뿐만 아니라 이미지 크기를 읽는 것처럼 보이기 때문에 더욱 고통 스럽습니다. 이것은 틀린 것입니다. 왜냐하면 당신이 원하는 이미지 만 필요하기 때문입니다.