Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comm.software.webserver > #1245

Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe?

From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups de.comm.software.webserver
Subject Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe?
Date 2018-02-23 23:38 +0100
Organization PointedEars Software (PES)
Message-ID <3378191.kQq0lBPeGt@PointedEars.de> (permalink)
References (2 earlier) <AABaitALFo0AAItG.A1.flnews@s19.ybtra.de> <5370766.lOV4Wx5bFT@PointedEars.de> <AABajD98VQcAACqD.A1.flnews@s19.ybtra.de> <11034453.O9o76ZdvQC@PointedEars.de> <AABakIoAlM8AAEpl.A1.flnews@s19.ybtra.de>

Show all headers | View raw


Marcel Logen wrote:

> Thomas 'PointedEars' Lahn schrieb:
>>Marcel Logen wrote:
> 
>>[Zitat repariert]
> 
> Bei mir war da nichts kaputt, IMHO.

Die Markierung der Auslassung von Teilen meines Textes befand sich
auf einer anderen Zitatebene als mein Text; das ist nicht korrekt.
 
>>  DirectoryIndex index index.php /dirlist.php
>> 
>><http://httpd.apache.org/docs/2.4/mod/mod_dir.html#directoryindex>
>>
>>Da ich für meine Website schon immer so etwas machen wollte, habe ich aus
>>aktuellen Anlass angefangen, es zu basteln.  $DOCUMENT_ROOT/dirlist.php
>>könnte zum Beispiel so aussehen:
>>
>><!DOCTYPE html>
>><html>
>>    <head>
>>      <meta charset="UTF-8">
>>      <title>Contents of <?php
>>         chdir($_SERVER['DOCUMENT_ROOT'] . $_SERVER['SCRIPT_URL']);
> 
> Diese Zeile verstehe ich nicht.
> 
> Warum muß das directory gewechselt werden?

Gute Frage.  Das Arbeitsverzeichnis für ein DirectoryIndex-Script ist 
offenbar das Verzeichnis, in dem sich das Script befindet; hier also 
$_SERVER['DOCUMENT_ROOT'].  Das Verzeichnis muss zum betrachteten 
Verzeichnis gewechselt werden, damit der Verzeichnispfad nicht bei
jeder Dateioperation (scandir(…), is_dir(…) usw.) wiederholt werden muss.
 
> Und "SCRIPT_URL" finde ich auf
> <http://php.net/manual/en/reserved.variables.server.php>
> nicht, nur "SCRIPT_FILENAME" und "SCRIPT_NAME".

| $_SERVER is an array containing information such as headers, paths, and 
| script locations. The entries in this array are created by the web server. 
| There is no guarantee that every web server will provide any of these; 
| servers may omit some, or provide others not listed here. […]

$_SERVER['SCRIPT_URL'] ist also Apache 2.4.x-spezifisch, siehe auch 
phpinfo(INFO_VARIABLES).

> >Getestet mit Apache 2.4.23-4 und PHP 5.6.33+dfsg-0+deb8u1 (Apache-Modul) 
> >unter Devuan GNU+Linux Jessie 1.0.
> 
> Ich werde das jetzt wahrscheinlich doch mal testen,
> obwohl ich eigentlich eine solch 'komplexe' Lösung
> nicht im Sinn hatte.

Vielleicht lässt sich da auch was mit SSI machen, aber mir war das zu wenig 
flexibel und mit PHP kenne ich mich besser aus.

Inzwischen habe ich das Script weiterentwickelt; man kann das Ergebnis jetzt 
zum Beispiel unter <http://PointedEars.de/scripts/> sehen (Schluss mit 
diesen Verzeichnislistings aus dem 20./21. Jahrhundert!!1 ;-)).

Ein wesentlicher Optimierungsschritt war

  /* for Apache < 2.4 */
  $script_url = preg_replace('#[^/]*$#', '', $_SERVER['REQUEST_URI']);

  // …

  chdir($_SERVER['DOCUMENT_ROOT'] . $script_url);
  foreach (scandir('.') as $filename)
  {
    $is_parent = ($filename === '..');

    /* 
     * Do not list hidden files like .htaccess, but list parent directory
     * as Apache does
     */
    if (strpos($filename, '.') !== 0 || $is_parent)
    {
      // …
    }
  }

-- 
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.

Back to de.comm.software.webserver | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Marcel Logen <333200007110-0201@ybtra.de> - 2018-02-19 14:24 +0100
  Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-02-19 16:43 +0100
    Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Marcel Logen <333200007110-0201@ybtra.de> - 2018-02-20 16:32 +0100
      Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-02-20 17:50 +0100
        Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Marcel Logen <333200007110-0201@ybtra.de> - 2018-02-23 22:39 +0100
          Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-02-23 23:38 +0100
            Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Marcel Logen <333200007110-0201@ybtra.de> - 2018-02-24 11:20 +0100
              Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-02-24 13:07 +0100
                Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Marcel Logen <333200007110-0201@ybtra.de> - 2018-02-25 00:11 +0100
                Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Marcel Logen <333200007110-0201@ybtra.de> - 2018-02-26 00:07 +0100
                Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2018-02-26 02:06 +0100
                Re: [Apache] FancyIndexing mit bytegenauer Size-Angabe? abooonorrra753@gmail.com - 2019-05-01 05:08 -0700

csiph-web