Arrays in Strings umwandeln

Ich musste letztens mal ein 2-Dimensionales Array auseinander nehmen und in einen String umwandeln wobei die einzellnen Values durch ‘;’ getrennt sind und habe vielen langen Code geschrieben. Durch eine Freundin konnten wir ihn verkleinern ;)
Ich hoffe ihr könnt damit was anfangen. Ich habs hier in eine Externe Funktion gepackt und einen Parameter $list übergeben welches ein 2-Dimensionales Array ist. Zurück gegeben wird natürlich ein String ;) aber ihr könnt den Return auch raus nehmen und den Rückgabe wert auf eine Variable legen.


foreach ($list as &$value) {
$value = array_shift($value);
}
return implode('; ', $list);

WP-Monalisa Plugin Einlese Script

Ich hab vor kurzem auf meinem Anderen Blog das Wp-Plugin Monalisa benutzt, es dient dazu eigene Smilies einzulesen und das diese nicht nach einem WordPress Update verloren gehen. Zusätzlich weren die Smilies noch angezeigt unter euren Posts die ihr grade neu erstellt. Allerdings muss man erst eine .Pak datei erstellen die das Plugin braucht um die Smilies zu erkennen und einlesen zu können. Ergo: es reicht nicht einfach die Smilies ins Plugin verzeichnis zu laden, ihr müsst also auch in dieser Datei, datei name, datei größe und noch diverse andere daten reinschreiben. Wenn man 80 Neue Smilies einlesen will… wird das aufwendig und die hölle. Glaubt mir, aber da ich faul bin habe ich mir ein kleines Script geschrieben das mir den Text erzeugt den ich dann nur noch in die .Pak Datei reinkopieren muss. Und ich dachte mir, vll kann es einer gebrauchen und ich stell es hier einfach mal rein ;)

<?php
if ($handle = opendir(‘./test/’)) {      /* ./test/ das test müsst ihr durch euren eigenen Pfad ergänzen, ich habe hier einfach einen ordner unter der Datei erstellt, gab am wenigsten Probleme und es war wenig Umständlich */

    while (false !== ($file = readdir($handle))) {
        if($file != "." && $file != "..") {
            echo "'" . $file . "'" . "," . "&nbsp;&nbsp;&nbsp;";
            $size = getimagesize("./test/" . $file);    //Pfad wie oben ändern.
            echo $size[0] . ", ";
            echo $size[1] . ", 1, ";
            $temp = array();
            $temp = pathinfo("./test/" . $file);    //Pfad wie oben ändern
             echo "'" . $temp['filename'] . "',&nbsp;&nbsp;&nbsp;" . "':" . $temp['filename'] . ":'<br>";
        }
    }

    closedir($handle);
}
?>

Ich hab euch in den Kommentaren geschrieben was ihr noch verändern müsst damit es bei euch den Ordner mit den Smilies ausließt ;)

Ihr legt euch einfach eine PHP datei an, von mir aus auch auf eurem Server, legt unter dieser Datei einen ordner an, wo ihr den namen ändern müsst habe ich euch angegeben, und dann ruft ihr die Seite mit dem Script auf. Ich hatte es test.php genannt, rufe also www.blalba.de/test.php auf und tada!

DoubleMetaphone Algorithmus

Aus gegenem Anlass musste ich die über 600 Zeilen Code von einer SQL Funktion nach PHP portieren.

Wer es braucht, kann sich hier die Klasse anschauen:

DoubleMetaphone Algorithm on Pastebin

Er kann zur Ähnlichkeitssuche verwendet werden, so haben z.B. Don und Ton den gleichen Wert.

Zend_Framework Config.ini

Heute möchte ich euch etwas über Zend_Framework Config.ini erzählen, den diese ist nicht nur dazu da, um eine Verbindung zur Datenbank herzustellen.
Man kann noch einiges mehr damit anstellen, vorallem wenn man sie in die Registry schreibt, so das die Config daten von überall abrufbar sind.

1)

Normal kann man zb. folgendes in die Config schreiben:

Daten = "BlaBla"

Abrufen könnt ihr es folgender Maßen, ich mach einmal das holen der Config daten aus der Registry hier mit:

$ini = new Zend_Config_Ini('bla');      // in die klammern kommt der name der config datei in diesem fall Bla.ini
$ini->Daten;

2)

Um mehr struktur hineinzubringen können ihr mit Subkeys arbeiten, da könnt ihr soviele wie ihr möchtet aneinander pappen.

Daten.Person = "Ich"

Abruf:

$ini->Daten->Person;

3)

Array gibt es natürlich auch und auch verschiedene Arten, ich stell euch jedoch nur 1 vor.

Array1[] = "Inhalt"
Array1[] = “Inhalt2″

Abruf:

$ini->Array1->1;    // Ausgabe wäre hier: Inhalt2; ihr arbeitet hier mit den Keys

4)

TIPP: Für absolute Ordnung kann man innerhalb der Ini Gruppieren aber für normal große Projekte braucht man das in der Regel nicht.

Trotzdem erwähne ich kurz wie es funktioniert:

[group]
Key = "value"

Abruf:

$ini = new Zend_Config_Ini('bla', 'group');   //dateiname + gruppenname

der restliche abruf der daten erfolgt wie oben nur das nun bei dem einbeziehen der Ini datei die Gruppe miteinbezogen werden muss!

Zerlegen von Strings

Auch von mir gibt es mal einen kleinen Beitrag ;)
Ich hatte mir schon letzte Woche vorgenommen den Schnipsel hier zu schreiben, den es hat mich Zeit und nerven ohne Ende gekostet.

Wie man Strings zerlegt wissen die meisten und Schwer ist es nicht. Aber wie zerlegt ihr einen String,  ohne dabei Wörter zu zerhacken? Ich habe im Internet einige Lösungen gefunden, riesige Lösungen, doch die gefielen mir nicht, also hab ich einige Stunden darüber gebrütet und ein sehr schönes Ergebnis erzielt :) .


$str = 'Ich bin ein Ultra langes Kommentar, das ich zerlegen will aber bis jetzt noch, nicht geschafft habe also mal sehen';
$test = wordwrap($str, 40, '|', true);
$avar = explode('|', $test);
var_dump($avar);

Wie ihr seht sieht dieses Ergebnis erst einmal nicht spektakulär aus und es ist wenig Code. Ich erkläre euch nun was hier passiert.

$str ist meine ganz normale String Variable die ich zerlegen will. Die wordwrap Funktion  nimmt den String und zählt diesen durch bis er am 40 Zeichen von diesem angekommen ist und fügt dort das Zeichen “|” ein. Die True Variable ist für den Cut gesetzt, das könnt ihr auch im PHP Manual nachlesen ;)

Die Explode Funktion nimmt den String $test Variable, der “|” zeichen enthält, und jedes mal wenn er dieses Zeichen in dem String findet, cuttet er dort den String und speichert den schnipsel des viel zu langen String in einem Array. Das heißt Explode gibt ein Array zurück.

Das da oben ist ein voll funktionsfähiger Php schnipsel den könnt ihr so wie er ist irgendwo einfügen und er zerlgt euch den String den ich angegeben habe ;)

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress