Edgar Ehritt: Header-Informationen

Beitrag lesen

Re:

...Nachdem ich aber die 'teaserrandom.php' in die 'index.php' eingebunden hatte, musste ich mit Erstaunen feststellen, dass 'teaserrandom.php' nicht einmal mehr die Bilder im eigenen Verzeichnis finden konnte. Hatte dafür das Verzeichnis einnmal mit $handler = opendir('.'); und testweise mit $handler = opendir(__DIR__); angegeben. Selbst der Cookie, der ja ursprünglich nur für das Verzeichnis 'media' gelten sollte, verlor seinen Sinn. Das gültige Verzeichnis für ihn war, nach dem include, nicht mehr '/media', sondern '/'. Also war meine Überlegung: Wenn alles nach dem include vom Hauptverzeichnis ausgeht, kann ich meine Struktur gleich so ändern:

/
|
|-- php
|    |
|    |- teaserrandom.php
|    - andere "PHP-Geschichten" (z.B. formmailer) | |-- media |    | |    |- 0.jpg |    |- 1.jpg |    |- 2.jpg |    - usw.
|
`- index.php

Hatte dann für opendir() folgendes verwendet: $handler = opendir($_SERVER['DOCUMENT_ROOT']. '/media');. So funktioniert es. Wobei mir Deine Ideen bezügl. der 'teaserrandom.php' (im gleichen Verzeichnis wie die Bilder) und des Cookies (nur für Verzeichnis '/media' gültig) absolut sympathisch sind.

Na dann machen wir jetzt mal Nägel mit Köpfen:

Ich hatte Dir ein völlig anderes Konzept, da ja Dein Lieblingswort Effizienz ist, vorgeschlagen, was jetzt umgesetzt wird. (Punkt) Vergiss include()!

Aus der index.php wird, soweit nicht andere Verarbeitungen mittels PHP vorzunehmen sind, ein ganz normals HTML-Dokument Namens index.xhtml. In dieser wird der Verweis im Objekt hart codiert:

    <object data="php/teaserrandom.php" type="image/svg+xml" id="footerbg">  
      <param name="src" value="php/teaserrandom.php" />  
    </object>

Wobei wir eh nur von JPEG-Bildern reden, also reicht ein einfaches <img src="php/teaserrandom.php" alt="Zufallsbild"/>.

teaserrandom.php könnte nunmehr seine Kekse fürs Verzeichnis /php verteilen, was aber genauso effizient wie auch nebensächlich ist. Dein o. g. Gliederung des Webs ist nicht auf diese spezifische Aufgabe, cookies effizient zu setzen, ausgerichtet. (Das ließe sich bspw. mit mod_rewrite gerade rücken. Aber alles zu seiner Zeit.)
 Seinerseits wird in teaserrandom.php das Verzeichnis /media dann so ausgelesen und die Bilder direkt ausgeben:

# Header vorangesetzt  
header('Content-Type: image/jpeg');  
  
$handler=opendir('../media');  
  
while (($dateien = readdir($handler))!==false) {  
    if(in_array(substr($dateien,-4),array('.jpg','jpeg','.jpe'))){  
        $array[] = $dateien;  
    }  
}  
closedir($handler);  
  
# Weiter geht es dann mit  
  
$zufall=array_rand($auswahl, 1);  
  
if(!isset($_COOKIE['teaser'])){  
    setcookie('teaser', $zufall, 0);  
    $file='../media/'.$auswahl[$zufall];  
}  
else{  
    $file='../media/'.$auswahl[$_COOKIE['teaser']];  
}  
# Größe noch dem Browser mitgeteilt  
header('Content-Length: '.filesize($file));  
# Inhalt ausgeben  
readfile($file);

Mehr ist es letztendlich gar nicht. Wenn Du es soweit zum laufen gebracht hast, können wir uns dann nochmals um die Effizienz der Kekse kümmern.

Gruß aus Berlin!
eddi

0 72

Regulärer Ausdruck

AirMax
  • php
  1. 0
    Beat
    1. 0
      AirMax
      1. 0
        Der Martin
        1. 0
          AirMax
          1. 0

            Webserver MacOsX aktivieren

            pat
            • software
  2. 1
    suit
    1. 0
      AirMax
      1. 0

        Warum auch ein völlig anderes Thema ein Doppelposting sein kann.

        suit
        • meinung
        1. 0
          AirMax
          1. 0
            suit
          2. 1

            $tänze = array_count_values($hochzeiten);

            ChrisB
            1. -1
              AirMax
              1. 3
                Der Martin
            2. 0
              AirMax
    2. 0
      AirMax
      1. 0
        suit
        1. 0
          suit
          1. 0
            AirMax
            1. 0
              suit
              1. 0
                AirMax
                1. 0
                  AirMax
                  1. 0
                    suit
                    1. 0
                      AirMax
                      1. 0
                        suit
                        1. 0
                          AirMax
                          1. 0
                            AirMax
                            1. 0
                              suit
                              1. 0
                                AirMax
                                1. 0
                                  AirMax
                                  1. 0
                                    suit
                                    1. 0
                                      AirMax
                                    2. 0
                                      AirMax
                                      1. 0
                                        suit
                                        1. 0
                                          AirMax
                                          1. 0
                                            AirMax
                                            1. 0

                                              zufälligen Eintrag aus Array wählen

                                              suit
                                    3. 0
                                      Airmax
                                      1. 0

                                        ordentliches Einrücken von Code

                                        suit
                                        • programmiertechnik
                                    4. 0

                                      Header-Informationen

                                      AirMax
                                      • http
                                      1. 0
                                        AirMax
                                      2. 0
                                        Edgar Ehritt
                                        1. 0
                                          AirMax
                                          1. 0
                                            Edgar Ehritt
                                            1. 0
                                              AirMax
                                              1. 0
                                                Edgar Ehritt
                                                • programmiertechnik
                                                1. 0
                                                  AirMax
                                                  1. 0
                                                    AirMax
                                                    1. 0
                                                      Edgar Ehritt
                                                      1. 0
                                                        AirMax
                                                        1. 0
                                                          Edgar Ehritt
                                                          1. 0
                                                            AirMax
                                                            1. 0
                                                              Edgar Ehritt
                                                              • php
                                                              1. 0
                                                                AirMax
                                                                1. 0
                                                                  Edgar Ehritt
                                                                  1. 0
                                                                    AirMax
                                                                    1. 0
                                                                      Edgar Ehritt
                                                                      1. 0
                                                                        AirMax
                                            2. 0
                                              AirMax
                                              1. 0
                                                Edgar Ehritt
                                                • php
                                                1. 0
                                                  AirMax
                                                  1. 0
                                                    Edgar Ehritt
                                                    1. 0
                                                      AirMax
                                                      1. 0
                                                        Edgar Ehritt
                                                        1. 0
                                                          AirMax
                                                2. 0
                                                  AirMax
    3. 0
      AirMax
      1. 0
        suit
        1. 0
          AirMax
          1. 0
            suit
            1. 0
              AirMax
              1. 0
                suit