Ergebnis 1 bis 15 von 15

Thema: Wichtige PHP-Tipps

  1. #1
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Exclamation Wichtige PHP-Tipps

    Dieser Thread bleibt geschlossen und wird von den Mods hier laufend ergänzt.
    Er dient dazu, auf die häufigen Fragen eine Soforthilfe zu leisten.

    Wer Ergänzungen oder Korrekturen hat, möge das doch bitte mir oder einem anderen Mod dieses Bereiches per PN mitteilen.
    Viel Erfolg !

    Inhaltsverzeichnis
    utf-8
    Fehlersuche in PHP-Scripts
    Typische Fehler
    Ablaufzeit eines Skriptes messen
    kleine PHP-Diener
    Variablen
    Optimierungen
    Mailadresse auf Gültigkeit prüfen
    Datum formatieren
    Verzeichnisse und Dateien
    Array-Funktionen
    Hilfreiche MySQL-Befehle
    Text-Ersetzungsroutinen


    Ich kenne den Syntax des Befehls xyz nicht - wer kann helfen ?

    gib im Browser ein: php.net/xyz
    Geändert von steffenk (31.07.2007 um 14:28 Uhr)

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  2. #2
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Utf-8

    Um UTF-8 zu nutzen, gibt es mehrere Möglichkeiten:

    - die Datei selbst als UTF-8 speichern (das können nicht alle Editoren!)

    - via META angeben (HTML):
    HTML-Code:
    <meta http-equiv="content-type" content="text/html; utf-8">

    - wenn die Datei eine .php Datei ist, musst du es via header() angeben:
    PHP-Code:
    header('Content-Type: text/html; charset=utf-8'); 
    Bei manchen Servern ist ein Eintrag in die .htaccess hilfreich:
    Code:
    AddDefaultCharset UTF-8
    AddCharset utf-8 .css .html .xhtml
    XML-Dokumente werden so mit utf-8 ausgegeben:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    In CSS-Stylesheets wird utf-8 so angegeben:
    Code:
    @charset "utf-8";
    es kann aber auch direkt mit utf-8 eingebunden werden:
    Code:
    <link rel="stylesheet" type="text/css" media="screen,projection" href="/design/main.css" charset="utf-8" />

    Ein Formular kann utf-8-Kodierung erhalten:
    Code:
    <form accept-charset="utf-8" method=…



    Wenn man mit MySQL-DBs arbeitet und die Kommunikation auch auf utf-8 Basis laufen soll, führt folgende Anweisung direkt nach dem Verbindungsaufbau zum Erfolg:
    PHP-Code:
    $res=mysql_query("SET NAMES 'utf8'"); 
    weiterführende Infos
    UTF8 und HTML / Javascript
    Geändert von steffenk (13.10.2006 um 17:37 Uhr)

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  3. #3
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Fehlersuche in PHP-Scripts

    Wenn Scripts nicht richtig funktionieren, liegt es oft an Fehlern / Auslasser / Verschreiber im Script.

    Um eine Ausgabe aller Fehler und Warnungen zu bekommen, reicht eine Anweisung am Anfang des Scriptes:
    PHP-Code:
    error_reporting(E_ALL); 
    Um sich die Variablen eines Arrays ausgeben zu lassen, ist folgende Anweisung hilfreich:

    PHP-Code:
    echo '<pre>'.print_r($array,true).'</pre>'
    Dies ist auch Hilfreich, um sich alle $_GET,$_POST oder $_SESSION-Einträge anzeigen zu lassen.

    MySQL-Fehler findet man am leichtesten durch folgende Anweisung:

    PHP-Code:
    $sql="SELECT * FROM ....";
    $res=mysql_query($sql,$link) or die('MySQL-Fehler: '.mysql_error().'<br>SQL-Query: '.$sql); 

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  4. #4
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Typische Fehler

    Ein ganz typischer Fehler ist ein falscher Vergleichsoperator:
    PHP-Code:
    if($var=3) { ... } 
    Hier wurde ein = vergessen, was nicht eine Prüfung auf Inhalt 3 bewirkt, sonder der Variablen den Wert 3 zuweist. Richtig:
    PHP-Code:
    if($var==3) { ... } 
    Ein vergessenes ; am Ende einer Zeile führt zu einer Fehlermeldung, die sich auf eine Folgezeile bezieht. Hier sollte man immer zuerst ein vergessenes ; in den Zeilen zuvor prüfen.

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  5. #5
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Ablaufzeit eines Skriptes messen

    Nicht nur zur Optimierung kann es nützlich sein, die Ablaufzeit zu messen.
    Hier ein einfaches Beispiel:

    PHP-Code:
    //am Anfang des Skriptes
    $anfangszeit=microtime();
    $anfangszeit=explode(" ",$anfangszeit);
    $anfangszeit=$anfangszeit[1]+$anfangszeit[0];

    // Hier folgt das Skript


    //am Ende des Skriptes
    $endzeit=microtime();
    $endzeit=explode(" ",$endzeit);
    $endzeit=$endzeit[1]+$endzeit[0];
    printf("Dauer: %f sek.",$endzeit-$anfangszeit); 

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  6. #6
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    kleine PHP-Diener

    Alphabet erstellen:
    PHP-Code:
    for($i 65$i <= 90$i++) $alpha[] = chr($i); 
    Alphabet ausgeben:
    PHP-Code:
    foreach ($alpha as $a) {echo "$a (Ascii: ".ord($a).")<br>";} 
    Zeilen einer Tabelle alternierend einfärben:
    PHP-Code:
    $i=0;
    while(
    $bedingung) {
       echo 
    '<tr bgcolor="'.($i++ % =='green' 'red').'"><td>...</td></tr>';

    Geändert von steffenk (08.08.2006 um 15:30 Uhr)

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  7. #7
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Variablen

    Eine Variable beginnt mit dem Zeichen $
    Wenn Variable in doppelten Hochkommas stehen, werden sie auch ersetzt:
    PHP-Code:
    echo "$anzahl Birnen liegen im Obstkorb"
    Will man einen Variablennamen zusammensetzen, so kann man dies so erreichen:
    PHP-Code:
    $i=3;
    ${
    'varname_'.$i}=$i
    Die neue Variable heisst jetzt $varname_3 und hat den Inhalt 3.

    Eine Referenz auf eine Variable kann man so erzeugen:
    PHP-Code:
    $array['ebene1']['ebene2']['ebene3']=25;
    $ref = &$array['ebene1']['ebene2']['ebene3'];
    echo 
    $ref
    In $ref steht jetzt die 25.
    Geändert von steffenk (01.08.2006 um 17:09 Uhr)

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  8. #8
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Optimierungen

    Schleifen
    PHP-Code:
    for($i 1$i <= count($var);$i++ ){ ... } 
    Ohwohl der Code schön ausschaut ,wird bei jedem Durchlauf der (for)-Schleife der Befehl count() durchgefürht. Und wenn $var == array mit 10000000 Datensätzen gefüllt ist wird die Schleife richtig langsam.
    Dieses ist also nur eine Performancebremse und sollte wenn möglich vermieden werden.
    Besser:
    PHP-Code:
    $anzahl count($var); 
    for(
    $i 1$i <= $anzahl;$i++ ){ ... } 
    Geändert von steffenk (02.08.2006 um 14:01 Uhr)

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  9. #9
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Mailadresse auf Gültigkeit prüfen

    PHP-Code:
    //Prüfung der E-Mailadresse
    function checkmail($address) {
       return 
    preg_match("/^[_a-z0-9-] (\.[_a-z0-9-] )*@([0-9a-z][0-9a-z-]*[0-9a-z]{2}\.) ([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|shop)$/i"$address);

    Natürlich gibt es noch weitere Arten der Überprüfung, hier einige Variationen:

    (1) Herkömmliche Prüfung:
    PHP-Code:
    if (!ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Zaz]+)$",
    $email)) 

    (2) Erweiterung für Umlautdomains:
    PHP-Code:
    if (!ereg("^([a-zA-Z0-9\.\_\-]+)@([äöüÄÜÖa-zA-Z0-9\.\-]+\.[A-Za-z][A-Zaz]+)$",
    $email)) 
    (3) Erweiterung nach IDN, allerdings beschränkt auf ISO-8859-1 (Latin-1):
    PHP-Code:
    if (!ereg("^([à-öø-ÿa-zÀ-ÖØ-ÞA-Z0-9\.\_\-]+)@([à-öø-ÿa-zÀ-ÖØ-ÞA-Z0-9\.\-
    ]+\.[A-Za-z][A-Za-z]+)$"
    $email)) 
    Weitere Zeichen hängen allerdings von den jeweiligen landesspezifischen Browsereinstellungen ab.


    (4) Einfache Prüfung ohne die Verwendung regulärer Ausdrücke:
    PHP-Code:
    if (strlen($email) < || strpos($email'@') < || strpos($email'.') < 1
    Vorteil: Funktioniert mit allen Mail-Adressen.


    (5) International funktionierende Kombination (?):
    PHP-Code:
    if (strlen($email) < || strpos($email'@') < || strpos($email'.') < || !preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-
    |_]+)$/i"
    $email)) 
    Prüft zunächst die Länge (mind. 6 Zeichen), dann das Vorkommen von "@" und "." und schließlich per preg_match den gültigen Aufbau
    Geändert von steffenk (12.08.2006 um 12:48 Uhr)

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  10. #10
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Datum formatieren

    PHP-Code:
    $today date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
    $today date("m.d.y");                         // 03.10.01
    $today date("j, n, Y");                       // 10, 3, 2001
    $today date("Ymd");                           // 20010310
    $today date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
    $today date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.
    $today date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
    $today date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month
    $today date("H:i:s");                         // 17:16:17 

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  11. #11
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Verzeichnisse und Dateien

    Erstellen eines Verzeichnisses
    Aufruf mit create_dir('verzeichnisname');
    PHP-Code:
    //Erstellen eines Verzeichnisses, hier mit CHMOD 777
    function create_dir($neuverz) {
        
    $dir ".";
        
    $check true;
        
    $handle opendir($dir);
        while (
    $file = @readdir ($handle)){
            if (
    is_dir($file) && $file == $neuverz){
                
    $check false;
            }
        }
        if(
    $check){
            
    mkdir($neuverz);
            
    chmod($neuverz0777);
            echo 
    "Verzeichnis erfolgreich erstellt.";
        }
        else{
            echo 
    "Verzeichnis existiert schon.";
        }

    Löschen eines Verzeichnisses
    Aufruf mit del_dir('verzeichnisname');
    PHP-Code:
    //Einfaches löschen eine leeren Verzeichnisses
    function del_dir($delverz) {
        
    $dir ".";
        
    $handle opendir($dir);
        while (
    $file = @readdir ($handle)){
            if (
    is_dir($file) && $file == $delverz){
                
    $check true;
            }
        }
        if(
    $check){
            
    rmdir($delverz);
            echo 
    "Verzeichnis erfolgreich gel&ouml;scht.";
        }
        else{
            echo 
    "Verzeichnis existiert nicht.";
        }

    Rekursives Löschen eines Verzeichnisses (samt Unterverzeichnisse)
    Aufruf mit clr_dir('verzeichnisname');
    PHP-Code:
    // Rekursives löschen von Verzeichnissen.
    function clr_dir($dir) {
       if(@ ! 
    $opendir opendir($dir)) {
           return 
    false;
       }
       while(
    false !== ($readdir readdir($opendir))) {
           
    //wenn es nicht die root-Ebene ist gehe weiter
           
    if($readdir !== '..' && $readdir !== '.') {
               
    //Lösche unnötige Leerzeichen
               
    $readdir trim($readdir);
               
    //Wenn es eine Datei ist
               
    if(is_file($dir.'/'.$readdir)) {
                   
    //Lösche sie, sonst steige neu ein als false
                   
    if(@ ! unlink($dir.'/'.$readdir)) {
                       return 
    false;
                   }
               }
               
    //Wenn es ein Verzeichniss ist
               
    elseif(is_dir($dir.'/'.$readdir)) {
                   
    // Rufe die Funktion rekursiv mit false auf
                   
    if(! clr_dir($dir.'/'.$readdir)) {
                       return 
    false;
                   }
               }
           }
       }
       
    //Schliesse das Verzeichnis
       
    closedir($opendir);
       
    // Lösche das Verzeichnis
       
    if(@ ! rmdir($dir)) {
           
    //Wenn löschen nicht möglich,steige neu ein als false
           
    return false;
       }
       
    // Ausstieg aus der Funktion als true
       
    return true;

    Auflistung aller Verzeichnisse und Dateien (rekursiv)

    PHP-Code:
    // Funktionsteil. Hier muss eigentlich nichts geändert werden.
    function show_dir($dir$pos=2)
    {
        if(
    $pos == 2)
        {
            echo 
    "<hr><pre>";
        }

        
    $handle = @opendir($dir);
        while (
    $file = @readdir ($handle))
        {
            if (
    eregi("^\.{1,2}$",$file))
            {
                continue;
            }

            if(
    is_dir($dir.$file))
            {
                
    printf ("% ".$pos."s <b>%s</b>\n""|-"$file);
                
    show_dir($dir.$file."/"$pos   3);
            }
            else
            {
                
    printf ("% ".$pos."s %s %s %s \n""|-","<a href=\"".$dir.$file."\" target=\"_blank\">"$file"</a>");
            }
        }
        @
    closedir($handle);

        if(
    $pos == 2)
        {
            echo 
    "</pre><hr>";
        }

    }

    /* Aufruf der Funktion
       Angabe des zu durchsuchenden Verzeichnisses:
       -Soll das Verzeichnis gelistet werden, in dem das Script auch liegt, dann einfach mit show_dir("./"); aufrufen.
       -Soll z.B. das Verzeichnis "Upload" aufgerufen werden, dann einfach mit show_dir("./upload/"); aufrufen.
    */
    show_dir("./"); 
    Auslesen von Verzeichnissen mit der Funktion glob()
    PHP-Code:
    // Liest alle Dateien und Verzeichnisse (*.*) ein 
    // und gibt diese als Links aus 
    foreach (glob("*.*") as $dateiname) { 
       echo 
    "<a href=\"" .$dateiname"\">" .$dateiname"</a><br/>"


    // Mit dem Schalter "GLOB_ONLYDIR" werden alle Verzeichnisse (*) 
    // ausgelesen und als Links ausgegeben 
    foreach (glob("*"GLOB_ONLYDIR) as $dateiname) { 
       echo 
    "<a href=\"" .$dateiname"\">" .$dateiname"</a><br/>"


    // Spitzklammern mit dem Schalter "GLOB_BRACE" erweitern die 
    // Funktionalität von glob(), so daß man Suchmuster benutzen kann. 
    // Hier werden alle Textdateien die mit "g" oder "p" beginnen 
    // gefiltert und als Links ausgegeben 
    foreach (glob("{[gp]*.txt}"GLOB_BRACE) as $dateiname) { 
       echo 
    "<a href=\"" .$dateiname"\">" .$dateiname"</a><br/>"


    // Schalter können auch kombiniert werden, wobei die Schalter mit 
    // einem einfachen Senkrechtstrich getrennt werden! 
    // Dieses Beispiel filtert nur Verzeichnisse die mit "a" oder "f" 
    // beginnen und gibt diese als Links aus.  
    foreach (glob("{[af]*}"GLOB_BRACE GLOB_ONLYDIR) as $dateiname) { 
       echo 
    "<a href=\"" .$dateiname"\">" .$dateiname"</a><br/>"

    Geändert von steffenk (08.08.2006 um 09:42 Uhr)

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  12. #12
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Array-Funktionen

    Maskierungen aus kompletten Array entfernen - Variante 1
    PHP-Code:
    /* Maskierende Backslashes aus Array entfernen */ 
    function array_stripslashes(&$var) { 
        if(
    is_string($var)) { 
            
    $var stripslashes($var); 
        }else{ 
            if(
    is_array($var)) { 
                foreach(
    $var AS $key => $value) { 
                    
    array_stripslashes($var[$key]); 
                } 
            } 
        } 


    // Anwendungsbeispiel um Backslashes aus $_POST zu entfernen 
    if(get_magic_quotes_gpc()) { array_stripslashes($_POST); } 
    Maskierungen aus kompletten Array entfernen - Variante 2
    PHP-Code:
    // array_map() ist eine genial Funktion die mit einer Callback-Funktion arbeitet
    // Als Callback kann man jede beliebige Funktion benutzen, welche dann auf alle Array-Elemente
    // angewendet wird und das Array mit den neuen Werten zurueck gibt. Dieses Beispiel wuerde
    // alles Slashes aus $_GET und $_POST entfernen.
    if (get_magic_quotes_gpc())
    {
        
    $_GET array_map'stripslashes'$_GET );
        
    $_POST array_map'stripslashes'$_POST );

    Geändert von phpBuddy (04.08.2007 um 09:15 Uhr)

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  13. #13
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Hilfreiche MySQL-Befehle

    um auf einen Schlage ein Suchen&Ersetzen in einer Spalte durchzuführen, hilft folgender SQL-Befehl

    Code:
    UPDATE `tabelle` SET `spalte` = REPLACE (`spalte` , 'alter_Text','neuer_text') ;

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  14. #14
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Text-Ersetzungsroutinen

    Oft muss man Zeichen oder Wörter in Texten ersetzen. Die Benutzung von reg.Expressions ist nicht immer praktisch und auch nicht leicht zu erstellen.

    PHP bietet aber einige praktische Befehle. Hier ein Beispiel mit einer "Übersetzungs-Tabelle" in $ersetzen:

    PHP-Code:
    $ersetzen = array(
    'ä' => 'ae',
    'ö' => 'oe',
    'ü' => 'ue',
    'ß' => 'ss',
    );

    $ersetzter_text=strtr($ausgangs_text,$ersetzen); 
    ein kleiner Anwendungsfall: Ein Text besteht aus HTML-Entities, die man gerne zurückwandeln möchte. Hier hilft ein kleiner Trick und dann wird nach gleicher Methode ersetzt:

    PHP-Code:
    $entities=array_flip(get_html_translation_table(HTML_ENTITIES));
    $ergebnis=strtr($text,$entities); 
    Geändert von steffenk (12.08.2006 um 13:28 Uhr)

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  15. #15
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869

    Texte verkürzen (crop)

    PHP-Code:
    // Gibt $text gekuerzt aus und zwar vom Anfang bis zum naechsten Satzende (Punkt) ab dem 120-sten Zeichen.
    // Es werden also nicht exakt 120 Zeichen ausgegeben, sondern der komplette Satz ab dem 120-sten Zeichen wird
    // noch mitgenommen. Das +1 dient dazu das der Satz-abschliessende Punkt noch mit angezeigt wird.
    $text "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.";
    echo 
    substr$text0strpos$text"."120 )+);


    // Lange Texte aus einer DB nach einer bestimmten Anzahl Zeichen kürzen (z.B. Vorschau für News)
    // Hier wird geschaut ob die Zeichenlaenge von `nachricht` laenger als 75 Zeichen ist
    // in dem Fall werden nur die ersten 72 Zeichen ausgelesen und "..." angehaengt
    // Dieses Verfahren ist erheblich performanter als komplette Texte auszulesen und dann mit PHP zu kuerzen!
    $sql "SELECT
                IF(LENGTH(`nachricht`) > 75, CONCAT(LEFT(`nachricht`, 72), '...'), `nachricht`) AS nachricht
            FROM
                `tabelle`
            "

    und noch eine weitere Funktion:
    PHP-Code:
    # Funktion zum Abschneiden eines Strings
    # $s der String
    # $l gewünschte Länge in Zeichen
    # $e wird hinten ran gehängt
    function string_cut$s$l 20$e '...' )
    {
            if ( 
    strlen($s) <= $l ) return $s#String kürzer als $l, unverändert zurückgegeben
            
    $s wordwrap$s$l strlen($e), "\0"null ); #Umbruch nach $l zeichen
            
    $p strpos$s"\0" );
            if ( (
    $p === false) or ($p $l) )
                    return 
    substr$s0$l strlen($e) ) . $e# erstes Wort zu lang, wir brechen ohne Gnade
            
    return substr$s0$p ) . $e;

    vielen Dank an Rizzo und cybergreek.
    Geändert von steffenk (17.06.2007 um 17:26 Uhr)

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Stichworte


Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51