/dev/blog/ Die Welt eines Freaks :D

5Mai/100

Apache Software Foundation

Wenn man heute von "Apache" redet meint man in den meisten fällen natürlich den Webserver von Apache, doch das die Apache Foundation mehr zu bieten hat als bloß das eine Projekt, wissen leider immer noch zu wenig!

Aus langeweile hab ich mir mal die gesamten Projekte der Foundation durchgesehen und da mal ein paar rausgesucht und möchte sie euch ein bisschenbeschreiben!

Apache Logging Services

Mit Hilfe der darin enthaltenen Frameworks kann man sehr einfach in seine Software sehr komplexe Logging-Mechanismen einbauen. Log4j ist ein wichtiges Unterprojekt davon.

"Log4j" wird sicher den einen oder anderen Programmierer was sagen.. doch meistens nur im bereich JAVA, aber es gibt Log4j auch für PHP:
klick mich

ActiveMQ

ActiveMQ ist ein Java Message Service für weitere Infos lest euch bei Wikipedia durch was ein Message Service ist :)

Apache MINA

MINA ist ein Framework für Netzwerk-basierte Anwendungen. Es stellt eine ereignisbasierte Programmierschnittstelle für asynchrone Kommunikation über Transportprotokolle wie TCP/IP and UDP/IP und Java NIO zur Verfügung.

SpamAssassin

Perl Implementierung eines Spam-Identifikators

Apache Subversion

SVN ist eine Freie Software zur Versionsverwaltung von Dateien und Verzeichnissen.

Die Versionierung erfolgt in einem zentralen Projektarchiv (engl. repository) in Form einer einfachen Revisionszählung. Wenn Änderungen an Inhalten verteilt auf den Computern der Bearbeiter ausgeführt werden, werden zwischen dem Projektarchiv und einem Arbeitsplatz jeweils nur die Unterschiede zu bereits vorhandenen Ständen übertragen.

Apache Nutch

Nutch ist der zurzeit bedeutendste Versuch der Open-Source-Community, eine Suchmaschine zu entwickeln. Die Nutch-Community selbst betreibt keine eigene Suchmaschine, sondern versteht sich als reiner Technologielieferant. Angeführt wird die Nutch-Community von Doug Cutting, einem bekannten Kopf in der Suchmaschinenwelt. Unter seiner Leitung konnte Excite 1997 den größten Suchmaschinenindex vermelden, damals 50 Millionen Seiten.

Nutch ist in Java geschrieben und greift auf das Indexiersystem Lucene zurück. Weite Teile der Software sind durch ein Plugin-System erweiterbar. Dadurch können auch Java-Anfänger einfach Teile zum Gesamtsystem beitragen, ohne dieses in allen Details verstehen zu müssen.

Und falls sich nun der ein oder andre fragt.. "hm ok Java.. schön?! Doch wie siehts mit PHP aus?"

Ganz einfach:

PHP/Java Bridge

ps: Sorry falls ich einige wichtige Projekte nicht erwähnt habe, aber es war doch einiges an Info :P

  • Share/Bookmark
veröffentlicht unter: Allgemein, PHP, Web keine Kommentare
10Mrz/100

AJAX + PHP + WEB 2.0

hab mich in den letzten Tagen mal damit beschäftigt und ich muss sagen genial was da alles möglich ist!

Man verwende einfach

und schon kanns los gehen ;)

Warum XAJAX wenn man jquery hat werden sich manche fragen?

Die Antwort ist klar: es ist einfacher für xajax sind fast keine JS kentnisse notwendig und für einen eingefleischten PHP - Freak wie mich genau richtig!

kleine Beispiel:

<?PHP
require_once("xajax_core/xajax.inc.php");

<pre>$xajax = new xajax();
$xajax->register(XAJAX_FUNCTION,"hallo");

<pre>function hallo($arg)
{
    // Macht irgendwas mit $arg. zB Datenbankabfragen
    // Hier packen wir $arg in eine neue Variable $newContent
        $newContent = "Value of \$arg: ".$arg;
 
    // Instanziierung vom xajaxResponse Objekt
    $objResponse = new xajaxResponse();
 
    // hinzufügen eines Kommanods in das response Objekt
    // In diesem Fall wird ein ->assign ausgeführt um der Eigenschaft "innerHTML"
    // des DIVs mit der ID SomeElementID mit neuem Inhalt zu überschreiben
    $objResponse->assign("SomeElementId","innerHTML", $newContent);
 
    //Rückgabe des response Objekts
    return $objResponse;
}
$xajax->processRequest();
</pre>
</pre>
</pre>
?>

im Header Tag von HTML fügt man dann noch das ein:

<?PHP $xajax->printJavascript(); ?>

es sorgt dafür das die nötigen JS Daten generiert werden!

beispiel wie man das verwendet:

<pre><button onclick="xajax_test('It worked!');"></button></pre>

einfach aber genial :D

  • Share/Bookmark
veröffentlicht unter: PHP, Web keine Kommentare
10Feb/100

GAPI und JS

Nach dem ich euch gestern das Tutorial gepostet habe hab ich mich selbst noch ein bisschen gespielt man kann schöne sachen damit machen hier 2 Beispiele:

und

echt nice.. die dinger :D

  • Share/Bookmark
veröffentlicht unter: PHP, Web keine Kommentare
9Feb/100

Google Analytics API

Wie ich neulich hier gelesen habe, gibt es eine Klasse namens GAPI und ich muss sagen:

NICE ;)

Features

wie funktioniert es?

<pre><?php

require 'gapi-1.3/gapi.class.php';

/* Set your Google Analytics credentials */
define('ga_account'     ,'YOUR ANALYTICS EMAIL');
define('ga_password'    ,'YOUR ANALYTICS PASSWORD');
define('ga_profile_id'  ,'ANALYTICS SITE PROFILE ID');

$ga = new gapi(ga_account,ga_password);

/* We are using the 'source' dimension and the 'visits' metrics */
$dimensions = array('source');
$metrics    = array('visits');

/* We will sort the result be desending order of visits,
    and hence the '-' sign before the 'visits' string */
$ga->requestReportData(ga_profile_id, $dimensions, $metrics,'-visits');

$gaResults = $ga->getResults();

$i=1;

foreach($gaResults as $result)
{
    printf("%-4d %-40s %5d\n",
           $i++,
           $result->getSource(),
           $result->getVisits());
}

echo "\n-----------------------------------------\n";
echo "Total Results : {$ga->getTotalResults()}";

?>

hier werden z.B. die top 10 der Zugriffe auf die HP angezeigt

<pre>No.  Source                                   Visits
------------------------------------------------------
1    google                                   10549
2    (direct)                                  1484
3    stumbleupon.com                           1338
4    webintenta.com                             159
5    bing                                       142
6    yahoo                                      115
7    feedburner                                  97
8    phpdeveloper.org                            70
9    t3n.de                                      64
10   clearspace.openqa.org                       43

und wenn man dann noch nette Effekte wie PHP - SWF Function
verwendet hat man den "checkeffect" geknackt.. ;)

  • Share/Bookmark
veröffentlicht unter: Allgemein keine Kommentare
9Feb/100

JS – Offline lesen

Kennt ihr das?

Ihr habt eine schöne Seite gemacht und möchtet verhindern das Leute diese offline lesen können ?!

hier ein kleiner trick wie ihr das verhindern könnt:


<script language="javascript">
 if (window.location.host != "www.badknight.at")
 {
 window.location.href = "http://badknight.at/error";
 }
 </script>
  • Share/Bookmark
veröffentlicht unter: Web keine Kommentare
9Feb/100

PHP SimpleXML und XML – so einfach geht es

Mit PHP5 wurde das Thema XML Parsen sehr einfach hier mal eine kleine Einführung wie es geht:

artikel.xml:


<?xml version="1.0" encoding="ISO-8859-1" ?>
<artikel>
<titel>Der Titel</titel>
<teaser>Der Teaser, eine kurze Beschreibung</teaser>
<inhalt>Der Artikelinhalt an sich</inhalt>
</artikel>

Um beispielsweise an den Inhalt des <teaser> Elementes zu gelangen, bedarf es nur weniger Zeilen Code:

simplexml_1.php:


<?php

if (file_exists('artikel.xml')) {
$xml = simplexml_load_file('artikel.xml');

echo $xml->teaser[0];

} else {
exit('Konnte Datei nicht laden.');
}
?>

Durch die simplexml_load_file() Funktion wird die XML Datei eingelesen und direkt in ein Objekt überführt. Auf die Elemente des Objektes kann jetzt wie auf normale Objekte zugegriffen werden. Die Ausgabe erfolgt über das $xml Objekt, welches nichts anderes als das Wurzelelement <artikel> darstellt.

Dabei erfolgt der Zugriff auf die Elemente jeweils über Arrays. Da in unserem Fall nur ein Element innerhalb des Wurzelelementes <artikel> als <teaser> Element verwendet wird, geschieht der Zugriff auf den Inhalt dieses Elementes mit dem Arrayindex 0. Wären zwei <teaser> Elemente verwendet, würde man über den Index 1 auf das zweite Element zugreifen.

Um zu verstehen, wie bei SimpleXML die Daten in Objekten gespeichert werden, kann man sich mit der var_dump() Funktion von PHP schlicht den gesamten Inhalt des Objektes ausgeben lassen. Man ändert den Code einfach wie folgt ab:

simplexml_1.php:


<?php

if (file_exists("artikel.xml")) {
$xml = simplexml_load_file("artikel.xml"');

var_dump($xml);
}
else {
exit("Konnte Datei nicht laden. ");
}
?>

Die Ausgabe nach Aufruf des Skriptes sieht wie folgt aus:


object(SimpleXMLElement)#1 (3)
{
["titel"]=> string(9) "Der Titel"
["teaser"]=> string(35) "Der Teaser, eine kurze Beschreibung"
["inhalt"]=> string(25) "Der Artikelinhalt an sich"
}

Darin erkennt man die gesamte Struktur des XML Dokumentes wieder. SimpleXML erkennt, dass das Dokument genau aus einem Element object(SimpleXMLElement)#1 besteht, welches drei object(SimpleXMLElement)#1 (3) untergeordnete Elemente beherbergt. Diese Elemente, ihr Datentyp und deren Inhalte werden dann in geschweiften Klammern angegeben.

Wenn man bedenkt, dass zum Parsen eines XML Dokumentes mit dem ereignisorientierten Parser Expat mindestens drei Funktionen definiert werden mussten, ist der hierzu notwendige Aufwand mit SimpleXML nicht vergleichbar.

Komplexere XML Dokumente und SimpleXML?
Auch komplexe XML Dokumente lassen sich mit SimpleXML rasch bearbeiten. Folgendes XML Dokument ist fast identisch mit dem Beispiel oben, es wurde jedoch mit Attributen und weiteren Elementen versehen.

artikel_2.xml:


<?xml version="1.0" encoding="ISO-8859-1" ?>
<content>
<artikel id="1">
<meta>
<keywords>ein,netter,artikel</keywords>
<description>ein,lustiger,artikel</description>
</meta>
<titel>Der Titel</titel>
<teaser>Der Teaser, eine kurze Beschreibung</teaser>
<inhalt>Der Artikelinhalt</inhalt>
</artikel>
<artikel id="2">
<meta>
<keywords>ein,zweiter,netter,artikel</keywords>
<description>ein,zweiter,lustiger,artikel</description>
</meta>
<titel>Der zweite Titel</titel>
<teaser>Der zweite Teaser, eine kurze  Beschreibung</teaser>
<inhalt>Der zweite Artikelinhalt</inhalt>
</artikel>
</content>

Da SimpleXML ausgesprochen modular aufgebaut ist und viele Schnittstellen zu weiteren PHP- beziehungsweise XML Technologien aufweist, können komplexe Untersuchungen von XML Dokumenten zum Beispiel über den in SimpleXML integrierten XPath Prozessor durchgeführt werden. Das heißt, man kann über die Pfadangaben in XPath auf die gesuchten Elemente zugreifen.

Dies soll im folgenden Beispiel geschehen – es soll lediglich der vom Besucher angefragte Artikel angezeigt werden. Der gewünschte Artikel wird durch die ID identifiziert, die im <artikel> Element als Attribut definiert ist. Diese ID wird über den URL an das PHP Programm übergeben.

simplexml2.php


<?php

$id = $_GET['id'];

if (file_exists("test.xml")) {

 $xml = simplexml_load_file("test.xml");
 $path ="/content/artikel[@id=".$id."]";

if (!$res = $xml->xpath($path)) {
echo "Artikel nicht vorhanden!";
}
else {
echo "<h1>".$res[0]->titel."</h1>";
echo "<p><b>".$res[0]->teaser."</b></p>";
echo "<p>".$res[0]->inhalt."</p>";
}
}
else {
exit("Konnte Datei nicht laden.");
}
?>

Auf den gewünschten Artikel wird über den XPath Pfad /content/artikel[@id=".$id."] zugegriffen. Die Anfrage wird über die xpath() Methode verarbeitet und das Ergebnis der Variable $res zurückgegeben. In diesem Array sind nun alle Elemente des gesuchten Artikel-Objektes gespeichert. Auf diese kann wie auf ein Objekt zugegriffen werden.

Weitere Informationen zu SimpleXML und PHP5.

  • Share/Bookmark
veröffentlicht unter: PHP, Web keine Kommentare
9Feb/100

.htaccess

Habt ihr euch schon mal gefragt wie das geht das ein php code in anscheinend normalen "html" dateien angezeigt wird?

es ist recht simpel.. man schreibt in eine Datei die ".htaccess" heißt folgendes rein:


AddType application/x-httpd-php php php4 php3 html htm

Mit diesem Code werden alle Dateien mit den Endungen *.php, *.php4, *.php3 und *.html, *.htm von PHP interpretiert.

  • Share/Bookmark
veröffentlicht unter: PHP, Web keine Kommentare
9Feb/100

PHP – Regex => alle img Tags auslesen

Mit diesem kleinen Trick können Sie alle src Werte von img-Tags über einen regulären Ausdruck mit PHP auslesen und ändern. Das ist hilfreich, wenn Sie einmal in viel HTML Code die URLs in dem img-Tag anpassen oder ändern müssen. Reguläre Ausdrücke machen es möglich.

Vielleicht kennen Sie das Problem? Sie möchten, dass in viel HTML Code, z.B. aus einer Datenbank, automatisch die src-Attribute an img-Tags angepasst werden. Sei es z.B., dass aus


<img src="/images/bild.jpg" alt="Ein Bild" />  automatisch <img src="<a href="http://www.testseite.de/images/bild.jpg">http://www.testseite.de/images/bild.jpg</a>"  alt="Ein Bild" />

werden soll.

Jetzt sind Sie sich aber nicht sicher, ob sie wirklich nur valides HTML verwendet haben? Also es soll auch folgendes ersetzt werden:


<IMG src="test/images/bild.jpg" alt="Ein Bild" />

oder

<imG SRC='mein_blog/images/bild.jpg' alt="Ein Bild">

Folgende Zeilen PHP Code erledigen das gewünschte:

$old = "Alter HTML Code, etwa <img src="/images/bild.jpg" alt="Ein  Bild" />
$neue_url = "<a href="http://www.testseite.de/">http://www.testseite.de</a>";
$pattern =  '/(<img.+?src=)(["\']?)([^\'"]+?)([^\/]+)(\2.*?\/?>)/is';
$replace = "$1$2".$neue_url."$4$5";
$new = preg_replace($pcre, $replace, $old);

Zu dem Code gibt es noch eine kurze Erklärung. Das zweite Subpattern fängt das linke Quote-Zeichen auf, oder eben keins, wenn keins da ist – falls der HTML code nicht valide ist. Das dritte passt auf den Pfad und wird deshalb ersetzt. Das vierte Subpattern erfasst alles nach dem letzten Slash bis zum Ende des Dateinamens. ‘\2′ ist eine Rückreferenz (”back reference”) und passt auf exakt das gleiche Zeichen wie das zweite Subpattern, also ‘”‘, “‘” oder kein Zeichen. Der Rest versucht alle möglichen Arten von img-Tags zu erfassen: “<img …>”, “<img …/>” und “<img … />”.

have fun ; )

  • Share/Bookmark
veröffentlicht unter: PHP, Web keine Kommentare
9Feb/100

Der Alte Trick..

Immer wieder kommt es vor, das mehr oder weniger Unerfahrene Surfer von einem anscheinenden "Hack" erzählen, da ihr Festplatteninhalt auf einer Website angezeigt wurde. Mit ein wenig HTML ist dieser Effekt möglich, und er ist völlig ungefährlich.

So manch ein Webmaster macht sich einen Spass daraus, den Besucher ein wenig zu schocken, in dem der Inhalt der Festplatte des Besuchers auf der Website angezeigt wird. Eigentlich ist dieser Effekt ziemlich "kindisch", doch sollte man schon Wissen, wie das mit HTML geht.
Ein einfacher Trick mit einem Iframe, also einem in das Dokument eingebetteten Frame macht dies möglich.


<iframe src="<a href="file:///C:/">file://C:/</a>" width="400"               height="400" name="werbung"><p>Ihr
Festplatteninhalt auf C</p></iframe>

easy oder ..  ;) ?

  • Share/Bookmark
veröffentlicht unter: Allgemein, Web keine Kommentare
25Mai/090

Neue Tastatur und Maus

seit Jahren gibt es eine Tastatur, die die Herzen aller gamer höher schlägen lässt und das ist die Logitech g15.

Als heute Plötzlich mein Bruder vorbei kahm und mir sagte das er sich ne falsche gekauft hat hab ich natürlich gleich zugeschlagen und somit die g11 erhalten (selbes Teil nur ohne Display) und ja, ist sehr nett ;)

  • Share/Bookmark
veröffentlicht unter: Allgemein keine Kommentare