SELECT * FROM Vzakladke.net

Статьи об автоматизации и программировании

Сканирование файлов с учетом кириллицы на PHP

 

 

В начале всего создадим файл .htaccess если он отсутсвует или допишем его следующими строками:

AddDefaultCharset windows-1251
AddCharset windows-1251 *
<IfModule mod_charset.c>
CharsetSourceEnc windows-1251
CharsetDefault windows-1251
</IfModule>

Что гарантирует нам правильную работу с шрифтом.

Дальше получаем нашу ссылку:

   $uri = urldecode(mb_substr($_SERVER["REQUEST_URI"], 0, -1));

 

Пишем функцию:

function treeList($path = "/") {
  $prefix = ($path == "") ? $_SERVER['DOCUMENT_ROOT'] : "";
  $return = preg_replace("#(.*)/(.*)$#u","\$1",$path);
  echo ' <ul> ';
  echo ' <li><a href="javascript:history.go(-1);'.$return.'">[...назад...]</a></li> ';
  foreach (glob($_SERVER['DOCUMENT_ROOT']."$path/*") as $item) {
    $isdir = (is_dir($item)) ? true : false;
    $item = str_replace(array($_SERVER['DOCUMENT_ROOT'],"//"),array("","/"),$item);
      $item = iconv("utf-8", "windows-1251", $item);
    if ($isdir) echo ' <li><b><a href="'.$item.'">'.$item.'</a></b></li> ';
     else if(strpos($item,'index.php')===false) echo ' <li><a href="'.$item.'">'.$item.'</a></li> ';
    }
  echo ' </ul> ';
  }

 

Внутри функции мы опять же гарантируем отображением нужного нам шрифта с помощью iconv.

А вызов самой функции сканирования происходит так: treeList("/".$uri);

В целом, созданную нами функцию можно сделать рекурсивной, чтобы она проходила по всем вложенным папкам начиная суказанного ей уровня, например как то так:

if ($isdir) {
 echo ' <li><b><a href="'.$item.'">'.$item.'</a></b></li> ';
 treeList("/".$uri);
}

 

 

Дата публикации: 2015-10-02 14:15:09

PHP

0

Отзывы:

Ваше имя:

Ваш e-mail (необязательно):

Сообщение:

Captcha