Blättern mit PHP

Dieses Thema Blättern mit PHP im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von omfg2, 10. Jan. 2006.

Thema: Blättern mit PHP Hallo zusammen... Ich möchte mit PHP folgende realisieren: Es soll ein Verzeichniss ausgelsen werden (nehmen wir...

  1. Hallo zusammen...

    Ich möchte mit PHP folgende realisieren:

    Es soll ein Verzeichniss ausgelsen werden (nehmen wir ./images), in welchem sich lauter Bilder (.jpg) befinden (sagen wir 18). Nun möchte ich mit PHP dieses Verzeichnis auslesen und diese Bilder auch gleich noch anzeigen. Jedoch sollen auf jeder Seite nur 9 Bilder (3x3) zu sehen sein. Kann mit jemand Helfen? Habe leider wenig Erfahrung mit Arrays und so weiter... :(

    Danke...
     
  2. paging.php

    Code:
    <?php
    /**
    * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
    * @license [url]http://www.gnu.org/copyleft/gpl.html[/url] GNU/GPL, see LICENSE.php
    * Joomla! is free software. This version may have been modified pursuant
    * to the GNU General Public License, and as distributed it includes or
    * is derivative of works licensed under the GNU General Public License or
    * other free or open source software licenses.
    */
    /**
    * Copyright (C) der Modifizierung 2006 [url]http://www.wt-scriptarchiv.de[/url] 
    */
    
    class PageNav {
    	var $limitstart = null;
    	var $limit = null;
    	var $total = null;
    
    	function PageNav( $total, $limitstart, $limit ) {
    		$this->total = intval( $total );
    		$this->limitstart = max( $limitstart, 0 );
    		$this->limit = max( $limit, 0 );
    	}
    	/**
    	* Writes the html for the pages counter, eg, Results 1-10 of x
    	*/
    	function writePagesCounter() {
    		$txt =->';
    		$from_result = $this->limitstart+1;
    		if ($this->limitstart + $this->limit < $this->total) {
    			$to_result = $this->limitstart + $this->limit;
    		} else {
    			$to_result = $this->total;
    		}
    		if ($this->total > 0) {
    			$txt .= Ergebnisse . $from_result . - . $to_result . von . $this->total;
    		}
    		return $txt;
    	}
    	/**
    	* Writes the html links for pages, eg, previous, next, 1 2 3 ... x
    	* @param string The basic link to include in the href
    	*/
    	function writePagesLinks( $link ) {
    		$txt =->';
    
    		$displayed_pages = 10;
    		$total_pages = ceil( $this->total / $this->limit );
    		$this_page = ceil( ($this->limitstart+1) / $this->limit );
    		$start_loop = (floor(($this_page-1)/$displayed_pages))*$displayed_pages+1;
    		if ($start_loop + $displayed_pages - 1 < $total_pages) {
    			$stop_loop = $start_loop + $displayed_pages - 1;
    		} else {
    			$stop_loop = $total_pages;
    		}
    
    		$link .=->&limit='. $this->limit;
    
    		if ($this_page > 1) {
    			$page = ($this_page - 2) * $this->limit;
    			$txt .=-><a href='. $link .'&limitstart=0 class=pagenav title=first page>[ << ]</a>->;
    			$txt .=-><a href='. $link .'&limitstart='. $page .' class=pagenav title=previous page>[ < ]</a>->;
    		} else {
    			$txt .=-><span class=pagenav>[ << ]</span>->;
    			$txt .=-><span class=pagenav>[ < ]</span>->;
    		}
    
    		for ($i=$start_loop; $i <= $stop_loop; $i++) {
    			$page = ($i - 1) * $this->limit;
    			if ($i == $this_page) {
    				$txt .=-><span class=pagenav> '. $i .' </span>->;
    			} else {
    				$txt .=-><a href='. $link .'&limitstart='. $page .' class=pagenav><strong>[ '. $i .' ]</strong></a>->;
    			}
    		}
    
    		if ($this_page < $total_pages) {
    			$page = $this_page * $this->limit;
    			$end_page = ($total_pages-1) * $this->limit;
    			$txt .=-><a href='. $link .'&limitstart='. $page .'  class=pagenav title=next page>[ > ]</a>->;
    			$txt .=-><a href='. $link .'&limitstart='. $end_page .'  class=pagenav title=end page>[ >> ]</a>';
    		} else {
    			$txt .=-><span class=pagenav>[ > ]</span>->;
    			$txt .=-><span class=pagenav>[ > ]</span>';
    		}
    		return $txt;
    	}
    }
    ?>
    
    index.php
    Code:
    <?php
    require_once(paging.php);
    
    // Link zum blättern
    $link = index.php?paging=1;
    // Verzeichnis in dem die Bilder sind
    $dir = bilder;
    // Erlaubte Dateien (auf Kleinschreibung achten !!!)
    $allowed_files = array(gif,jpg,png);
    // max. Anzahl pro Anzeige
    $max = 3;
    
    if(!$dir_handle = @opendir($dir))
    	die( Kann Verzeichnis <strong>.$dir.</strong> nicht zum lesen öffnen! );
    
    $count = 0;	
    while ($file = readdir ($dir_handle)) { 
    	if ($file != . && $file != ..) { 
    		$ext = explode(., $file);
    		if(!@in_array(strtolower($ext[(count($ext)-1)]), $allowed_files)) continue;	
    		$images[] = $dir.'/'.$file;
    		++$count; 
    	} 
    }
    closedir($dir_handle);
    
    if($count >= 1) {
    	$limitstart = intval( $_REQUEST[limitstart] );	
    	$limit = $limit ? $limit : $max ;
    	if( $limitstart == $count ) $limitstart -= $limit;
    	if( $count <= $limit ) $limitstart = 0;
    	$pageNav = new PageNav( $count, $limitstart, $limit );
    	
    	/**
    	* Ab hier erfolgt die Ausgabe
    	*/
    	
    	// Anzeige Ergebnis von - bis
    	echo $pageNav->writePagesCounter().<br />;
    	// Anzeige Paging
    	echo $pageNav->writePagesLinks($link).<br />;
    	// Ausgabe der Bilder
    	for($i = $limitstart; $i < ($limitstart + $limit); $i++) {
    		if(!$images[$i]) break;
    		echo-><p align=center><img src='.$images[$i].' /></p>'; 
    	}
    }
    else {
    	echo Keine Bilder gefunden!;
    }
    ?>
    
    
     
  3. uuaaa hammer! danke euch beiden!

    zu connys vorschlag:

    habe da noch ein problem beim anzeigen... ich möchte die bilder folgendermassen anzeigen auf einer seite:

    bild1 bild2 bild3
    bild4 bild5 bild6
    bild7 bild8 bild9

    danke vielmals für deine super hilfe!
     
  4. z.B.
    Code:
    	
    .....
    .....    
        // Ausgabe der Bilder
    	?>
    	<table align=center width=100% cellpadding=0 cellspacing=0>
    		<tr>
    	<?php
    	for($i = $limitstart; $i < ($limitstart + $limit); $i++) {
    		if(!$images[$i]) break;
    		if($i > 0 && $i % 3 == 0) echo-></tr><tr>';
    		echo-><td width=33%><p align=center><img src='.$images[$i].' /></p></td>'; 
    	}
    	?>
    		</tr>
    	</table>
    	<?php
    .....
    .....
    
     
  5. Super! Vielen dan an Mister PHP Profi Conny :D
     
Die Seite wird geladen...