Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen (https://www.delphipraxis.net/50548-%5Bphp%5D-pfad-aus-externer-php-einem-img-tag-einbauen.html)

Äfan 29. Jul 2005 14:55

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
@Flocke: OK, das mit dem Header dings wegen dem Cache funktioniert :thumb:

@idontwantaname: OK jetzt geht der code, aber er gibt mir ne menge unverständliche zeichen, also er öffnet das bild als text. Aber ich brauch doch nur nen zufälligen pfad...

Flocke 29. Jul 2005 15:50

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Wenn du das mit Header("Location $url") machst, dann brauchst du die Hälfte von dem Skript nicht!
Code:
<?php
  $path = "bilder/";

  $list = array();
  $handle = opendir( $path );
  while (false !== ($file = readdir ($handle))) {
     if( $file !== "." && $file !== ".." ) $list[] = $file;
  }
  closedir($handle);

  $index = rand( 0 , count($list)-1 );

/* Die folgenden 4 Zeilen können weg
  $fp = fopen( $path.$list[$index] , "r" );
  $filepart = fread($fp, filesize($path.$list[$index]));
  print($filepart);
  fclose($fp); */

  Header("Location: " . $path . $list[$index]);
?>

Äfan 29. Jul 2005 22:04

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
So habe ich das auch gehabt, leider ne zeile zu viel :oops: :-D

Nochmal zurück zu dem, mit dem cache: Es geht jetzt auf einmal nicht mehr... es kommt jetzt immer der selbe banner, also auf der testseite mit dem img-tag. Ruf ich den script direkt auf, so zeigt er verschiedene an !? :o :shock:

mfg

Flocke 30. Jul 2005 09:43

Re: [PHP] Pfad aus externer PHP in einem IMG-Tag einbauen
 
Es kann (wie gesagt) sein, dass Firefox die Header-Angaben ignoriert, die das Cachen unterbinden sollen, wenn er eine Redirection findet (also einen "Location:"-Header).

Hier mal ein vollständiges Codebeispiel das funktioniert und das du nur noch an deine Bedürfnisse anpassen musst.
Code:
<?php

    // Suchpfade für Bilder, wichtig: KEIN Slash am Ende!
    $pathes = array(
        "bilder"
    );

    // Mögliche Bildtypen (reguläre Ausdrücke)
    $extensions = array(
        "jpe?g?"   => 'image/jpeg',
        "gif"      => 'image/gif',
        "png"      => 'image/png',
        "tiff?"    => 'image/tiff',
        "(bmp|dib)" => 'image/bmp'
    );

    // Dateityp bestimmen
    function getFileType($file)
    {
        global $extensions;

        foreach ($extensions as $ext => $type)
            if (eregi('\.'.$ext.'$', $file))
                return $type;
        return "";
    }

    // Alle Dateien einsammeln
    $files = array();
    foreach ($pathes as $path)
    {
        $dir = opendir($path);
        while ($file = readdir($dir))
            if (is_file("$path/$file") && getFileType($file))
                $files[] = "$path/$file";
        closedir($dir);
    }

    // Nicht cachen
    header('Expires: Mon, 14 Aug 1995 03:00:00 GMT');
    header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
    header('Cache-Control: no-store, no-cache, must-revalidate');
    header('Cache-Control: post-check=0, pre-check=0', FALSE);
    header('Pragma: no-cache');

    if (count($files))
    {
        // Zufällige Datei auswählen
        $file = $files[rand(0, count($files) - 1)];

        // Bild ausgeben
        header("Content-Type: " . getFileType($file));
        readfile($file, false);
    }
    else
        echo "<html>\n<body>\n<h1>Fehler</h1>\n

Keine Bilder gefunden</p>\n</body>\n</html>";

?>


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz