Kleine PHP-Helfer

Facebooktwittergoogle_pluspinterestlinkedinmailFacebooktwittergoogle_pluspinterestlinkedinmail

PHP-Logo
Oft braucht man kleine Hilftsfunktionen in PHP und möchte diese nicht neu durchdenken oder programmieren. Eine kleine Sammlung von eigenen, kleinen Skripten habe ich hier gelistet. Vielleicht sind diese ja nützlich für jemanden.

Transformationen

Tag der Woche

Die Funktion transformDayOfWeek wandelt die Nummer des Wochentages in den dazugehörigen Namen des Wochentages in einer gewünschten Sprache um.

<?php

/*********************
* transformDayOfWeek
*   get the Weekday in written words
*********************
* @param:
*   $day - integer, from 1..7, 1=monday
* @return: string of weekday
*/

function transformDayOfWeek($day, $lang="en") {

    $return = array(
            1 => array("en" => "Monday", "de" => "Montag"),
            2 => array("en" => "Tuesday", "de" => "Dienstag"),
            3 => array("en" => "Wednesday", "de" => "Mittwoch"),
            4 => array("en" => "Thursday", "de" => "Donnerstag"),
            5 => array("en" => "Friday", "de" => "Freitag"),
            6 => array("en" => "Saturday", "de" => "Samstag"),
            7 => array("en" => "Sunday", "de" => "Sonntag")
            );

    return $return[$day][$lang];
}

?>

Monatsnummer

Wenn man einen Monat im dreistelligem englischem Format bekommt, möchte man manchmal den dazugehörigen Monat als Zahlenwert haben. Diese Funktion gibt ihn zurück.

<?php

/**********************
* transformMonthNumber
*   get the number of a month from a string
***********************
* @param:
*   $month - string, from Jan...Dec (english, 3 chars)
* @return: number of month
*/

function getMonthNumber($month) {
    switch($month) {
        case "Jan": return 1;
        case "Feb": return 2;
        case "Mar": return 3;
        case "Apr": return 4;
        case "May": return 5;
        case "Jun": return 6;
        case "Jul": return 7;
        case "Aug": return 8;
        case "Seb": return 9;
        case "Oct": return 10;
        case "Nov": return 11;
        case "Dec": return 12;
        default: return 0;
    }
}

?>

Datum in ein Timestamp umwandeln

Manchmal stößt man auf zu bearbeitetende Werte, die schwer auseinander zuteilen sind. So z.B. das Datumsformat Wed, 23 Jan 2013 09:40:15 +0100 (CET). Diese Funktion hilft dabei einen praktikablen Timestamp zu generieren.

<?php

/********************
* transformTimestamp
*   transform a complete date in a timestamp
*********************
* @param:
*   $date - date to transform (format: "Wed, 23 Jan 2013 09:40:15 +0100 (CET)")
* @return: timestamp
*/

function transformTimestamp($date) {

    $date   = (array) explode(" ",$date);
    $time   = (array) explode(":",$date[4]);
    $hour   = (int) $time[0];
    $minute = (int) $time[1];
    $second = (int) $time[2];
    $month  = (int) getMonthNumber($date[2]);
    $day    = (int) $date[1];
    $year   = (int) $date[3];

    // transform into UTC
    $tz = str_split#1string) $date[5],3);
    $tzhour = str_split($tz[0]);
    if((int)$tzhour[1]==0) $tzhour=(int) ((string)$tzhour[0].(string)$tzhour[2]);
    else $tzhour=(float) ((string)$tzhour[0].(string)$tzhour[1].(string)$tzhour[2]);
    $tzmin  = str_split($tz[1]);
    if((int)$tzmin[0]==3) $tzhour+=0.5;

    // timestamp - timecorrection + transform to UTC1
    return (int) (mktime($hour,$minute,$second,$month,$day,$year) - 3600*$tzhour + 3600*UTC);
}

?>

Debugging Funktionen

Debug-Ausgabe

Die wichtigste Funktion beim entwickeln von Software ist das Debuggen. Dafür braucht man eine solide funktionierenden Ausgabefunktion von Werten. Diese Funktion bietet einige Funktionen.

Das Flag kann addiert werden, somit sind mehrere Optionen möglich.

<?php

/******************************************************
* DEBUGGING FUNCTIONS
*************
* debugPrint
*   print a message / array / variable
*************
* @param:
*   $message - message / variable to print
*   $force - if you want to ignore $_DEBUG variable
*   $flag - give commands, and every wished comment:
*      0 - no command
*      1 - make htmlentities
*      2 - make <pre> tags
*      4 - make <br/> to the end
* @return: -
*/
function debugPrint($message, $force=false, $flag=0) {

    if(is_array($message $message = implode("",$message);

    if(($flag&1)!=0) $message = htmlentities($message);
    if(($flag&2)!=0) $message = "<pre>".$message."</pre>";
    if(($flag&4)!=0) $message = $message."<br/>";

    if($force || DEBUG) echo $message;

}

?>

XML-Funktionen

Um schnell XML-Dateien zu erstellen, arbeite ich mit SimpleXML. Diese Funktionen helfen und vereinfachen ein paar Dinge.

XML-Kommentar setzen

Um in SimpleXML einen Kommentar zu setzen, werden 3 Befehle gebraucht. Diese Funktion fasst sie zusammen.

<?php

/***************
* XMLsetComment
*   add comment to XML-structure
****************
* @param:
*   $xml - XML-structure where to set
*   $comment - comment to set
* @return: -
*/
function XMLsetComment($xml, $comment) {
    $xml->startComment();
    $xml->text($comment);
    $xml->endComment();
}

?>

XML-Struktur starten

Um eine Struktur mit SimpleXML zu starten führt diese Funktion Stück für Stück alle Schritte aus. Zurückgegeben wird das XML-Objekt.

<?php

/**********
* XMLstart
*   startStructure of XML
***********
* @param: -
* @return: xml-struct
*/
function XMLstart() {
    $xml = new xmlWriter();         // new writer
    $xml->openMemory();         // write in memory
    $xml->setIndent(true);          // set Intent to true (looks better)
    $xml->startDocument("1.0","UTF-8"); // starting xml-Tag

    $xml->startElement("interface");    // interface-Tag with name=monitoring_flex
    $xml->startAttribute("name");
    $xml->text("monitoring_flex");
    $xml->endAttribute();

    return $xml;
}

?>

Quellen   [ + ]

1. string) $date[5],3); $tzhour = str_split($tz[0]); if((int)$tzhour[1]==0) $tzhour=(int) ((string)$tzhour[0].(string)$tzhour[2]); else $tzhour=(float) ((string)$tzhour[0].(string)$tzhour[1].(string)$tzhour[2]); $tzmin = str_split($tz[1]); if((int)$tzmin[0]==3) $tzhour+=0.5; // timestamp - timecorrection + transform to UTC1 return (int) (mktime($hour,$minute,$second,$month,$day,$year) - 3600*$tzhour + 3600*UTC); } ?>

Debugging Funktionen

Debug-Ausgabe

Die wichtigste Funktion beim entwickeln von Software ist das Debuggen. Dafür braucht man eine solide funktionierenden Ausgabefunktion von Werten. Diese Funktion bietet einige Funktionen.

Das Flag kann addiert werden, somit sind mehrere Optionen möglich.

<?php

/******************************************************
* DEBUGGING FUNCTIONS
*************
* debugPrint
*   print a message / array / variable
*************
* @param:
*   $message - message / variable to print
*   $force - if you want to ignore $_DEBUG variable
*   $flag - give commands, and every wished comment:
*      0 - no command
*      1 - make htmlentities
*      2 - make <pre> tags
*      4 - make <br/> to the end
* @return: -
*/
function debugPrint($message, $force=false, $flag=0) {

    if(is_array($message

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.