Drupal: Zeitzone UTC zu Europe/Paris konvertieren

Modul: Date
Aufbau des Felds vom Typ Datum:

print_r($node->field_date);

Output:

Array
(
    [de] => Array
        (
            [0] => Array
                (
                    [value] => 2011-10-25T18:00:00
                    [timezone] => Europe/Paris
                    [timezone_db] => UTC
                    [date_type] => date
                )
 
        )
)

In der Datenbank wird der Datumswert in diesem Beispiel im UTC-Format abgespeichert, welchen wir nun in der gewünschten Zeitzone Europe/Paris konvertieren:

$date_timezone_db = $node->field_date['de'][0]['timezone_db'];
$date_timezone = $node->date['de'][0]['timezone'];
$date_value = $node->date['de'][0]['value'];
 
$date = new DateObject($date_value, $date_timezone_db);
$date->setTimezone(timezone_open($date_timezone));
 
$formatted_date = $date->format('d.m.Y H:i:s');
echo $formatted_date;
// output: 25.10.2011 20:00:00

91171.de – Neue Domain: Die PLZ der Gemeinde Greding

Am 23.10.2009 um 9:00Uhr wurden bei der Denic ein- und zweistellige Domains, sowie reine Zahlendomains zur Registrierung freigegeben. Ich hatte lediglich bei letzterem etwas Glück und konnte mir meine PLZ als Domain sichern. Aber was soll nun mit der Domain geschehen? Konstruktive Vorschläge, vorzugsweise von Mitgliedern aus der Gemeinde Greding, können gerne als Kommentar abgegeben werden.

Zur Domain: 91171.de

Der richtige Mix aus HTML und PHP

Es gibt verschiedene Möglichkeiten, PHP-Variablen und HTML-Tags miteinander zu verknüpfen. Wie ist mit sicherheit Geschmackssache und kommt ganz auf den Programmierstil des jeweiligen Programmieres an.

Variane 1:

<?php echo "Hello $user"; ?>

Variante 2:

<?php echo 'Hello '.$user; ?>

Wie jedoch verknüpft man PHP-Variablen und HTML-Tags am sinnvollsten miteinander bzw. welche Variante wird vom PHP-Interpreter schneller abgearbeitet?

Hierzu wieder 2 kleine Codeschnipsel, welche von den jeweiligen Varianten gebrauch machen und die Zeit, welche zum Abarbeiten des PHP-Scriptes benötigt wird, am Ende ausgibt:

Variane 1:

<?php
$start=microtime();
for($i=0;$i<50;$i++)
	$test[$i]="Hello Number <b>$i</b>";
$end=microtime();
echo $end-$start;
//Ausgabe: 0.000218
?>

Variane 2:

<?php
$start=microtime();
for($i=0;$i<50;$i++)
	$test[$i]='Hello Number <b>'.$i.'</b>';
$end=microtime();
echo $end-$start;
//Ausgabe: 0.000171
?>

Vergleicht man die Ausgabe der 2 Codeschnipsel miteinander, stellt man fest, dass Variante 2 geringfügig schneller abgearbeitet wird. Warum? der PHP-Interpreter muss den String nicht erst nach Variablen durchsuchen, sondern weiß durch die Trennnung von HTML-Code sowie PHP-Variablen sofort, was er auszugeben hat. Ein weiterer Grund, warum ich Variante 2 empfehlen würde ist, dass auch der Quelltext strukturierter und somit einfacher lesbar ist.

PHP Eventcounter Image

Hier eine kleine Funktion, welches einen Eventcounter erstellt und daraus ein Bild erzeugt.

Der Funktion createeventimage() werden das Jahr, Monat, Tag, Stunde, Minute, Sekunde sowie der Name des Events und der Dateiname des zu erzeugenden Bildes übergeben. Aus diesen Daten wird dann der Eventcounter erzeugt und als Bild zurückgegeben.

<!--?php 
function createeventimage($year, $month, $day, $hour, $minute, $second, $event, $file)
{
	$countdown = mktime($hour, $minute, $second, $month, $day, $year);
	$today = time();
	$diff = $countdown - $today;
	if ($diff < 0)
		$diff = 0;
	$d = floor($diff/60/60/24);
	$h = floor(($diff - $d*60*60*24)/60/60);
	$m = floor(($diff - $d*60*60*24 - $h*60*60)/60);
	$s = floor(($diff - $d*60*60*24 - $h*60*60 - $m*60));
 
	$counter= "Noch ".$d." Tage ".$h." Stunden ".$m." Minuten ".$s." Sekunden";
 
	$picture=ImageCreate(450,75);
	$color_white=ImageColorAllocate($picture,255,255,255);
	$color_black=ImageColorAllocate($picture,0,0,0);
 
	imagefilledrectangle($picture, 0, 0, 450, 75, $color_black);
	imagefilledrectangle($picture, 5, 5, 445, 70, $color_white);
	imagefilledrectangle($picture, 10, 10, 440, 65, $color_black);
	imagestring($picture, 4, 15, 15, $counter, $color_white);
	imagestring($picture, 4,15, 35, "bis ".$event, $color_white);
 
	header("Content-type: image/jpeg");
	imagejpeg($picture, $file);
	header("Location: ".$file);
}
?-->

Benutzen der Funkion:

<!--?php 
createeventimage($_GET["Y"], $_GET["M"], $_GET["D"], $_GET["h"], $_GET["m"], $_GET["s"], $_GET["event"], $_GET["file"]);
?-->

Damit der Eventcounter immer die aktuell verbleibende Zeit bis zum gewünschten Event anzeigt, wird als Bild nicht wie gewöhnlich ein „Bild“ (z.B. ein JPG-File) eingebunden, sondern das PHP-Script (Im Beispiel die Datei „event.php“, welches die Funktion sowie den Funktionsaufruf enthält), dem die Daten für das Event übergeben werden:

<img alt="eventcounter" src="http://blog.gut-man.de/phpscripts/event.php?event=Silvester 2020&amp;Y=2020&amp;M=1&amp;D=13&amp;h=0&amp;m=0&amp;s=0&amp;file=event.jpg" />

Vorteil dieses Scriptes gegenüber z.B. einer JavaScript basierenden Lösung?

Bilder lassen sich in die meisten Gästebücher \ Portalseiten oder auch z.B. Emails einbinden, wo JavaScirpt aus Sicherheitsgründen nicht erlaubt werden kann…

PHP Passwortgenerator

Hier eine nützliche Funktion für PHP, welche Passwörter erzeugt.
Der Funktion pwdgen(); wird lediglich die Länge des gewünschten Passwortes übergeben.

<?php
function pwdgen($length) 
{
	$salt_lower=range('a', 'z');
	$salt_upper=range('A', 'Z');
	$salt_numbers=range('0', '9');
	$salt_signs=array('+','-','/','*','%','$','@','=','}','{','[',']');
	$salt=array_merge($salt_lower,$salt_upper,$salt_numbers,$salt_signs);
	$makepass	= '';
	mt_srand((double)microtime()*1000000);
	for ($i = 0; $i < $length; $i++)
		$makepass .= $salt[mt_rand(0,count($salt)-1)];
 
	return $makepass;
}
?>

Benutzung:

<?php
	echo pwdgen(10);
	//Ausgabebeispiel: mIFjHMc-2
?>