Biggle's Blog

Web- und Software Development

by Mario Priebe

Arrays

In einem Array ist es möglich eine verkettete Liste zu speichern. Man unterscheidet zwischen ein- und mehrdimensionalen und assoziative Arrays.

eindimensionale Arrays

Das eindimensionale Array ist vergleichbar mit einer einfachen Liste mit einem Index. Elemente vom gleichen Typ werden über den Index (ab 0 zählend)  nebeneinander abgelegt.

$arr[0] erstes Element im Array
$arr[8]  neuntes Element im Array

mehrdimensional Arrays

Bei mehrdimensionale Arrays ist es möglich mehrere Dimensionen abzulegen.

$arr[0][0]      //erstes Element im ersten Array
$arr[0][1]       //zweites Element im ersten Array
$arr[2][11]     //zwölftes Element im dritten Array
$arr[5][2][3]  //viertes Element im dritten Array vom sechsten Array

usw.

assoziative Arrays

Ein assoziatives Array ist sowas wie ein Array von Dictionaries. Hier wird der Index in lesbarer Form abgelegt, wodurch der Zugriff auf die Elemente im Array vereinfacht wird.

$person['name'] = 'Priebe';
$person['firstname'] = 'Mario';

oder alternativ

$person = array ('name' => 'Priebe', 'firstname' => 'Mario');

Der Zugriff auf das Array erfolgt auch hier über den Index

echo $person['vorname'];

Um die Struktur eines Array auszugeben, verwendet man den print_r (rekursiven Print-Befehl)

$person = array ('name' => 'Priebe', 'firstname' => 'Mario');
print_r ($person);

Ausgabe: Array ( [name] => Priebe [firstname] => Mario )


globale Arrays

Es gibt auch jede Menge von globalen Arrays unter PHP, wie z.B.
$_SERVER, $_POST, $_GET, $_SESSION, $_COCKIE
mit print_r kann man sich auch diese Strukturen der Arrays anschauen, oder die Dokumentation bemühen.

by Mario Priebe

Aktuelles “Copyright” Datum im Footer

Peruns Weblog erinnert daran, das Datum im Footer zu aktualisieren und zeigt auch einen php-oneliner der das Jahr aktuell halten soll.

Folgendes Snippet legt noch einen drauf und gibt den Zeitraum vom ersten bis zum letzten Posting aus, welches Du in deinem Blog geschrieben hast: Copyright © 2008-2010


1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    global $wpdb;
    $post_datetimes = $wpdb->get_row($wpdb->prepare("SELECT YEAR(min(post_date_gmt)) AS firstyear, YEAR(max(post_date_gmt)) AS lastyear FROM $wpdb->posts WHERE post_date_gmt > 1970"));
    if ($post_datetimes) {
            $firstpost = $post_datetimes->firstyear;
            $lastpost = $post_datetimes->lastyear;
 
            $copyright = 'Copyright &copy;&nbsp;' . $firstpost;
            if($firstpost != $lastpost) {
                    $copyright .= '-'. $lastpost;
            }
            echo $copyright;
    }
?>


by Mario Priebe

Datenbankverbindung PHP / MySQL

Das folgende CodeSnippet zeigt, wie man PHP und MySQL miteinander verbindet und Daten eines Querys verarbeitet.


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
<?php
/* 
 * by Mario.Priebe (c)2009 
 * MySQL SimpleConnection
 * www.biggle.de 
*/
 
//connectionstring
$con = mysqli_connect("localhost", "username", "password", "datenbankname");
 
//connection exist or available
if(!$con) 
  { die('Verbindung fehlgeschlagen' . mysqli_connect_error()); }
 
  //query
  $result = mysqli_query("SELECT * FROM Contacts");
 
  //fetching data
  while($row = mysqli_fetch_array($result))
  {
    echo $row['lastname'] .  ", " . $row['firstname'] . "<br />";
  }
 
  //close connection
  mysqli_close($con);
?>

by Mario Priebe

PHP Entwicklungsumgebung unter Windows

Heute möchte ich gerne zeigen, wie man sich auf dem Windowssysstem eine PHP-Entwicklungsumgebung einrichtet. Ich verwende dazu die kostenlos verfügbaren Programme XAMPP und EasyEclipse for PHP.

Diese beiden Programme sollten herunter geladen und installiert werden. Die Reihenfolge sollte nicht relevant sein, schlage aber vor XAMPP als erstes zu installieren.

Nach Installation dieser, müssen wir EasyEclipse einrichten. Dazu gehen wir wie folgt vor.

Zuerst werden wir uns in Eclipse die PHP Umgebung einschalten. Hier geht man vorerst nach dem Start von Eclipse auf der rechten Seite auf Workbench und es werden alle Views der Umgebung geladen.

Wenn man nun rechts oben auf Resources / Other geht,

HowToPhpOnWindows6

findet man nachfolgend eine weitere Perspektive, wo wir dann PHP auswählen.

HowToPhpOnWindows7

Nun müssen wir XAMPP und EasyEclipse miteinander verknüpfen. (Wenn man C:\ als Installationspfad gelassen hat sollte eigtl. alles gut sein, jedoch schauen wir hier nochmal nach.)

Dazu selektieren wir Window/Preferences

HowToPhpOnWindows8

Und gehen im linken Menu auf den Punkt XAMPP, siehe Abbildung

HowToPhpOnWindows9

Auf der rechten Seite sind dann die Pfade vorgegeben, diese sollten mit der Installation von XAMPP übereinstimmen.

Nun starten wir XAMPP über die EclipseUmgebung.

HowToPhpOnWindows10

In der unten stehenden Konsole sollten wir dazu auch eine Erfolgsmeldung bekommen.

HowToPhpOnWindows13

Nun rufen  wir im Browser deiner Wahl die lokale URL auf, die 127.0.0.1 oder localhost lautet und sollten dann, nachdem wir unter dem XAMPP-Logo und auf Deutsch geklickt haben, folgende Meldung sehen.

HowToPhpOnWindows3

Nach einem Klick auf Status im linken Menü sollten wir eine Übersicht bekommen, welche Dienste denn alle aktiviert sind.

HowToPhpOnWindows11

Den Browser können wir jetzt wieder schließen und in der Umgebung uns die selbe URL im integrierten Browser aufrufen

HowToPhpOnWindows12

Wenn auch das geklappt hat, kann es eigentlich los gehen. Vorher jedoch müssen wir noch den “htdocs” Ordner als Dokumentenroot definieren.

Dazu gehen wir unter Window/Preferences auf das unten in der Abbildung markierte ”Item “ProjectDefaults und tragen hier auf der rechten Seite den Pfads zum htdocs-Verzeichnis innerhalb des XAMPP Verzeichnisses ein.

HowToPhpOnWindows14

Nun können wir uns ein PHP Projekt anlegen. Dazu gehen wir auf der linken Seite in den Navigator und klicken mit der rechten Maustaste und erstellen uns dieses.

HowToPhpOnWindows15

Wichtig ist, auch hier die Angabe, zu einem Ordner der sich im htdocs-Verzeichnis befindet, diesen müssen wir uns auch zuvor physikalisch anlegen.

HowToPhpOnWindows16

In diesem Projekt können wir uns nun die erste PHP-Datei anlegen, dazu wieder Rechtsklick im Navigator, auf das Projekt und auf PHP File

HowToPhpOnWindows17

Vergeben einen Namen, sinnvoll oder nicht, das ist egal : )

HowToPhpOnWindows18

und schreiben unseren ersten Code. Hier sieht man nach dem Speichern des Files auch gleich im PHP Browser das Ergebnis

HowToPhpOnWindows19

Das generierte Kommentartemplate kann man auch recht einfach anpassen. Hierzu geht wieder auf Window/Preferences und auf die unten in der Abbildung markierten Items bis zu CodeTemplates. Hier markiert man dann auf der rechten Seite New PHP Files und dann auf Edit.

HowToPhpOnWindows20

An dieser Stelle, kann man nun sein eigenes PHP-File HeaderTemplate einrichten.

HowToPhpOnWindows21

Zum Schluss noch einen letzten Screen, der zeigt das man vor dem Beenden von Eclipse auch den XAMPP wieder stoppen sollte.

HowToPhpOnWindows22

So nun steht einem nichts mehr im Wege, bei der Entwicklung von PHP mit Eclipse auf einem Windowssystem.

Btw, wie  man auf dem einen oder anderen Screenshot sehen konnte, haben wir uns mit dem XAMPP Paket auch MySQL installiert, was uns natürlich auch im vollen Umfang zur Verfügung steht.

So nun viel Spaß beim entwickeln : )

by Mario Priebe

PHP foreach und Javascript

Hier habe ich mal einen kleinen Codeschnipsel geschrieben um aus einem Verzeichnis alle Bilder auszulesen, die dann in einem Array an ein Javascript übergeben werden.

Grund dafür war, das ich das “Drop-in Slideshow Script” von DynamicDrive, dynamisch mit einer Bilderquelle versehen wollte.

Hier der Code:

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
/* 
 * by Mario.Priebe (c)2009 
 * PHP-ImageArray from directory
 * This notice must stay intact for legal use.
 * www.biggle.de
 * for the dropSlideShow use http://www.dynamicdrive.com/dynamicindex14/dropitslide.htm
*/
 
//define picturedir
$pic_dir = 'uploads/slideshow/';
 
//dont touch this if u dont know what u do
$d = dir($pic_dir);
while($entry=$d->read()) {
  if ($entry != "." && $entry != "..") {
    $array[] = $entry;
  }
}
echo "<script type=\"text/javascript\">\n";
echo "var Images = new Array();\n";
 
foreach ($array as $key => $pic)
{
      echo "Images[$key] = [\"$pic_dir$pic\"];\n";
}
$d->close();
 
echo "new dropinslideshow(Images, 150, 120, 3000)";
echo "</script>\n";

Viel Spass beim entwickeln : )

by Mario Priebe

EmbeddedValidSwf – PHP Snippet

Und wenn wir schon dabei sind, hier ein kleines phpSnippet dazu : )

1
2
3
4
5
6
7
function EmbeddedValidSwf($url, $height, $width)
{               
    $valideVideo ='<object type="application/x-shockwave-flash" data="'.$url.'" width="'.$width.'" height="'.$height.'">
                   <param name="src" value="'.$url.'" />                       
                   </object>';
    return $valideVideo; 
}

Das Snippet ist recht einfach gehalten. Die Parameter für die swf sollte man dann noch, je nach Einsatz ergänzen…

1
2
<param name="AllowFullscreen" value="true" />
<param name="AllowScriptAccess" value="always" />