Blättern mit PHP

  • #1
O

omfg2

Guest
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...
 
  • #3
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!;
}
?>

 
  • #4
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!
 
  • #5
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
.....
.....
 
  • #6
Super! Vielen dan an Mister PHP Profi Conny :D
 
Thema:

Blättern mit PHP

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben