2013-10-12 3 views
0

내 웹 사이트에 약간의 추가 메뉴를 만들고 싶습니다. 디렉토리에있는 파일의 이름을 가져 와서 메뉴에 넣을 수 있습니까?디렉토리에있는 파일의 이름으로 메뉴 만들기

그래서 파일이있는 디렉토리가 있다면 : facebook.php; twitter.php; stackoverflow.html; 이 같은 메뉴를 얻을 것이다 :

  • 트위터
  • 유래
  • 그리고 나는 그가받는 파일이 어떤 종류의 것을 선택하는 것이 좋습니다 것이 가능하다면

    • 페이스 북. 그래서 나는 .css 파일이 아니라 .php와 .html 파일의 이름을 얻길 바란다.

      누군가가이 문제를 해결할 수 있습니까?

    +0

    이 질문은 전에 질문되었습니다 - http://stackoverflow.com/questions/8541180/best-way-to-get-files-from-a-dir-filtered-by-certain-extension-in-php – Terry

    +0

    http://php.net/manual/en/function.scandir.php – ultranaut

    답변

    3

    나는) (글로브를 좋아한다 :

    foreach(glob("$dir/{*.php,*.html}", GLOB_BRACE) as $file) { 
        //whatever 
    } 
    

    또는

    $files = glob("$dir/{*.php,*.html}", GLOB_BRACE); //then use $files wherever 
    

    당신은 확장자없이 그걸 얻기 위해 단지 파일 이름 PATHINFO_FILENAME를 얻을 수 PATHINFO_BASENAME와의 PathInfo()를 사용할 수 있습니다.

    +0

    이제 파일 이름을 얻는 방법을 알고 있지만 다른 파일에 각 파일 이름을 넣을 수있는 방법을 알고 있습니까? 나는 PHP로 정말 좋지 않지만 그것을 배우고 싶다. –

    +1

    @Moreno__R : 첫 번째 예에서는 // 무엇이든을'echo "

  • ".pathinfo ($ file, PATHINFO_FILENAME)로 바꿉니다. "
  • ";' – AbraCadaver

    0

    )는 (현재 파일이 is_dir있는 디렉토리입니다 확인 루프에서 scandir() 방법

    을보십시오. 그런 다음 [dirname]/[dirname.php]을 사용하여 경로를 가져올 수 있습니다. 존재하는 파일이 있는지 확인한 다음 링크를 표시 할 수 있습니다.

    $files = scandir('menus'); 
    $links = array(); 
    foreach ($files as $file) { 
        if ($file == "." || $file == "..") 
         continue; 
    
        if (is_dir($file)) { 
         $menuFile = "./menus/$file/$file.php"; 
         if (is_file($menuFile)) { 
         $links[$file] = $menuFile; 
         } 
        } 
    } 
    
    //display the links 
    
    관련 문제