/dev/blog/ Die Welt eines Freaks :D

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