2014-06-13 3 views
1

검색 양식과 일치하는 파일 이름의 디렉토리 (업로드)를 검색하려고합니다.PHP 검색 필드 - 파일을 통한 문자열 검색

내 웹 사이트의 검색 필드에 'Bach'라는 단어를 입력합니다. 그런 다음 스크립트에서 디렉토리의 모든 파일을 검색하고 'bach'라는 단어가 들어있는 파일을 모두 표시합니다.

이것은 내가 기대했던 코드 중 하나입니다. 나는 시각적 인 실수를 볼 수없고 당신이 나를 도울 수 있는지 궁금해하고있었습니다.

현재 검색 결과가 없습니다.

if(isset($searchvalue)) 
{ 
    $dir = opendir('upload/'); 
    while ($read = readdir($dir)) 
    { 
     if ($read!='.' && $read!='..') 
     { 
      if (stristr($searchvalue,$read)) //case insensitive 
      { 
       echo '<p><a href="upload/'.$read.'">'.$read.'</a></p>'; 
      } 
     } 
    } 
    closedir($dir); 
} 
+0

무엇이 잘못되었는지 언급하지 않았습니다. 오류? 무슨 일이 일어나고 싶지 않아? –

+0

죄송합니다, 제 질문을 수정했습니다. 기본적으로 결과와 일치하지 않습니다. 의미, 파일을 검색하려고 할 때 결과가 없습니다. – user3577025

+0

패턴 일치를 제공하는 [glob 함수] (http://www.php.net/glob)도 있습니다. –

답변

0
if (isset($searchvalue)) { 
    $dir = opendir('upload/'); 
    while ($read = readdir($dir)) { 
     if ($read != '.' && $read != '..') { 
      if (stristr($read, $searchvalue)) //case insensitive 
      { 
       echo '<p><a href="upload/' . $read . '">' . $read . '</a></p>'; 
      } 
     } 
    } 
    closedir($dir); 
} 

수정을 :

이 시도 따옴표를 제거하고 주위 stristr()의 매개 변수를 설정합니다. 검색 입력에서 파일 이름을 검색하고있었습니다. 그러나 파일 이름에서 검색 입력을 검색해야합니다. 그렇지 않으면 "something.txt"가 "something"에 있는지 확인합니다. "something"=>을 입력하면 FALSE이 표시됩니다.

+0

환상적입니다! 이것이 해결책입니다. 고마워요! – user3577025

1

stristr 호출에서 인수를 인용해서는 안됩니다.

if (stristr($searchvalue,$read)) 
+0

따옴표를 제거하려고 시도했지만 불행히도 여전히 작동하지 않습니다. – user3577025