php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Thema geschlossen
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.11.2011, 11:08  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Stimmt... Dann macht man halt'n Punkt vor.
Das war auch nur ein Vorschlag, wer will kann die RegEx gegen die Variante mit pathinfo oder auch exif_imagetype austauschen...
Muss jeder selber wissen...


Beitrag editiert:
Dann mal mit pathinfo, um Euch ne Freude zu machen
PHP-Code:
function readRecursive$folder, &$contentArray ) {
  
$contentArray['folder'][] = $folder;
  
$allowedExtensions = array('jpg''png''gif');
  
  foreach( 
glob($folder '/*'GLOB_NOSORT) as $f ) {
    if( 
is_dir($f) ) readRecursive$f$contentArray );
    else if( 
false !== in_array(pathinfo($fPATHINFO_EXTENSION), $allowedExtensions) ) $contentArray['files'][] = $f;
  }
}

$contentArray = array();
readRecursive'./galleries'$contentArray ); 
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein

Geändert von Arne Drews (04.11.2011 um 11:43 Uhr).
Arne Drews ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.11.2011, 14:06  
Erfahrener Benutzer
 
Registriert seit: 07.08.2008
Beiträge: 102
hups befindet sich auf einem aufstrebenden Ast
Standard

@Arne Drews und wie rufe ich nun die bilder auf mit echo readRecursive() geht es nicht
hups ist offline  
Alt 05.11.2011, 20:10  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von hups Beitrag anzeigen
@Arne Drews und wie rufe ich nun die bilder auf mit echo readRecursive() geht es nicht
Weil du nicht verstanden hast, was die Funktion macht.

Schau dir den Inhalt von $contentArray an...
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline  
Alt 06.11.2011, 11:17  
Erfahrener Benutzer
 
Registriert seit: 07.08.2008
Beiträge: 102
hups befindet sich auf einem aufstrebenden Ast
Standard

hab es so hinbekommen weiss nur nicht ob das so ok ist

PHP-Code:
function search4Picture$folder$picturelist = array() )
{
    
$dir dir($folder);
    while( 
$file $dir->read() ) {
        if( 
preg_match('/^\./'$file) ) continue;   // Eintrag mit . am Anfang
        
$realpath sprintf"%s/%s"$folder$file );

        if( 
is_dir($realpath ) ) {
            
$picturelist search4Picture$realpath$picturelist );
        }


        if( 
is_file($realpath) ) {
            
$image_info getimagesize$realpath );
            switch( 
$image_info] ) {
                case 
1:            // Type = gif
                
case 2:            // Type = jpeg
                
case 3:            // Type = png
                    
$picturelist[] = $realpath;
                break;
                default:            
// Type = kein Bild, also nix machen
                
break;
            }
        }
    }
    
$dir->close();

    return 
$picturelist;
}

$width='100';
$height='100';
$anzahl='27';
$alleBilder search4Picture'galleries' );

    
//<img src="/scripts/timthumb.php?src=/images/whatever.jpg&h=150&w=150&zc=1" alt="">  
    
$i=0;
foreach(
$alleBilder AS $name)
   {
       if(
$i<$anzahl)
   
   echo 
'<img src="timthumb.php?src='.$name.'&h='.$height.'&w='.$width.'&zc=1"> ';
   
    else
        break;
     
$i++; 
   } 
hups ist offline  
Alt 06.11.2011, 14:45  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von hups
hab es so hinbekommen weiss nur nicht ob das so ok ist
...wenn Du sagst, daß es funktioniert, entscheide selbst, ob das ok ist.

Ich würde aber bedenken, daß getimagesize() ein E_WARNING generiert, solltest du andere Dateitypen als Grafiken in den Verzeichnissen haben. Daher finde ich die Variante pathinfo gegen whitelist sinnvoller.
Damit wäre der switch-Block auch ersetzt:
PHP-Code:
function readRecursive$folder$pictureArray = array() ) {
  
$whitelist = array( 'gif''jpg''png' );
  
$dh dir$folder );

  while( 
$dh_entry $dh->read() ) {
    if( 
strpos($dh_entry'.') !== ) {
      
$realpath $folder '/' $dh_entry;

      if( 
is_dir$realpath ) ) $pictureArray readRecursive$realpath$pictureArray );
      else if( 
is_file$realpath ) ) {
        if( 
false !== in_array(pathinfo($realpathPATHINFO_EXTENSION), $whitelist) ){
          
$pictureArray[] = $realpath;
        }
      }

    }
  }

  return 
$pictureArray;

...mal ohne Referenz, falls Dich das irretiert hat beim vorigen Code.
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline  
Alt 06.11.2011, 15:29  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Ich würde statt "Gegen-Die-Wand-Lauf-Bis-Druch-Die-Wand"-Rekursion einer Funktion eher dazu tendieren via SPL direkt Recursive Filesystem Iteratoren zu nutzen und entsprechend auf diese einen (invertierten) RecursiveIteratorFilter anwenden der zuerst prüft ob die file-extension zulässig ist und danach das File per GDLib optional noch validiert. Der Filesystem-Iterator hat pathinfo bereits eingebaut und bietet entsprechende getExtension() und getPathname() Methoden an.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online  
Alt 06.11.2011, 16:38  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Das´ noch besser! Damit hatte ich mich bisher wenig beschäftigt, daher die "Gegen-Die-Wand-Lauf-Bis-Durch-Die-Wand"-Rekursion...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline  
Alt 07.11.2011, 19:15  
Erfahrener Benutzer
 
Registriert seit: 07.08.2008
Beiträge: 102
hups befindet sich auf einem aufstrebenden Ast
Standard

schade habe leider kein plan wie ich die bilder bei deinen code Arne Drews aufrufe

PHP-Code:
$alleBilder readRecursive'galleries' ); 
dann kommt nur Array bei echo ausgabe
hups ist offline  
Alt 07.11.2011, 19:19  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Aber den Computer bekommst Du alleine an, ja?

Lerne Grundlagen | Quellensammlung

[MOD: Thread geschlossen]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Thema geschlossen


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
3 Bilder untereinander anzeigen lassen + prüfen der Dateiendungen Wuschelchen PHP Einsteiger 13 11.05.2011 16:43
top 10 Bilder anzeigen lassen Schnaddi PHP Tipps 2010 6 18.10.2010 19:24
[Erledigt] Problem MYSQL Bilder aus DB anzeigen alexalbion Datenbanken 20 08.09.2010 22:17
Bilder auslesen aus Ordner und per dropdown anzeigen Sp1n PHP Tipps 2010 2 11.06.2010 13:10
Bilder aus Spalten in Zeilen anzeigen Typ15 PHP Tipps 2010 5 31.03.2010 21:46
Mit curl Bilder anzeigen AllOnline PHP Tipps 2010 2 03.02.2010 22:48
Per PhP Script Bilder Verzeichniss auslesen mirkoku PHP Tipps 2008 25 05.05.2009 17:34
[Erledigt] Vergrößerte Bilder im selben Pop Up Fenster anzeigen lassen PHP Tipps 2005 8 01.04.2005 12:24
Bilder nach Namen anzeigen PHP Tipps 2005 11 06.03.2005 15:41
Bilder anzeigen Tschuu PHP Tipps 2005 1 05.02.2005 14:07
Bilder Automatisch anzeigen lassen? test022 PHP Tipps 2004-2 7 23.12.2004 00:11
bilder aus ordner lesen und geordnet anzeigen Beitragsarchiv 9 01.12.2004 10:06
Bilder nur von einer Seite aus anzeigen Beitragsarchiv 0 13.11.2004 18:41
[Erledigt] Bilder nur auf eigenem Server anzeigen lassen Server, Hosting und Workstations 9 30.06.2004 15:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
nur bilder anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum