Как я могу скрыть расширения файлов в PHP? - PullRequest
0 голосов
/ 02 апреля 2009

Я использую плагин jquery jqueryFileTree с коннектором PHP (слегка измененный, чтобы дать каталогам отдельные классы) для отображения содержимого каталога. Однако я хочу скрыть все расширения файлов. Кто-нибудь делал что-то подобное? Я могу придумать один или два способа его реализации, но они кажутся слишком сложными ...

Есть ли относительно простой способ сделать это в PHP?

Ответы [ 2 ]

4 голосов
/ 02 апреля 2009

Глядя на код коннектора PHP, вы хотите заменить это:

// All files
foreach( $files as $file ) {
    if( file_exists($root . $_POST['dir'] . $file) && $file != '.' && $file != '..' && !is_dir($root . $_POST['dir'] . $file) ) {
        $ext = preg_replace('/^.*\./', '', $file);
        echo "<li class=\"file ext_$ext\"><a href=\"#\" rel=\"" . htmlentities($_POST['dir'] . $file) . "\">" . htmlentities($file) . "</a></li>";
    }
}

С этим:

// All files
foreach( $files as $file ) {
    if( file_exists($root . $_POST['dir'] . $file) && $file != '.' && $file != '..' && !is_dir($root . $_POST['dir'] . $file) ) {
        $parts = explode(".", $file);
        $ext = array_pop($parts);
        $name = implode(".", $parts);
        echo "<li class=\"file ext_$ext\"><a href=\"#\" rel=\"" . htmlentities($_POST['dir'] . $file) . "\">" . htmlentities($name) . "</a></li>";
    }
}

Обратите внимание, что код в этом скрипте соединителя не так уж безопасен, и вы должны предпринять шаги, чтобы пользователи не злоупотребляли им, чтобы получить доступ к чувствительным папкам.

0 голосов
/ 03 апреля 2009

Посмотрите на directoryIterator class и pathinfo () function.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...