simplecontent

PHP Snippets und Beispiele

Inhaltsverzeichnis A-Z Register
Beispiel ausführen

Einen Text blättern (Beispiel 1)

Ein Beispiel für die Aufteilung eines Textes auf mehrere Ansichten mit Navigationsmöglichkeit über die einzelnen "Seiten". Wichtig ist, dass man immer zusätzlich eine Gesamtansicht anbietet, falls jemand den Text vollständig ausdrucken, oder abspeichern möchte. Das PHP Code Beispiel:
<?php


$text 
=<<< EOT
<p>Es ist ganz gleich, ob ein Garten klein oder groß ist. <br>
Was die Möglichkeit seiner Schönheit betrifft, so ist seine Ausdehnung 
so gleichgültig, wie es gleichgültig ist, ob ein Gedicht zehn oder hundert
 Zeilen lang ist.<br>
Die Möglichkeiten der Schönheit, die sich in einem Raum von fünfzehn 
Schritten im Geviert, umgeben 
von vier Mauern entfalten können, sind einfach unmessbar. </p>
<Seitenumbruch>
<p>
Du brauchst einen Baum, du brauchst ein Haus, keines für Dich allein, nur 
einen Winkel im Dach zu sitzen, zu denken, zu schlafen, zu träumen, 
zu schreiben, zu schweigen, zu sehen den Freund, die Gestirne, das Gras, 
<Seitenumbruch>
die Blume, den Himmel.<br> Reizend ist es, still und 
gemächlich übers Land zu gehen und von ernsten, starken Bäuerinnen 
freundlich gegrüßt zu werden.
</p>
<Seitenumbruch>
Ein solcher Gruß tut wohl wie der Gedanke an die Unvergänglichkeit. 
Es öffnet sich ein Himmel, wenn Menschen freundlich miteinander sind. 
Der Mensch ist inmitten der Natur immer das Kind an sich.
Das Kind träumt wohl einmal einen schweren beängstigenden Traum,
 wenn es aber die Augen aufschlägt, so sieht es sich immer wieder im Paradies. 
<Seitenumbruch>
Man kann einen seligen, seligsten Tag haben, ohne etwas anderes dann zu gebrauchen,
 als blauen Himmel und grüne Erde.
Denn ein Garten ist Ausdruck menschlichen Bestrebens, die Natur zu zähmen und zu 
ordnen; 
steht aber gleichsam für die Symbiose aus Phantasie und Perfektion. 

(Nach von Hoffmannsthal, Mayröcker, Walser, Nietzsche und Paul)
EOT;

define('cPAGE_BREAK','<seitenumbruch>');
define('cPAGE_GET_VAR','ANSICHT');

function 
CountPages($s)
{
    
preg_match_all('/'.cPAGE_BREAK.'/i',$s,$stack );
    return 
count($stack[0])+1;
}

function 
NthPage($s,$n)
{
    
$arr spliti (cPAGE_BREAK,$s);
    if(
$n){
        
$result $arr[$n-1];
    } else {
        
$result join('',$arr);
    }
    return 
$result;
}




function 
PageNavigation($n,$PAGE)
{
    
$href $_SERVER['PHP_SELF'];
    
$stack = array();

    
$tpl_lbl '<b>Seite %s</b>';
    
$tpl_href '<a href="%s?'.cPAGE_GET_VAR.'=%d">%s</a>';

    if( 
$PAGE 1) {
        
$page $PAGE-1;
        
$stack[] = sprintf$tpl_href$href$page'<');
    } else {
        
$stack[]=' ';
    }
    
$stack[] = sprintf($tpl_lbl$PAGE);


    if( 
$PAGE $n AND $n 1) {
        
$page $PAGE+1;
        
$stack[] = sprintf$tpl_href$href$page'>');
    } else {
        
$stack[]=' ';
    }

    if (
$PAGE== 0){
        
$stack = array();
        
$stack[] = sprintf $tpl_href,$href,1,'Seite 1');
    }


    if (
$n 1) {
        
$stack[] = sprintf $tpl_href,$href,0,'Gesamtansicht');
       }
      return 
$stack;
}

function 
DisplayNavigation($n$show)
{
    
$arr PageNavigation($n,$show);
    
$tpl '<table align="center"><tr><td>%s</td></tr></table>';
    
$cnt join('</td><td>',$arr);
    
printf ($tpl$cnt);
}

 
$n CountPages($text);
 
$show = isset($_GET[cPAGE_GET_VAR]) 
        ? 
$_GET[cPAGE_GET_VAR
        : 
1;
 
DisplayNavigation($n$show);
 echo 
NthPage($text,$show);

?>

Dieses PHP Snippet soll in erster Linie als Beispiel und Anregung für eigene Bemühungen dienen.
Gerne darf man es für Projekte aller Art benutzen.
Möchte jemand das Snippet also solches in ähnlicher oder anderer Form veröffentlichen ist ein kleiner Hinweis auf simplecontent.net nicht zuviel verlangt oder Herr Koch?
Für die Abwesenheit von Fehlern kann natürlich keine Gewähr gegeben werden.