| (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( ...
 |
17.07.07, 10:31
|
#1 (permalink)
|
Registriert seit: 03.07.07 Likes: 0 | 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");
$anzahlBilder= 0; $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/";
?> |
| |
17.07.07, 11:09
|
#2 (permalink)
|
Registriert seit: 04.10.05 Likes: 0 | 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 ^^ |
| | | |
| | HaBOT
| - Anzeige - |
| |
17.07.07, 11:09
|
#3 (permalink)
| | Member of Honour
Registriert seit: 02.10.01 Likes: 0 | 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. |
| |
17.07.07, 11:52
|
#4 (permalink)
| Themenstarter
Registriert seit: 03.07.07 Likes: 0 | 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 " | "; } if ( $ende < $maxWert ) { echo '<a href="' . $linkVor . '">weiter</a>'; } ?>
<br> <br>
<a href="info.php">Formatanalyse</a> </body> </html> |
| |
17.07.07, 12:01
|
#5 (permalink)
| | Moderator
Registriert seit: 14.02.06 Likes: 21 | 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 |
| |
17.07.07, 12:13
|
#6 (permalink)
| Themenstarter
Registriert seit: 03.07.07 Likes: 0 | 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* |
| |
17.07.07, 12:15
|
#7 (permalink)
| | Member of Honour
Registriert seit: 02.10.01 Likes: 0 | 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. |
| |
17.07.07, 12:50
|
#8 (permalink)
|
Registriert seit: 04.10.05 Likes: 0 | also ich hab meinen beitrag oben mal korrigiert... die funktion geht nun zu 100% ^^
viel spass damit |
| |
17.07.07, 15:21
|
#9 (permalink)
| Themenstarter
Registriert seit: 03.07.07 Likes: 0 | Danke an alle, die mir geholfen haben.
Ich habs komplett geschafft. ^^
Alles tut so wie es soll. |
| |
18.07.07, 10:55
|
#10 (permalink)
|
Registriert seit: 04.10.05 Likes: 0 | 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? |
| |
18.07.07, 12:43
|
#11 (permalink)
| | Senior Member
Registriert seit: 28.10.03 Likes: 110 | 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 |
| |
18.07.07, 14:49
|
#12 (permalink)
|
Registriert seit: 04.10.05 Likes: 0 | jo schon klar... aber gibbet dafür ne func? ^^ |
| |
18.07.07, 15:34
|
#13 (permalink)
| | Senior Member
Registriert seit: 28.10.03 Likes: 110 | 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 |
| |
18.07.07, 15:39
|
#14 (permalink)
|
Registriert seit: 04.10.05 Likes: 0 | hatte ich schon, aber ich hab nix gefunden. entweder bin ich zu doof oder mein english zu schlecht... obwohl ersteres unwahrscheinlich ist |
| |  | | |
| | | - Anzeige - |
| | [HaBo]
» Web, Network & Multimedia Palace
» (Web-) Design und webbasierte Sprachen
»
Verzeichnis auslesen - nur gif und jpg ausgeben.
| Themen-Optionen | | | | Ansicht | Linear-Darstellung |
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. HTML-Code ist aus. | | |
|