Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Verzeichnis auslesen - nur gif und jpg ausgeben.

Diskussion: Verzeichnis auslesen - nur gif und jpg ausgeben. im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Es werden mir immer noch alle dateien und verzeichnisse angezeigt.. net nur gifs und jpg. =( PHP-Code: <?php  include( ...

Antwort
Alt 17.07.07, 10:31   #1 (permalink)
 
Registriert seit: 03.07.07
Sindira Leistung: Facit NTK
Likes: 0
Standard Verzeichnis auslesen - nur gif und jpg ausgeben.

Anzeige

Es werden mir immer noch alle dateien und verzeichnisse angezeigt.. net nur gifs und jpg. =(

PHP-Code:
<?php 


include("bild.inc.php"); 


$anzahlBilder0
$liste = array();
$verzeichnis opendir($bild_verzeichnis);
    while(
$dateiname readdir($verzeichnis)){
     
$liste[] = $dateiname;
    }

    if (
is_dir($bild_verzeichnis)) {
        
$liste scandir($bild_verzeichnis);
    }

    for (
$i=0$i<count($liste); $i++) {
        if (!
is_dir($bild_verzeichnis $dateiname[$i])) {
            
$letzterPunkt strrpos($dateiname[$i],".");
        
$endung substr($dateiname[$i],$letzterPunkt);
        
$allowedTypes = array(".gif",".jpg");
        if ( 
in_array($endung,$allowedTypes) ) {
                
$anzahlBilder++;
            }

    }
}
closedir($verzeichnis);
?>

<html>
<head>
<title>Bildliste</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<h1>Bilder auflisten</h1>
<table border="1" cellpadding="5">

<?php
for($i=0;$i<count($liste);$i++){
    
$dateiname $liste[$i];

    echo 
'<tr>';
    echo 
'<td>'.($i+1).'</td>';
    echo 
'<td>'.$dateiname.'</td>';
    echo 
'</tr>';

}
?>

</table>

<br>
<br>
<a href="info.php">Formatanalyse</a>
</body>
</html>


bild.inc.php
PHP-Code:
<?php

$bild_verzeichnis 
"images/";

?>
Sindira ist offline   Mit Zitat antworten
Alt 17.07.07, 11:09   #2 (permalink)
 
Registriert seit: 04.10.05
bLaCk-DrAg0n Leistung: Facit NTK
bLaCk-DrAg0n eine Nachricht über ICQ schicken
Likes: 0
Standard

is nur ne beispiel funktion...
anwendung -> "r_dir('pfad/zu/images');"
die func gibt dann alle dateien in dem ordner und allen unterordnern aus.
wenn du nur die dateien aus dem verzeichnis willst entferne:
PHP-Code:
else
{
r_dir($path "/" $file);

PHP-Code:
function r_dir($path)
{
    
$dir=opendir ($path);
    while (
$file=readdir($dir))
    {
        if (
$file != "." && $file != "..")
        {
            if (!
is_dir($path "/" $file))
            {
                
$p '/^[a-z0-9!#$%&*+-=?^_`{|}~]+(gif|jpg|jpeg|png)$/ix';
                if (!
preg_match($p$file))
                {
                    echo 
'kein bild: ';
                }
                echo(
$path "/" $file)."<br>";
            }
            else
            {
                
r_dir($path "/" $file);
            }
        }
    }
    
closedir($dir);

jedoch bin ich mir grade nich 100% sicher ob das pregmatch auch 100% geht ^^
bLaCk-DrAg0n ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 17.07.07, 11:09   #3 (permalink)
Member of Honour
 
Registriert seit: 02.10.01
Indi Leistung: Z3
Likes: 0
Standard

wie wär's mit ...
while($file=readdir($handle))
{
if (!is_dir($file) && (strpos($file,".jpg") || strpos($file,".gif"))
echo $file . "\n";
}

Du prüfst ja mit ...

if ( in_array($endung,$allowedTypes) ) {
$anzahlBilder++;

nur die Endung und inkrementierst die Anzahl der Bilder. Da fehlt in der if-schleife allerdings das speichern des zutreffenden filenames.
Indi ist offline   Mit Zitat antworten
Alt 17.07.07, 11:52   #4 (permalink)
Themenstarter
 
Registriert seit: 03.07.07
Sindira Leistung: Facit NTK
Likes: 0
Standard

Hab nun noch was dazu getan aber auch das tut nicht...
es sollen 10 bilder angezeigt werden. bzw. Die Namen dazu.
und dann per weiter soll man auf die zweite Seite kommen.

Aber auch das tut nicht.

Und mein erstes Prob hab ich auch noch net wirklich gelöst.. =(

Aktueller Stand ist:
PHP-Code:
<?php include("bild.inc.php"); 

$liste = array();
$anzahlDateien 0;
$anzahlBilder 0;
$verzeichnis opendir($bild_verzeichnis);
while(
$dateiname readdir($verzeichnis)){
     
$liste[] = $dateiname;
    
             for (
$i=0$i<count($liste); $i++) {
                if (!
is_dir($bild_verzeichnis $liste[$i])) {
                
$anzahlDateien++;
            
                
$letzterPunkt strrpos($liste[$i],".");
                
$dateiname substr($liste[$i],0,$letzterPunkt);
                
$endung substr($liste[$i],$letzterPunkt);
                
$allowedTypes = array(".gif",".jpg");
        
        
        if ( 
in_array($endung,$allowedTypes) ) {
            
$anzahlBilder++;
            
$bilder[] = $bild_verzeichnis $liste[$i];
                    }
    }
}

}



closedir($verzeichnis);
?>

<html>
<head>
<title>Bildliste</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<h1>Bilder auflisten</h1>
<table border="1" cellpadding="5">

<?php
for($i=0;$i<count($liste);$i++){
    
$dateiname $liste[$i];

    echo 
'<tr>';
    echo 
'<td>'.($i+1).'</td>';
    echo 
'<td>'.$dateiname.'</td>';
    echo 
'</tr>';

}
?>

</table>
<?php 

$minWert 
32;
$maxWert 127;
$laenge 10;

$start = isset($_GET['start']) ? $_GET['start'] : $minWert;

$start max($start,$minWert);

$start min($start,$maxWert);

$ende $start $laenge;
$ende min($ende,$maxWert);

$linkVor $_SERVER['PHP_SELF'] . "?start=" $ende;
$linkZurueck $_SERVER['PHP_SELF'] . "?start=" . ($start $laenge);


    if ( 
$start $minWert ) { 
        echo 
'<a href="' $linkZurueck '">zurück</a>';
    } 
    if ( (
$start $minWert) && ($ende $maxWert) ) {
        echo 
"&nbsp;|&nbsp;";
    }
    if ( 
$ende $maxWert ) { 
        echo 
'<a href="' $linkVor '">weiter</a>';
    }
?>

<br>
<br>

<a href="info.php">Formatanalyse</a>
</body>
</html>
Sindira ist offline   Mit Zitat antworten
Alt 17.07.07, 12:01   #5 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Standard

Mmh, schau dir mal die glob()-Funktion an, mit der bekommst du das ohne viel Gewurstel auf dem Dateisystem mit einer Handvoll Codezeilen hin.
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 17.07.07, 12:13   #6 (permalink)
Themenstarter
 
Registriert seit: 03.07.07
Sindira Leistung: Facit NTK
Likes: 0
Standard

Das tolle bei der Sache ist dass der Dozent auch ein Verzeichnis mit nem Namen
"verzeichnis.jpg" in das Verzeichnis zu den Bildern hat.

Nach ner endung .jpg zu suchen macht so ziemlich gar keinen Sinn.. *krise krieg*
Sindira ist offline   Mit Zitat antworten
Alt 17.07.07, 12:15   #7 (permalink)
Member of Honour
 
Registriert seit: 02.10.01
Indi Leistung: Z3
Likes: 0
Standard

Code:
while($dateiname = readdir($verzeichnis)){
     $liste[] = $dateiname;
    
             for ($i=0; $i<count($liste); $i++) {
Warum die for-schleife innerhalb der while? Das macht keinen Sinn. Außerdem speicherst du in $liste immer noch ALLE DATEINAMEN!!! (oben schon erwähnt)

Zitat:
Nach ner endung .jpg zu suchen macht so ziemlich gar keinen Sinn.. *krise krieg*
Doch macht schon Sinn, nur muss man eben prüfen, ob es sich um ein Verzeichnis handelt oder nicht.
Indi ist offline   Mit Zitat antworten
Alt 17.07.07, 12:50   #8 (permalink)
 
Registriert seit: 04.10.05
bLaCk-DrAg0n Leistung: Facit NTK
bLaCk-DrAg0n eine Nachricht über ICQ schicken
Likes: 0
Standard

also ich hab meinen beitrag oben mal korrigiert... die funktion geht nun zu 100% ^^
viel spass damit
bLaCk-DrAg0n ist offline   Mit Zitat antworten
Alt 17.07.07, 15:21   #9 (permalink)
Themenstarter
 
Registriert seit: 03.07.07
Sindira Leistung: Facit NTK
Likes: 0
Standard

Danke an alle, die mir geholfen haben.

Ich habs komplett geschafft. ^^

Alles tut so wie es soll.
Sindira ist offline   Mit Zitat antworten
Alt 18.07.07, 10:55   #10 (permalink)
 
Registriert seit: 04.10.05
bLaCk-DrAg0n Leistung: Facit NTK
bLaCk-DrAg0n eine Nachricht über ICQ schicken
Likes: 0
Standard

mh...
mich persönlich würde jetz noch was recht interessantes interessieren... oO
wie kann man eigentlich eine datei (hier: bild) auf seine echtheit überprüfen?
wir haben ja hier eifach nur dateien mit der !endung! gif/jpg geholt...
wie kann man denn prüfen ob es sich wirklich um eine bilddatei handelt?

in der programmierung muss man ja immer vom größten DAU ausgehen, somit bestände ja auch die möglichkeit das ein benutzer eine datei "textinhalt.gif" nennt obwohl text drin ist (auch wenns jetz unwahrscheinlich klingt ^^).

wie kann man also die "echtheit" einer datei überprüfen?
bLaCk-DrAg0n ist offline   Mit Zitat antworten
Alt 18.07.07, 12:43   #11 (permalink)
Senior Member
 
Benutzerbild von Chakky
 
Registriert seit: 28.10.03
Chakky Leistung: 8086
Chakky eine Nachricht über ICQ schicken
Likes: 110
Standard

Zitat:
Original von bLaCk-DrAg0n
mh...
mich persönlich würde jetz noch was recht interessantes interessieren... oO
wie kann man eigentlich eine datei (hier: bild) auf seine echtheit überprüfen?
wir haben ja hier eifach nur dateien mit der !endung! gif/jpg geholt...
wie kann man denn prüfen ob es sich wirklich um eine bilddatei handelt?

in der programmierung muss man ja immer vom größten DAU ausgehen, somit bestände ja auch die möglichkeit das ein benutzer eine datei "textinhalt.gif" nennt obwohl text drin ist (auch wenns jetz unwahrscheinlich klingt ^^).

wie kann man also die "echtheit" einer datei überprüfen?
ähm am file header?
__________________
cu
Chakky

we are dreaming in digital
we are living in realtime
we are thinking in binary
we are talking in IP
welcome to our world
Chakky ist offline   Mit Zitat antworten
Alt 18.07.07, 14:49   #12 (permalink)
 
Registriert seit: 04.10.05
bLaCk-DrAg0n Leistung: Facit NTK
bLaCk-DrAg0n eine Nachricht über ICQ schicken
Likes: 0
Standard

jo schon klar... aber gibbet dafür ne func? ^^
bLaCk-DrAg0n ist offline   Mit Zitat antworten
Alt 18.07.07, 15:34   #13 (permalink)
Senior Member
 
Benutzerbild von Chakky
 
Registriert seit: 28.10.03
Chakky Leistung: 8086
Chakky eine Nachricht über ICQ schicken
Likes: 110
Standard

mmhz schau mal hie rnach:

http://php.net/image
__________________
cu
Chakky

we are dreaming in digital
we are living in realtime
we are thinking in binary
we are talking in IP
welcome to our world
Chakky ist offline   Mit Zitat antworten
Alt 18.07.07, 15:39   #14 (permalink)
 
Registriert seit: 04.10.05
bLaCk-DrAg0n Leistung: Facit NTK
bLaCk-DrAg0n eine Nachricht über ICQ schicken
Likes: 0
Standard

hatte ich schon, aber ich hab nix gefunden. entweder bin ich zu doof oder mein english zu schlecht... obwohl ersteres unwahrscheinlich ist
bLaCk-DrAg0n ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Verzeichnis auslesen - nur gif und jpg ausgeben.
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
%-Zeichen in Verzeichnis Name bei Apache .tails Internet Allgemein 2 01.04.07 04:09
IP Verzeichnis der Server stone.dr Network · LAN, WAN, Firewalls 2 05.09.05 22:15
Verzeichnis per ftp löschen belgier Internet Allgemein 8 20.06.05 19:23
Verzeichnis auslesen, Beschreibung für Bilder BuzzT (Web-) Design und webbasierte Sprachen 3 08.04.05 18:36
auf Verzeichnis zugreifen blanc Linux/UNIX 4 04.09.03 21:36


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61