<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PehBehBeh &#187; Webentwicklung</title>
	<atom:link href="http://pehbehbeh.de/webentwicklung/feed/" rel="self" type="application/rss+xml" />
	<link>http://pehbehbeh.de</link>
	<description>Erfahrungen eines Hobby-Webentwicklers</description>
	<lastBuildDate>Sun, 05 Feb 2012 21:12:57 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>money.js &#8211; Währungsumrechnung mit aktuellen Wechselkursen</title>
		<link>http://pehbehbeh.de/webentwicklung/javascript/waehrungsumrechnung-wechselkurs/</link>
		<comments>http://pehbehbeh.de/webentwicklung/javascript/waehrungsumrechnung-wechselkurs/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 23:09:27 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Bibliothek]]></category>
		<category><![CDATA[money.js]]></category>
		<category><![CDATA[Open Source Exchange Rates API]]></category>
		<category><![CDATA[Währungsumrechnung]]></category>
		<category><![CDATA[Wechselkurs]]></category>

		<guid isPermaLink="false">http://pehbehbeh.de/?p=1993</guid>
		<description><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2011/11/money.png" class="attachment-post-thumbnail wp-post-image" alt="Geld" title="Geld" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" />money.js ist eine kleine (&#60;1kb) JavaScript-Bibliothek zur Währungsumrechnung. Gedacht ist die Zusammenarbeit mit der stündlich aktualisierten Open Source Exchange Rates API. Es können jedoch auch eigene Wechselkurse angegeben werden. Beispiele Hier ein paar der offiziellen Beispiele: 1 2 3 4 5 &#8230; <a href="http://pehbehbeh.de/webentwicklung/javascript/waehrungsumrechnung-wechselkurs/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2011/11/money.png" class="attachment-post-thumbnail wp-post-image" alt="Geld" title="Geld" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" /><p><a href="http://josscrowcroft.github.com/money.js/">money.js</a> ist eine kleine<em> (&lt;1kb)</em> JavaScript-Bibliothek zur Währungsumrechnung. Gedacht ist die Zusammenarbeit mit der stündlich aktualisierten <a href="http://josscrowcroft.github.com/open-exchange-rates/">Open Source Exchange Rates API</a>. Es können jedoch auch eigene Wechselkurse angegeben werden.</p>
<p><hr style="clear: both;" /></p>
<h2>Beispiele</h2>
<p>Hier ein paar der offiziellen Beispiele:
<div class="pms">
<table class="javascript">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
2
3
4
5
6
7
8
9
10
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="co1">// From any currency, to any currency:</span>
fx.<span class="me1">convert</span><span class="br0">&#40;</span><span class="nu0">12.99</span><span class="sy0">,</span> <span class="br0">&#123;</span>from<span class="sy0">:</span> <span class="st0">&quot;GBP&quot;</span><span class="sy0">,</span> to<span class="sy0">:</span> <span class="st0">&quot;HKD&quot;</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// Chaining sugar:</span>
fx<span class="br0">&#40;</span><span class="nu0">1000</span><span class="br0">&#41;</span>.<span class="me1">from</span><span class="br0">&#40;</span><span class="st0">&quot;USD&quot;</span><span class="br0">&#41;</span>.<span class="me1">to</span><span class="br0">&#40;</span><span class="st0">&quot;GBP&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
fx<span class="br0">&#40;</span><span class="nu0">1000</span><span class="br0">&#41;</span>.<span class="me1">to</span><span class="br0">&#40;</span><span class="st0">&quot;AED&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// With simple settings and defaults, making this possible:</span>
fx.<span class="me1">convert</span><span class="br0">&#40;</span><span class="nu0">5318008</span><span class="br0">&#41;</span><span class="sy0">;</span>
fx<span class="br0">&#40;</span><span class="nu0">5318008</span><span class="br0">&#41;</span>.<span class="me1">to</span><span class="br0">&#40;</span><span class="st0">&quot;AED&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h2>Weiterführende Links</h2>
<ul>
<li><a href="http://josscrowcroft.github.com/money.js/">Offizielle Website</a></li>
<li><a href="http://josscrowcroft.github.com/money.js/#playground">Demo Playground</a></li>
<li><a href="http://josscrowcroft.github.com/money.js/#documentation">Dokumentation</a></li>
<li><a href="https://github.com/josscrowcroft/money.js/">GitHub Repository</a></li>
<li><a href="http://josscrowcroft.github.com/open-exchange-rates/">Open Source Exchange Rates API</a></li>
</ul>
<hr />
<p>
    <strong>Kategorie:</strong> <a href="http://pehbehbeh.de/webentwicklung/" title="Alle Artikel in Webentwicklung ansehen">Webentwicklung</a> &raquo; <a href="http://pehbehbeh.de/webentwicklung/javascript/" title="Alle Artikel in JavaScript ansehen">JavaScript</a> |
    <strong>Tags:</strong> <a href="http://pehbehbeh.de/tag/bibliothek/" rel="tag">Bibliothek</a>, <a href="http://pehbehbeh.de/tag/money-js/" rel="tag">money.js</a>, <a href="http://pehbehbeh.de/tag/open-source-exchange-rates-api/" rel="tag">Open Source Exchange Rates API</a>, <a href="http://pehbehbeh.de/tag/waehrungsumrechnung/" rel="tag">Währungsumrechnung</a>, <a href="http://pehbehbeh.de/tag/wechselkurs/" rel="tag">Wechselkurs</a>
</p>
<p>
    <a href="http://pehbehbeh.de/webentwicklung/javascript/waehrungsumrechnung-wechselkurs/">zum Artikel</a> |
    <a href="http://pehbehbeh.de/webentwicklung/javascript/waehrungsumrechnung-wechselkurs/#comments">3 Kommentare</a>
</p> <p><a href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1993&amp;md5=eee7ab6bdd9b3f28cff707d8854be5b0" title="Flattr" target="_blank"><img src="http://pehbehbeh.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://pehbehbeh.de/webentwicklung/javascript/waehrungsumrechnung-wechselkurs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1993&amp;md5=eee7ab6bdd9b3f28cff707d8854be5b0" type="text/html" />
	</item>
		<item>
		<title>Dropbox Public-Ordner mit eigener Domain</title>
		<link>http://pehbehbeh.de/webentwicklung/dropbox-public-ordner-eigene-domain/</link>
		<comments>http://pehbehbeh.de/webentwicklung/dropbox-public-ordner-eigene-domain/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 00:03:30 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Datei]]></category>
		<category><![CDATA[Domain]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[ID]]></category>
		<category><![CDATA[Ordner]]></category>
		<category><![CDATA[Public]]></category>
		<category><![CDATA[Subdomain]]></category>
		<category><![CDATA[Verzeichnis]]></category>

		<guid isPermaLink="false">http://pehbehbeh.de/?p=1614</guid>
		<description><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2011/06/dropbox_psycho.png" class="attachment-post-thumbnail wp-post-image" alt="Psycho Dropbox" title="Psycho Dropbox" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" />Mittlerweile gibt es unzählige Möglichkeiten die Dropbox produktiv zu nutzen. Eine davon ist, den Public-Ordner als Download-Server zu verwenden. Wie das mit der eigenen Domain funktioniert, werde ich euch in diesem Artikel beschreiben. Schritt 1: Die persönliche ID Zunächst benötigen &#8230; <a href="http://pehbehbeh.de/webentwicklung/dropbox-public-ordner-eigene-domain/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2011/06/dropbox_psycho.png" class="attachment-post-thumbnail wp-post-image" alt="Psycho Dropbox" title="Psycho Dropbox" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" /><p>Mittlerweile gibt es unzählige Möglichkeiten die Dropbox produktiv zu nutzen. Eine davon ist, den Public-Ordner als Download-Server zu verwenden. Wie das mit der eigenen Domain funktioniert, werde ich euch in diesem Artikel beschreiben.</p>
<p><hr style="clear: both;" /></p>
<p><a title="Get Dropbox" href="http://db.tt/EUt3Cep"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="Dropbox Logo" src="/wp-content/uploads/2011/06/esuslogo101409-480x162.png" alt="" width="480" height="162" /></a></p>
<h2>Schritt 1: Die persönliche ID</h2>
<p>Zunächst benötigen wir die persönliche ID des eigenen Public-Ordners. Den Link zu einer Datei in eurem Public-Ordner erhaltet ihr über das Kontextmenü. Dieser entspricht folgendem Schema:</p>
<blockquote><p><strong>http://dl.dropbox.com/u/<span style="color: #ff0000;">123456</span>/</strong>ordner/datei.abc</p></blockquote>
<p>Der rot markierte Teil ist die ID.</p>
<h2>Schritt 2: (Sub-)Domain anlegen</h2>
<p>Nun legt ihr die Domain oder eine Subdomain an. Für mein Beispiel nutze ich folgende Subdomain:</p>
<blockquote><p>download.pehbehbeh.de</p></blockquote>
<h2>Schritt 3: .htaccess-Datei erstellen</h2>
<p>Damit die erstellte Domain jetzt zu unserem Public-Ordner weiterleitet, ist eine .htaccess-Datei im Root-Verzeichnis der Domain mit folgendem Inhalt nötig:
<div class="pms">
<table class="none">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
2
3
4
</pre>
</td>
<td class="de1">
<pre class="de1">&lt;IfModule mod_rewrite.c&gt;
&nbsp; &nbsp; RewriteEngine on
&nbsp; &nbsp; RewriteRule ^(.*)$ http://dl.dropbox.com/u/839455/$1 [L,QSA]
&lt;/IfModule&gt;</pre>
</td>
</tr>
</tbody>
</table>
</div>
<p><em>Nicht vergessen die eigene ID einzutragen!</em></p>
<h3>Beispiele</h3>
<p>Folgende Anfragen&#8230;</p>
<blockquote><p>download.pehbehbeh.de/<strong>beispiel.txt</strong><br />
download.pehbehbeh.de/<strong>test/mit/ordner/123.txt</strong><br />
download.pehbehbeh.de/<strong>mein_riesiges_archiv.zip</strong></p></blockquote>
<p>&#8230;landen jetzt hier:</p>
<blockquote><p>dl.dropbox.com/u/839455/<strong>beispiel.txt</strong><br />
dl.dropbox.com/u/839455/<strong>test/mit/ordner/123.txt</strong><br />
dl.dropbox.com/u/839455/<strong>mein_riesiges_archiv.zip</strong></p></blockquote>
<hr />
<p>
    <strong>Kategorie:</strong> <a href="http://pehbehbeh.de/webentwicklung/" title="Alle Artikel in Webentwicklung ansehen">Webentwicklung</a> |
    <strong>Tags:</strong> <a href="http://pehbehbeh.de/tag/htaccess/" rel="tag">.htaccess</a>, <a href="http://pehbehbeh.de/tag/datei/" rel="tag">Datei</a>, <a href="http://pehbehbeh.de/tag/domain/" rel="tag">Domain</a>, <a href="http://pehbehbeh.de/tag/download/" rel="tag">Download</a>, <a href="http://pehbehbeh.de/tag/dropbox/" rel="tag">Dropbox</a>, <a href="http://pehbehbeh.de/tag/id/" rel="tag">ID</a>, <a href="http://pehbehbeh.de/tag/ordner/" rel="tag">Ordner</a>, <a href="http://pehbehbeh.de/tag/public/" rel="tag">Public</a>, <a href="http://pehbehbeh.de/tag/subdomain/" rel="tag">Subdomain</a>, <a href="http://pehbehbeh.de/tag/verzeichnis/" rel="tag">Verzeichnis</a>
</p>
<p>
    <a href="http://pehbehbeh.de/webentwicklung/dropbox-public-ordner-eigene-domain/">zum Artikel</a> |
    <a href="http://pehbehbeh.de/webentwicklung/dropbox-public-ordner-eigene-domain/#comments">3 Kommentare</a>
</p> <p><a href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1614&amp;md5=d6d8dda1ef01f2ab9eb1a4320370bee6" title="Flattr" target="_blank"><img src="http://pehbehbeh.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://pehbehbeh.de/webentwicklung/dropbox-public-ordner-eigene-domain/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1614&amp;md5=d6d8dda1ef01f2ab9eb1a4320370bee6" type="text/html" />
	</item>
		<item>
		<title>Tutorial: Websockets mit JavaScript und PHP &#8211; Teil 2: Linktipps</title>
		<link>http://pehbehbeh.de/webentwicklung/javascript/tutorial-websockets-mit-javascript-und-php-teil-2-linktipps/</link>
		<comments>http://pehbehbeh.de/webentwicklung/javascript/tutorial-websockets-mit-javascript-und-php-teil-2-linktipps/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 14:29:00 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Comet Daily]]></category>
		<category><![CDATA[David Walsh]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Firefox 3.7]]></category>
		<category><![CDATA[Firefox 4.0]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[Kompatibilität]]></category>
		<category><![CDATA[Linktipps]]></category>
		<category><![CDATA[Nettuts+]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Protokoll]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Serie]]></category>
		<category><![CDATA[Sicherheitslücke]]></category>
		<category><![CDATA[Socket.IO]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Version]]></category>
		<category><![CDATA[WebSocket API]]></category>
		<category><![CDATA[Websocket.org]]></category>
		<category><![CDATA[WebSockets]]></category>
		<category><![CDATA[Wikipedia]]></category>

		<guid isPermaLink="false">http://pehbehbeh.de/?p=1460</guid>
		<description><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2011/03/socket.png" class="attachment-post-thumbnail wp-post-image" alt="Socket" title="Socket" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" />Lang ist&#8217;s her: Im April letzten Jahres schrieb ich den ersten Artikel zur Serie WebSockets mit JavaScript und PHP. Da ich es verpennt habe, die Serie fortzusetzen und es mittlerweile ein paar sehr gute Tutorials da draußen gibt, möchte ich &#8230; <a href="http://pehbehbeh.de/webentwicklung/javascript/tutorial-websockets-mit-javascript-und-php-teil-2-linktipps/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2011/03/socket.png" class="attachment-post-thumbnail wp-post-image" alt="Socket" title="Socket" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" /><p>Lang ist&#8217;s her: Im April letzten Jahres schrieb ich den <a title="Tutorial: WebSockets mit JavaScript und PHP – Teil 1: Grundlagen und das Interface" href="http://pehbehbeh.de/webentwicklung/javascript/tutorial-websockets-grundlagen-interface/">ersten Artikel</a> zur <a href="http://pehbehbeh.de/series/websockets/">Serie WebSockets mit JavaScript und PHP</a>. Da ich es verpennt habe, die Serie fortzusetzen und es mittlerweile ein paar sehr gute Tutorials da draußen gibt, möchte ich die Reihe mit diesem Artikel und ein paar WebSocket-Linktipps abschließen.</p>
<p><hr style="clear: both;" /></p>
<h2>Entwicklung</h2>
<p>„Damals” steckte das Thema noch in den Kinderschuhen &#8211; doch mittlerweile sind WebSockets neben Chrome auch in den neuesten Versionen von Safari implementiert. Für den Firefox war zwar die Version 3.7 angepeilt &#8211; doch wegen einer Sicherheitslücke im Protokolldesign, werden es die WebSockets nicht einmal in die finale Version von Firefox 4.0 schaffen. (<a href="http://www.heise.de/security/meldung/WebSockets-in-Firefox-4-wegen-Luecke-im-Protokolldesign-deaktiviert-Update-1150157.html">Quelle</a>) In Opera sind sie deshalb seit Version 11 standardmäßig deaktiviert und lassen sich nur über einen Eintrag in der Config wieder aktivieren. (<a href="http://dev.opera.com/articles/view/introducing-web-sockets/">Quelle</a>)</p>
<h2>Linktipps</h2>
<p><strong>Wikipedia: <a href="https://secure.wikimedia.org/wikipedia/en/wiki/WebSockets">Websockets</a></strong></p>
<ul>
<li>allgemeiner Überblick</li>
</ul>
<p><strong><a href="http://websocket.org/">Websocket.org</a></strong></p>
<ul>
<li>kurze Zusammenfassung</li>
<li>Beispiele mit Testserver</li>
<li>genauere Betrachtung &amp; Vorteile von WebSockets</li>
</ul>
<p><strong>Comet Daily: <a href="http://cometdaily.com/2010/11/04/state-of-websocket-support/">State of Websocket Support</a></strong></p>
<ul>
<li>Welche Browser unterstützen WebSockets?</li>
</ul>
<p><strong>Nettuts+: <a href="http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/">Start Using HTML5 WebSockets Today</a></strong></p>
<ul>
<li>Was sind WebSockets?</li>
<li>Was ersetzen WebSockets?</li>
<li>Implementierung von Websockets<br />
(Server, URLs &amp; Ports, Client, Events, etc&#8230;)</li>
</ul>
<p><strong>David Walsh: <a href="http://davidwalsh.name/websocket">WebSocket und Socket.IO</a></strong></p>
<ul>
<li>Was ist die WebSocket API?</li>
<li>Verwendung der WebSocket API</li>
<li>WebSockets mit Socket.IO</li>
<li>dojox.Socket und Socket.IO</li>
</ul>
<p><em>Solltet ihr noch weitere gute Linktipps haben, schreibt sie einfach in die Kommentare. Ich werde die Liste dann ergänzen.</em></p>
<hr />
<p>
    <strong>Kategorie:</strong> <a href="http://pehbehbeh.de/webentwicklung/" title="Alle Artikel in Webentwicklung ansehen">Webentwicklung</a> &raquo; <a href="http://pehbehbeh.de/webentwicklung/javascript/" title="Alle Artikel in JavaScript ansehen">JavaScript</a> |
    <strong>Tags:</strong> <a href="http://pehbehbeh.de/tag/api/" rel="tag">API</a>, <a href="http://pehbehbeh.de/tag/artikel/" rel="tag">Artikel</a>, <a href="http://pehbehbeh.de/tag/browser/" rel="tag">Browser</a>, <a href="http://pehbehbeh.de/tag/comet-daily/" rel="tag">Comet Daily</a>, <a href="http://pehbehbeh.de/tag/david-walsh/" rel="tag">David Walsh</a>, <a href="http://pehbehbeh.de/tag/entwicklung/" rel="tag">Entwicklung</a>, <a href="http://pehbehbeh.de/tag/firefox/" rel="tag">Firefox</a>, <a href="http://pehbehbeh.de/tag/firefox-3-7/" rel="tag">Firefox 3.7</a>, <a href="http://pehbehbeh.de/tag/firefox-4-0/" rel="tag">Firefox 4.0</a>, <a href="http://pehbehbeh.de/tag/google-chrome/" rel="tag">Google Chrome</a>, <a href="http://pehbehbeh.de/tag/javascript/" rel="tag">JavaScript</a>, <a href="http://pehbehbeh.de/tag/kompatibilitaet/" rel="tag">Kompatibilität</a>, <a href="http://pehbehbeh.de/tag/linktipps/" rel="tag">Linktipps</a>, <a href="http://pehbehbeh.de/tag/nettuts/" rel="tag">Nettuts+</a>, <a href="http://pehbehbeh.de/tag/opera/" rel="tag">Opera</a>, <a href="http://pehbehbeh.de/tag/php/" rel="tag">PHP</a>, <a href="http://pehbehbeh.de/tag/protokoll/" rel="tag">Protokoll</a>, <a href="http://pehbehbeh.de/tag/safari/" rel="tag">Safari</a>, <a href="http://pehbehbeh.de/tag/serie/" rel="tag">Serie</a>, <a href="http://pehbehbeh.de/tag/sicherheitsluecke/" rel="tag">Sicherheitslücke</a>, <a href="http://pehbehbeh.de/tag/socket-io/" rel="tag">Socket.IO</a>, <a href="http://pehbehbeh.de/tag/tutorial/" rel="tag">Tutorial</a>, <a href="http://pehbehbeh.de/tag/version/" rel="tag">Version</a>, <a href="http://pehbehbeh.de/tag/websocket-api/" rel="tag">WebSocket API</a>, <a href="http://pehbehbeh.de/tag/websocket-org/" rel="tag">Websocket.org</a>, <a href="http://pehbehbeh.de/tag/websockets/" rel="tag">WebSockets</a>, <a href="http://pehbehbeh.de/tag/wikipedia/" rel="tag">Wikipedia</a>
</p>
<p>
    <a href="http://pehbehbeh.de/webentwicklung/javascript/tutorial-websockets-mit-javascript-und-php-teil-2-linktipps/">zum Artikel</a> |
    <a href="http://pehbehbeh.de/webentwicklung/javascript/tutorial-websockets-mit-javascript-und-php-teil-2-linktipps/#comments">ein Kommentar</a>
</p> <p><a href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1460&amp;md5=f684f698884bf1aecf0e8a899e36a3d3" title="Flattr" target="_blank"><img src="http://pehbehbeh.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://pehbehbeh.de/webentwicklung/javascript/tutorial-websockets-mit-javascript-und-php-teil-2-linktipps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1460&amp;md5=f684f698884bf1aecf0e8a899e36a3d3" type="text/html" />
	</item>
		<item>
		<title>Das HTML5-Logo wurde veröffentlicht</title>
		<link>http://pehbehbeh.de/webentwicklung/html-css/html5-logo/</link>
		<comments>http://pehbehbeh.de/webentwicklung/html-css/html5-logo/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 15:28:33 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[3D Effects]]></category>
		<category><![CDATA[Badge]]></category>
		<category><![CDATA[Badge Builder]]></category>
		<category><![CDATA[Connectivity]]></category>
		<category><![CDATA[Device Access]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[HTML5 Logo]]></category>
		<category><![CDATA[Logo]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Offline Storage]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[Semantics]]></category>
		<category><![CDATA[Sticker]]></category>
		<category><![CDATA[Styling]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[T-Shirt]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Technology Classes]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://pehbehbeh.de/?p=1364</guid>
		<description><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2011/01/html5logo.png" class="attachment-post-thumbnail wp-post-image" alt="HTML5 Logo" title="HTML5 Logo" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" />Etwas überraschend wurde das offizielle HTML5-Logo veröffentlicht. Ich finde es persönlich sehr gelungen und wenn es dazu beträgt, HTML5 stärker zu verbreiten &#8211; warum nicht? Doch ich will euch nicht länger auf die Folter spannen&#8230; So sieht es aus: Auf &#8230; <a href="http://pehbehbeh.de/webentwicklung/html-css/html5-logo/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2011/01/html5logo.png" class="attachment-post-thumbnail wp-post-image" alt="HTML5 Logo" title="HTML5 Logo" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" /><p>Etwas überraschend wurde <a href="http://www.w3.org/html/logo/">das offizielle HTML5-Logo</a> veröffentlicht. Ich finde es persönlich sehr gelungen und wenn es dazu beträgt, HTML5 stärker zu verbreiten &#8211; warum nicht? Doch ich will euch nicht länger auf die Folter spannen&#8230;</p>
<p><hr style="clear: both;" /></p>
<p>So sieht es aus:</p>
<p style="text-align: center;"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="size-large wp-image-1365 aligncenter" title="HTML5 Topper" src="http://pehbehbeh.de/wp-content/uploads/2011/01/html5-topper-480x324.png" alt="" width="480" height="324" /></p>
<p style="text-align: left;">Auf der offiziellen Seite gibt es das <a href="http://www.w3.org/html/logo/#downloads">Logo in sämtlichen Variationen und Größen zum Download</a> als PNG- oder SVG-Datei. Zudem sind noch sogenannte <strong>Technology Classes</strong> verfügbar, mit denen Technologien dargestellt werden können, die zum Einsatz kommen:</p>
<table border="0" width="100%">
<tbody>
<tr>
<td><img class="alignnone size-full wp-image-1369" title="HTML5: 3D Effects" src="http://pehbehbeh.de/wp-content/uploads/2011/01/HTML5_3D_Effects_32.png" alt="" width="32" height="32" /><br />
3D Effects</td>
<td><img class="alignnone size-full wp-image-1370" title="HTML5: Connectivity" src="http://pehbehbeh.de/wp-content/uploads/2011/01/HTML5_Connectivity_32.png" alt="" width="32" height="32" /><br />
Connectivity</td>
<td><img class="alignnone size-full wp-image-1371" title="HTML5: Device Access" src="http://pehbehbeh.de/wp-content/uploads/2011/01/HTML5_Device_Access_32.png" alt="" width="32" height="32" /><br />
Device Access</td>
<td><img class="alignnone size-full wp-image-1372" title="HTML5: Multimedia" src="http://pehbehbeh.de/wp-content/uploads/2011/01/HTML5_MultiMedia_32.png" alt="" width="32" height="32" /><br />
Multimedia</td>
</tr>
<tr>
<td><img class="alignnone size-full wp-image-1373" title="HTML5: Offline Storage" src="http://pehbehbeh.de/wp-content/uploads/2011/01/HTML5_Offline_Storage_32.png" alt="" width="32" height="32" /><br />
Offline Storage</td>
<td><img class="alignnone size-full wp-image-1374" title="HTML5: Performance" src="http://pehbehbeh.de/wp-content/uploads/2011/01/HTML5_Performance_32.png" alt="" width="32" height="32" /><br />
Performance</td>
<td><img class="alignnone size-full wp-image-1375" title="HTML5: Semantics" src="http://pehbehbeh.de/wp-content/uploads/2011/01/HTML5_Semantics_32.png" alt="" width="32" height="32" /><br />
Semanticss</td>
<td><img class="alignnone size-full wp-image-1376" title="HTML5: Styling" src="http://pehbehbeh.de/wp-content/uploads/2011/01/HTML5_Styling_32.png" alt="" width="32" height="32" /><br />
Styling</td>
</tr>
</tbody>
</table>
<p>Neben den verschiedenen Logos und Technology Icons gibt es noch den <a href="http://www.w3.org/html/logo/#badge-builder"><strong>Badge Builder</strong></a>, mit dem man kinderleicht ein Badge für die eigenen Website erstellen kann. Beispiel: Folgendes Badge enthält Performance, Semantics und Styling:</p>
<p><a href="http://www.w3.org/html/logo/"><br />
<img title="HTML5 Powered with CSS3 / Styling, Performance &amp; Integration, and Semantics" src="http://www.w3.org/html/logo/badge/html5-badge-h-css3-performance-semantics.png" alt="HTML5 Powered with CSS3 / Styling, Performance &amp; Integration, and Semantics" width="197" height="64" /><br />
</a></p>
<p style="text-align: left;">Zu guter Letzt können noch <a href="http://www.w3.org/html/logo/#swag">T-Shirts und kostenlose Sticker</a> bestellt werden&#8230;</p>
<hr />
<p>
    <strong>Kategorie:</strong> <a href="http://pehbehbeh.de/webentwicklung/" title="Alle Artikel in Webentwicklung ansehen">Webentwicklung</a> &raquo; <a href="http://pehbehbeh.de/webentwicklung/html-css/" title="Alle Artikel in HTML &amp; CSS ansehen">HTML &amp; CSS</a> |
    <strong>Tags:</strong> <a href="http://pehbehbeh.de/tag/3d-effects/" rel="tag">3D Effects</a>, <a href="http://pehbehbeh.de/tag/badge/" rel="tag">Badge</a>, <a href="http://pehbehbeh.de/tag/badge-builder/" rel="tag">Badge Builder</a>, <a href="http://pehbehbeh.de/tag/connectivity/" rel="tag">Connectivity</a>, <a href="http://pehbehbeh.de/tag/device-access/" rel="tag">Device Access</a>, <a href="http://pehbehbeh.de/tag/download/" rel="tag">Download</a>, <a href="http://pehbehbeh.de/tag/html5/" rel="tag">HTML5</a>, <a href="http://pehbehbeh.de/tag/html5-logo/" rel="tag">HTML5 Logo</a>, <a href="http://pehbehbeh.de/tag/logo/" rel="tag">Logo</a>, <a href="http://pehbehbeh.de/tag/multimedia/" rel="tag">Multimedia</a>, <a href="http://pehbehbeh.de/tag/offline-storage/" rel="tag">Offline Storage</a>, <a href="http://pehbehbeh.de/tag/performance/" rel="tag">Performance</a>, <a href="http://pehbehbeh.de/tag/png/" rel="tag">PNG</a>, <a href="http://pehbehbeh.de/tag/semantics/" rel="tag">Semantics</a>, <a href="http://pehbehbeh.de/tag/sticker/" rel="tag">Sticker</a>, <a href="http://pehbehbeh.de/tag/styling/" rel="tag">Styling</a>, <a href="http://pehbehbeh.de/tag/svg/" rel="tag">SVG</a>, <a href="http://pehbehbeh.de/tag/t-shirt/" rel="tag">T-Shirt</a>, <a href="http://pehbehbeh.de/tag/technologie/" rel="tag">Technologie</a>, <a href="http://pehbehbeh.de/tag/technology-classes/" rel="tag">Technology Classes</a>, <a href="http://pehbehbeh.de/tag/website/" rel="tag">Website</a>
</p>
<p>
    <a href="http://pehbehbeh.de/webentwicklung/html-css/html5-logo/">zum Artikel</a> |
    <a href="http://pehbehbeh.de/webentwicklung/html-css/html5-logo/#comments">keine Kommentare</a>
</p> <p><a href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1364&amp;md5=bdcbdc1e0c83313981ceb74d24b63990" title="Flattr" target="_blank"><img src="http://pehbehbeh.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://pehbehbeh.de/webentwicklung/html-css/html5-logo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1364&amp;md5=bdcbdc1e0c83313981ceb74d24b63990" type="text/html" />
	</item>
		<item>
		<title>Lesbare Zeitdifferenz à la Facebook &amp; Twitter mit PHP/WordPress darstellen</title>
		<link>http://pehbehbeh.de/webentwicklung/php/lesbare-zeitdifferenz/</link>
		<comments>http://pehbehbeh.de/webentwicklung/php/lesbare-zeitdifferenz/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 06:30:54 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tipps]]></category>

		<guid isPermaLink="false">http://pehbehbeh.de/?p=1170</guid>
		<description><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2010/10/clock-64x64.png" class="attachment-post-thumbnail wp-post-image" alt="Uhr" title="Uhr" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" />In sozialen Netzwerken wie Facebook und Twitter ist es üblich nicht den Zeitstempel eines Postings anzuzeigen, sondern die verstrichene Zeitspanne seit der Erstellung. In WordPress ist dies mit der Funktion human_time_diff() möglich, die sich schon seit Version 1.5 im Core &#8230; <a href="http://pehbehbeh.de/webentwicklung/php/lesbare-zeitdifferenz/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2010/10/clock-64x64.png" class="attachment-post-thumbnail wp-post-image" alt="Uhr" title="Uhr" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" /><p>In sozialen Netzwerken wie Facebook und Twitter ist es üblich nicht den Zeitstempel eines Postings anzuzeigen, sondern die verstrichene Zeitspanne seit der Erstellung. In WordPress ist dies mit der Funktion <code>human_time_diff()</code> möglich, die sich schon seit Version 1.5 im Core befindet &#8211; doch was steckt eigentlich hinter dieser Funktion?</p>
<p><hr style="clear: both;" /></p>
<h2>Die Funktion in WordPress</h2>
<p>Der Funktion <a href="http://codex.wordpress.org/Function_Reference/human_time_diff"><code>human_time_diff()</code></a> besitzt einen Pflichtparameter <strong>(<code>$from</code>)</strong> und einen optionalen Parameter <strong>(<code>$to</code>)</strong>. Zwischen diesen beiden Zeitstempeln wird die Differenz berechnet und in einem lesbaren Format zurückgegeben. Sollte kein zweiter Wert angegeben werden wird immer der aktuelle Zeitstempel verwendet, was in den meisten Fällen ausreichen sollte.</p>
<h3>Beispiel 1: Artikel</h3>
<div class="pms">
<table class="php">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="kw2">&lt;?php</span> <span class="kw1">echo</span> human_time_diff<span class="br0">&#40;</span>get_the_time<span class="br0">&#40;</span><span class="st_h">'U'</span><span class="br0">&#41;</span><span class="sy0">,</span> current_time<span class="br0">&#40;</span><span class="st_h">'timestamp'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">' ago'</span><span class="sy0">;</span> <span class="sy1">?&gt;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3>Beispiel 2: Kommentare</h3>
<p><?php echo human_time_diff(get_comment_time('U'), current_time('timestamp')) . ' ago'; ?>
<div class="pms">
<table class="php">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="kw2">&lt;?php</span> <span class="kw1">echo</span> human_time_diff<span class="br0">&#40;</span>get_the_time<span class="br0">&#40;</span><span class="st_h">'U'</span><span class="br0">&#41;</span><span class="sy0">,</span> current_time<span class="br0">&#40;</span><span class="st_h">'timestamp'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">' ago'</span><span class="sy0">;</span> <span class="sy1">?&gt;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h2>Die eigene Funktion</h2>
<p>Möchte man dieses Feature in die eigene (nicht-WordPress) Seite integrieren, muss man entweder selbst Hand anlegen oder in die <code>wp-includes/formatting.php</code> schauen. Dort findet man den Schnipsel der Funktion, der sich natürlich noch an die eigenen Bedürfnisse (z.B. die deutsche Sprache) anpassen lässt.
<div class="pms">
<table class="php">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">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
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="kw2">function</span> human_time_diff<span class="br0">&#40;</span> <span class="re0">$from</span><span class="sy0">,</span> <span class="re0">$to</span> <span class="sy0">=</span> <span class="st_h">''</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="kw3">empty</span><span class="br0">&#40;</span><span class="re0">$to</span><span class="br0">&#41;</span> <span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$to</span> <span class="sy0">=</span> <span class="kw3">time</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$diff</span> <span class="sy0">=</span> <span class="br0">&#40;</span>int<span class="br0">&#41;</span> <span class="kw3">abs</span><span class="br0">&#40;</span><span class="re0">$to</span> <span class="sy0">-</span> <span class="re0">$from</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$diff</span> <span class="sy0">&lt;=</span> <span class="nu0">3600</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$mins</span> <span class="sy0">=</span> <span class="kw3">round</span><span class="br0">&#40;</span><span class="re0">$diff</span> <span class="sy0">/</span> <span class="nu0">60</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$mins</span> <span class="sy0">&lt;=</span> <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$mins</span> <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="coMULTI">/* translators: min=minute */</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$since</span> <span class="sy0">=</span> <span class="kw3">sprintf</span><span class="br0">&#40;</span>_n<span class="br0">&#40;</span><span class="st_h">'%s min'</span><span class="sy0">,</span> <span class="st_h">'%s mins'</span><span class="sy0">,</span> <span class="re0">$mins</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re0">$mins</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$diff</span> <span class="sy0">&lt;=</span> <span class="nu0">86400</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="br0">&#40;</span><span class="re0">$diff</span> <span class="sy0">&gt;</span> <span class="nu0">3600</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$hours</span> <span class="sy0">=</span> <span class="kw3">round</span><span class="br0">&#40;</span><span class="re0">$diff</span> <span class="sy0">/</span> <span class="nu0">3600</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$hours</span> <span class="sy0">&lt;=</span> <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$hours</span> <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$since</span> <span class="sy0">=</span> <span class="kw3">sprintf</span><span class="br0">&#40;</span>_n<span class="br0">&#40;</span><span class="st_h">'%s hour'</span><span class="sy0">,</span> <span class="st_h">'%s hours'</span><span class="sy0">,</span> <span class="re0">$hours</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re0">$hours</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">elseif</span> <span class="br0">&#40;</span><span class="re0">$diff</span> <span class="sy0">&gt;=</span> <span class="nu0">86400</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$days</span> <span class="sy0">=</span> <span class="kw3">round</span><span class="br0">&#40;</span><span class="re0">$diff</span> <span class="sy0">/</span> <span class="nu0">86400</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$days</span> <span class="sy0">&lt;=</span> <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$days</span> <span class="sy0">=</span> <span class="nu0">1</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$since</span> <span class="sy0">=</span> <span class="kw3">sprintf</span><span class="br0">&#40;</span>_n<span class="br0">&#40;</span><span class="st_h">'%s day'</span><span class="sy0">,</span> <span class="st_h">'%s days'</span><span class="sy0">,</span> <span class="re0">$days</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re0">$days</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$since</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<hr />
<p>
    <strong>Kategorie:</strong> <a href="http://pehbehbeh.de/webentwicklung/" title="Alle Artikel in Webentwicklung ansehen">Webentwicklung</a> &raquo; <a href="http://pehbehbeh.de/webentwicklung/php/" title="Alle Artikel in PHP ansehen">PHP</a> |
    <strong>Tags:</strong> 
</p>
<p>
    <a href="http://pehbehbeh.de/webentwicklung/php/lesbare-zeitdifferenz/">zum Artikel</a> |
    <a href="http://pehbehbeh.de/webentwicklung/php/lesbare-zeitdifferenz/#comments">keine Kommentare</a>
</p> <p><a href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1170&amp;md5=ab11fb706f262904f05fda22228a8c66" title="Flattr" target="_blank"><img src="http://pehbehbeh.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://pehbehbeh.de/webentwicklung/php/lesbare-zeitdifferenz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1170&amp;md5=ab11fb706f262904f05fda22228a8c66" type="text/html" />
	</item>
		<item>
		<title>Pixelgenaue Objekterkennung mit HTML5 Canvas als Hilfsmittel</title>
		<link>http://pehbehbeh.de/webentwicklung/javascript/objekterkennung-html5-canvas/</link>
		<comments>http://pehbehbeh.de/webentwicklung/javascript/objekterkennung-html5-canvas/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 13:54:04 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Alpha-Wert]]></category>
		<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Clickmap]]></category>
		<category><![CDATA[CSS-Klasse]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Cursor]]></category>
		<category><![CDATA[Deckkraft]]></category>
		<category><![CDATA[Demo]]></category>
		<category><![CDATA[Demonstration]]></category>
		<category><![CDATA[Div]]></category>
		<category><![CDATA[Effekt]]></category>
		<category><![CDATA[Element]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Funktion]]></category>
		<category><![CDATA[Game Engine]]></category>
		<category><![CDATA[Grafik]]></category>
		<category><![CDATA[Hilfsmittel]]></category>
		<category><![CDATA[Hover]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Image Map]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[mouseenter]]></category>
		<category><![CDATA[mouseleave]]></category>
		<category><![CDATA[mousemove]]></category>
		<category><![CDATA[Offset]]></category>
		<category><![CDATA[Pixel]]></category>
		<category><![CDATA[Seitenabstand]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Transparenz]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://pehbehbeh.de/?p=1051</guid>
		<description><![CDATA[<img width="48" height="48" src="http://pehbehbeh.de/wp-content/uploads/2010/08/cursor-object.png" class="attachment-post-thumbnail wp-post-image" alt="Mauszeiger auf Objekt" title="Mauszeiger auf Objekt" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" />Wenn wir uns im Netz bewegen bestehen alle Websites irgendwie aus Kästen. Alles ist in irgendeiner Art und Weise irgendwie rechteckig. Zwar geben uns neue CSS3-Techniken die Möglichkeit unsere Elemente abzurunden, aber dennoch: Sie sind Kästen. Wen man eine schöne &#8230; <a href="http://pehbehbeh.de/webentwicklung/javascript/objekterkennung-html5-canvas/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<img width="48" height="48" src="http://pehbehbeh.de/wp-content/uploads/2010/08/cursor-object.png" class="attachment-post-thumbnail wp-post-image" alt="Mauszeiger auf Objekt" title="Mauszeiger auf Objekt" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" /><p>Wenn wir uns im Netz bewegen bestehen alle Websites irgendwie aus Kästen. Alles ist in irgendeiner Art und Weise irgendwie rechteckig. Zwar geben uns neue CSS3-Techniken die Möglichkeit unsere Elemente abzurunden, aber dennoch: Sie sind Kästen. Wen man eine schöne (nicht rechteckige) Grafik anklickbar machen möchte &#8211; und zwar nicht den gesamten Kasten, in dem sie sich befindet, muss man zum Beispiel auf arbeitsintensive Image Maps oder Flash zurückgreifen.</p>
<p>In diesem Artikel möchte ich euch zeigen, dass es mit Hilfe des Canvas-Elements aus HTML5 auch anders funktioniert. Das Element wird dabei <span style="text-decoration: underline;">nur als Hilfsmittel</span> genutzt und nicht dazu, die Grafik einzubinden.</p>
<p><hr style="clear: both;" /></p>
<h2>Die Idee</h2>
<p>Die Idee stammt zugegebenermaßen nicht von mir selbst &#8211; die Umsetzung in diesem Artikel jedoch schon. Ich schaute letztens eine interessantes Video über die <a href="http://www.youtube.com/watch?v=_RRnyChxijA">Erstellung einer Game Engine in JavaScript</a>. Im Video wurde darüber gesprochen Canvas als ein Tool zu benutzen um Pixeldaten aus einem Bild auszulesen &#8211; genauer gesagt aus einer PNG-Datei, die Transparenz beinhaltet.</p>
<p>So lässt sich ein zweidimensionales Array aus Nullen und Einsen erstellen, mit Hilfe dessen man leicht entscheiden kann, ob die Maus sich auf oder neben dem Objekt befindet. Dabei ist man noch nicht einmal beschränkt auf Klick-Events. Nette Hover-Effekte lassen sich genauso gut erstellen.</p>
<h2>Demonstration</h2>
<p>Obwohl es in  allen modernen Browsern funktionieren sollte, habe ich die Demo kurz  im Firefox abgefilmt, sodass auch wirklich jeder in den Genuss kommen kann. Im Video ist ein Hover-Effekt zu sehen, der die Deckkraft der Bilder verändert.</p>
<p><a href="http://dev.pehbehbeh.de/objectRecognition/"><strong>Link zur Live-Demo »</strong></a></p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/Qaj0eIeVZ3g?fs=1&amp;hl=de_DE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Qaj0eIeVZ3g?fs=1&amp;hl=de_DE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<h2>Setup</h2>
<h3>HTML</h3>
<p>Wie ich anfangs bereits erwähnte, können Bilder ganz normal in die Seite eingebunden werden, wie man es gewohnt ist. In meinem Beispiel habe ich Divs erstellt, die ein Hintergund-Bild besitzen.
<div class="pms">
<table class="html4strict">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;main&quot;</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;container&quot;</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable arrow&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable build&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable building&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable folder&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">hr</span> <span class="sy0">/</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable home&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable interact&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable paint&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable pathing&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">hr</span> <span class="sy0">/</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable pen&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable people&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable phonebook&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable plus&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">hr</span> <span class="sy0">/</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable printer&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable school&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable vault&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">div</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;clickable world&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span>
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">hr</span> <span class="sy0">/</span>&gt;</span>
<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">div</span>&gt;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3>CSS</h3>
<p>Die CSS-Regeln sind ebenfalls überschaubar. Die Deckkraft wird bei allen Bildern etwas verringert. Im Internet Explorer funktioniert der Effekt eh nicht, deswegen müssen wir uns auch auch nur um die Deckkraft bei den anderen Browsern kümmern.
<div class="pms">
<table class="css">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">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
30
31
32
33
34
35
36
37
38
</pre>
</td>
<td class="de1">
<pre class="de1">hr <span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="kw1">clear</span><span class="sy0">:</span> <span class="kw1">left</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="re1">.clickable</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="kw1">float</span><span class="sy0">:</span> <span class="kw1">left</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">128px</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">128px</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="kw1">margin-right</span><span class="sy0">:</span> <span class="re3">30px</span><span class="sy0">;</span>
&nbsp; &nbsp; -moz-opacity<span class="sy0">:</span> <span class="nu0">0.5</span><span class="sy0">;</span>
&nbsp; &nbsp; opacity<span class="sy0">:</span> <span class="nu0">0.5</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="re1">.hover</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; -khtml-opacity<span class="sy0">:</span> <span class="nu0">1.0</span><span class="sy0">;</span>
&nbsp; &nbsp; -moz-opacity<span class="sy0">:</span> <span class="nu0">1.0</span><span class="sy0">;</span>
&nbsp; &nbsp; opacity<span class="sy0">:</span> <span class="nu0">1.0</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="re1">.arrow</span> &nbsp; &nbsp;<span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/arrow.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span>
<span class="re1">.build</span> &nbsp; &nbsp;<span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/build.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span>
<span class="re1">.building</span> <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/building.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; <span class="br0">&#125;</span>
<span class="re1">.folder</span> &nbsp; <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/folder.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
<span class="re1">.home</span> &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/home.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span>
<span class="re1">.interact</span> &nbsp;<span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/interact.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;<span class="br0">&#125;</span>
<span class="re1">.paint</span> &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/paint.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; <span class="br0">&#125;</span>
<span class="re1">.pathing</span> &nbsp; <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/pathing.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; <span class="br0">&#125;</span>
&nbsp;
<span class="re1">.pen</span> &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/pen.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
<span class="re1">.people</span> &nbsp; &nbsp;<span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/people.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp;<span class="br0">&#125;</span>
<span class="re1">.phonebook</span> <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/phonebook.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span>
<span class="re1">.plus</span> &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/plus.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span>
&nbsp;
<span class="re1">.printer</span> &nbsp; <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/printer.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; <span class="br0">&#125;</span>
<span class="re1">.school</span> &nbsp; &nbsp;<span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/school.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp;<span class="br0">&#125;</span>
<span class="re1">.vault</span> &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/vault.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; <span class="br0">&#125;</span>
<span class="re1">.world</span> &nbsp; &nbsp; <span class="br0">&#123;</span> <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="st0">'../img/world.png'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; <span class="br0">&#125;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3>JavaScript</h3>
<p>Ich folgenden JavaScript-Teil werde ich jQuery-Funktionen nutzen, die mir das Leben hier und da etwas einfacher machen. Die Funktionen sind aber keinesfalls für die Umsetzung notwendig.</p>
<p>Insgesamt ist der oben gezeigt Hover-Effekt in drei Teile aufgeteilt:</p>
<ol>
<li>Die Maus betritt den Div <em>(mouseenter)</em></li>
<li>Die Maus bewegt sich im Div <em>(mousemove)</em></li>
<li>Die Maus verlässt den Div<em> (mouseleave)<br />
</em></li>
</ol>
<p>Natürlich muss jeder selbst wissen, wie man es letzendlich implementiert. Ich möchte lediglich die Grundidee mit diesem Beispiel veranschaulichen.</p>
<h4>1. Event: mouseenter</h4>
<p>Wenn die Maus den Div betritt, muss das Array erzeugt werden, das die Bild-Daten enthält. Dazu wird ein Canvas-Element erstellt, in dem das Hintergrundbild des Divs gezeichnet wird. Danach können die Pixel ausgelesen werden. Anhand des Alpha-Wertes (jeder vierte Wert) wird die Transparenz abgefragt und eine Clickmap erzeugt (0=nichts, 1=Objekt).</p>
<p>Zum Schluss wird die Clickmap gespeichert, damit wir sie im nächsten Schritt abfragen können.</p>
<p>Mit den jQuery-Funktionen ist alles recht simpel und schick gelöst. Nur mit der Abfrage des Hintergrundbildes bin ich noch nicht ganz zufrieden. Genaueres dazu hatte ich bereits letztens in <a href="http://pehbehbeh.de/webentwicklung/javascript/url-hintergrundbild/">einem anderen Artikel</a> geäußert.
<div class="pms">
<table class="javascript">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">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
30
31
32
</pre>
</td>
<td class="de1">
<pre class="de1">$<span class="br0">&#40;</span><span class="st0">'.clickable'</span><span class="br0">&#41;</span>.<span class="me1">mouseenter</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="kw2">var</span> obj <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; <span class="kw2">var</span> canvas <span class="sy0">=</span> document.<span class="me1">createElement</span><span class="br0">&#40;</span><span class="st0">'canvas'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="kw2">var</span> context <span class="sy0">=</span> canvas.<span class="me1">getContext</span><span class="br0">&#40;</span><span class="st0">'2d'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; <span class="kw2">var</span> img <span class="sy0">=</span> <span class="kw2">new</span> Image<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; img.<span class="kw3">onload</span> <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Bild nachzeichnen &amp; ImageData auslesen</span>
&nbsp; &nbsp; &nbsp; &nbsp; canvas.<span class="me1">width</span> &nbsp;<span class="sy0">=</span> img.<span class="me1">width</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; canvas.<span class="me1">height</span> <span class="sy0">=</span> img.<span class="me1">height</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; context.<span class="me1">drawImage</span><span class="br0">&#40;</span>img<span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> imageData <span class="sy0">=</span> context.<span class="me1">getImageData</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="sy0">,</span> <span class="nu0">0</span><span class="sy0">,</span> img.<span class="me1">width</span><span class="sy0">,</span> img.<span class="me1">height</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Clickmap erstellen</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> clickMap <span class="sy0">=</span> <span class="br0">&#91;</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw2">var</span> i<span class="sy0">=</span><span class="nu0">0</span><span class="sy0">,</span> n<span class="sy0">=</span>imageData.<span class="me1">data</span>.<span class="me1">length</span><span class="sy0">;</span> i<span class="sy0">&lt;</span>n<span class="sy0">;</span> i<span class="sy0">+=</span><span class="nu0">4</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> row <span class="sy0">=</span> Math.<span class="me1">floor</span><span class="br0">&#40;</span><span class="br0">&#40;</span>i<span class="sy0">/</span><span class="nu0">4</span><span class="br0">&#41;</span><span class="sy0">/</span>img.<span class="me1">width</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> col <span class="sy0">=</span> <span class="br0">&#40;</span>i<span class="sy0">/</span><span class="nu0">4</span><span class="br0">&#41;</span> <span class="sy0">-</span> <span class="br0">&#40;</span>row <span class="sy0">*</span> img.<span class="me1">width</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>clickMap<span class="br0">&#91;</span>row<span class="br0">&#93;</span><span class="br0">&#41;</span> clickMap<span class="br0">&#91;</span>row<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#91;</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; clickMap<span class="br0">&#91;</span>row<span class="br0">&#93;</span><span class="br0">&#91;</span>col<span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#40;</span>imageData.<span class="me1">data</span><span class="br0">&#91;</span>i<span class="sy0">+</span><span class="nu0">3</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="nu0">0</span> <span class="sy0">:</span> <span class="nu0">1</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Clickmap speichern</span>
&nbsp; &nbsp; &nbsp; &nbsp; obj.<span class="me1">data</span><span class="br0">&#40;</span><span class="st0">'clickMap'</span><span class="sy0">,</span> clickMap<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; <span class="co1">// Bild-Quelle angeben und onload-Event auslösen</span>
&nbsp; &nbsp; img.<span class="me1">src</span> <span class="sy0">=</span> obj.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">'backgroundImage'</span><span class="br0">&#41;</span>.<span class="me1">replace</span><span class="br0">&#40;</span><span class="co2">/\&quot;/g</span><span class="sy0">,</span> <span class="st0">''</span><span class="br0">&#41;</span>.<span class="me1">slice</span><span class="br0">&#40;</span><span class="nu0">4</span><span class="sy0">,</span> <span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h4>2. Event: mousemove</h4>
<p>Wenn wir die Maus über dem Div bewegen wird abgefragt ob wir uns auf einem sichtbaren Pixel befinden. Wenn dies der Fall ist, wird dem Div eine CSS-Klasse hinzugefügt bzw. wieder entfernt, wenn der Cursor sich auf einem transparenten Pixel befindet. In diesem Beispiel ändert die CSS-Klasse die Deckkraft.</p>
<p>Bei der Berechnung der Cursor-Position werden Seitenabstand und Scrollweite berücksichtigt. Die Offset-Werte müssen gerundet werden, da es im Firefox zu Dezimalwerten kommen kann.
<div class="pms">
<table class="javascript">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre>
</td>
<td class="de1">
<pre class="de1">$<span class="br0">&#40;</span><span class="st0">'.clickable'</span><span class="br0">&#41;</span>.<span class="me1">mousemove</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="kw2">var</span> obj <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="st0">&quot;undefined&quot;</span> <span class="sy0">===</span> <span class="kw1">typeof</span><span class="br0">&#40;</span>obj.<span class="me1">data</span><span class="br0">&#40;</span><span class="st0">'clickMap'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; <span class="kw2">var</span> offset <span class="sy0">=</span> obj.<span class="me1">offset</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="kw2">var</span> xPos <span class="sy0">=</span> e.<span class="me1">clientX</span> <span class="sy0">-</span> Math.<span class="me1">round</span><span class="br0">&#40;</span>offset.<span class="me1">left</span><span class="br0">&#41;</span> <span class="sy0">+</span> $<span class="br0">&#40;</span>window<span class="br0">&#41;</span>.<span class="me1">scrollLeft</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="kw2">var</span> yPos <span class="sy0">=</span> e.<span class="me1">clientY</span> <span class="sy0">-</span> Math.<span class="me1">round</span><span class="br0">&#40;</span>offset.<span class="me1">top</span><span class="br0">&#41;</span> &nbsp;<span class="sy0">+</span> $<span class="br0">&#40;</span>window<span class="br0">&#41;</span>.<span class="me1">scrollTop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>obj.<span class="me1">data</span><span class="br0">&#40;</span><span class="st0">'clickMap'</span><span class="br0">&#41;</span><span class="br0">&#91;</span>yPos<span class="br0">&#93;</span><span class="br0">&#91;</span>xPos<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; obj.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">'hover'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; obj.<span class="me1">removeClass</span><span class="br0">&#40;</span><span class="st0">'hover'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h4>3. Event: mouseleave</h4>
<p>Da der Fall auftreten könnte, das jemand die Maus besonders Schnell aus dem Div zieht oder das Bild am Rande des Divs einen sichtbaren Pixel besitzt sollte die CSS-Klasse auf jeden Fall entfernt werden, sobald man den Div verlässt.
<div class="pms">
<table class="javascript">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
2
3
</pre>
</td>
<td class="de1">
<pre class="de1">$<span class="br0">&#40;</span><span class="st0">'.clickable'</span><span class="br0">&#41;</span>.<span class="me1">mouseleave</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">removeClass</span><span class="br0">&#40;</span><span class="st0">'hover'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h2>Fazit</h2>
<p>Das war&#8217;s. Hat mich zwar einige Zeit gekostet diesen Effekt zu basteln, aber wenn man es jetzt so sieht, steckt nicht wirklich viel dahinter. Ich hoffe, dass ich euch damit weiterhelfen oder zumindest inspirieren konnte. Ich finde es zunmindest erstaunlich, wie neue Web-Technologien uns die Arbeit erleichtern können.</p>
<hr />
<p>
    <strong>Kategorie:</strong> <a href="http://pehbehbeh.de/webentwicklung/" title="Alle Artikel in Webentwicklung ansehen">Webentwicklung</a> &raquo; <a href="http://pehbehbeh.de/webentwicklung/javascript/" title="Alle Artikel in JavaScript ansehen">JavaScript</a> |
    <strong>Tags:</strong> <a href="http://pehbehbeh.de/tag/alpha-wert/" rel="tag">Alpha-Wert</a>, <a href="http://pehbehbeh.de/tag/artikel/" rel="tag">Artikel</a>, <a href="http://pehbehbeh.de/tag/browser/" rel="tag">Browser</a>, <a href="http://pehbehbeh.de/tag/canvas/" rel="tag">Canvas</a>, <a href="http://pehbehbeh.de/tag/clickmap/" rel="tag">Clickmap</a>, <a href="http://pehbehbeh.de/tag/css-klasse/" rel="tag">CSS-Klasse</a>, <a href="http://pehbehbeh.de/tag/css3/" rel="tag">CSS3</a>, <a href="http://pehbehbeh.de/tag/cursor/" rel="tag">Cursor</a>, <a href="http://pehbehbeh.de/tag/deckkraft/" rel="tag">Deckkraft</a>, <a href="http://pehbehbeh.de/tag/demo/" rel="tag">Demo</a>, <a href="http://pehbehbeh.de/tag/demonstration/" rel="tag">Demonstration</a>, <a href="http://pehbehbeh.de/tag/div/" rel="tag">Div</a>, <a href="http://pehbehbeh.de/tag/effekt/" rel="tag">Effekt</a>, <a href="http://pehbehbeh.de/tag/element/" rel="tag">Element</a>, <a href="http://pehbehbeh.de/tag/event/" rel="tag">Event</a>, <a href="http://pehbehbeh.de/tag/firefox/" rel="tag">Firefox</a>, <a href="http://pehbehbeh.de/tag/flash/" rel="tag">Flash</a>, <a href="http://pehbehbeh.de/tag/funktion/" rel="tag">Funktion</a>, <a href="http://pehbehbeh.de/tag/game-engine/" rel="tag">Game Engine</a>, <a href="http://pehbehbeh.de/tag/grafik/" rel="tag">Grafik</a>, <a href="http://pehbehbeh.de/tag/hilfsmittel/" rel="tag">Hilfsmittel</a>, <a href="http://pehbehbeh.de/tag/hover/" rel="tag">Hover</a>, <a href="http://pehbehbeh.de/tag/html5/" rel="tag">HTML5</a>, <a href="http://pehbehbeh.de/tag/ie/" rel="tag">IE</a>, <a href="http://pehbehbeh.de/tag/image-map/" rel="tag">Image Map</a>, <a href="http://pehbehbeh.de/tag/jquery/" rel="tag">jQuery</a>, <a href="http://pehbehbeh.de/tag/mouseenter/" rel="tag">mouseenter</a>, <a href="http://pehbehbeh.de/tag/mouseleave/" rel="tag">mouseleave</a>, <a href="http://pehbehbeh.de/tag/mousemove/" rel="tag">mousemove</a>, <a href="http://pehbehbeh.de/tag/offset/" rel="tag">Offset</a>, <a href="http://pehbehbeh.de/tag/pixel/" rel="tag">Pixel</a>, <a href="http://pehbehbeh.de/tag/seitenabstand/" rel="tag">Seitenabstand</a>, <a href="http://pehbehbeh.de/tag/tool/" rel="tag">Tool</a>, <a href="http://pehbehbeh.de/tag/transparenz/" rel="tag">Transparenz</a>, <a href="http://pehbehbeh.de/tag/video/" rel="tag">Video</a>
</p>
<p>
    <a href="http://pehbehbeh.de/webentwicklung/javascript/objekterkennung-html5-canvas/">zum Artikel</a> |
    <a href="http://pehbehbeh.de/webentwicklung/javascript/objekterkennung-html5-canvas/#comments">8 Kommentare</a>
</p> <p><a href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1051&amp;md5=8fefa7f70a9d621fcc1df4caf3d92580" title="Flattr" target="_blank"><img src="http://pehbehbeh.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://pehbehbeh.de/webentwicklung/javascript/objekterkennung-html5-canvas/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<atom:link rel="payment" href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1051&amp;md5=8fefa7f70a9d621fcc1df4caf3d92580" type="text/html" />
	</item>
		<item>
		<title>JavaScript: URL des Hintergrundbildes auslesen (Problem + Lösung)</title>
		<link>http://pehbehbeh.de/webentwicklung/javascript/url-hintergrundbild/</link>
		<comments>http://pehbehbeh.de/webentwicklung/javascript/url-hintergrundbild/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 19:45:18 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[backgroundImage]]></category>
		<category><![CDATA[Element]]></category>
		<category><![CDATA[Engine]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Gecko]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[Hintergrundbild]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[Lösung]]></category>
		<category><![CDATA[Problem]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Style]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[Webkit]]></category>

		<guid isPermaLink="false">http://pehbehbeh.de/?p=1016</guid>
		<description><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2010/08/link-64x64.png" class="attachment-post-thumbnail wp-post-image" alt="Link" title="Link" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" />Heute stand ich mal wieder vor einem kleinen Problem und bin mir bis jetzt nicht sicher, ob ich es optimal gelöst habe. Ich hoffe auf Verbesserungsvorschläge oder Zustimmung von euch. Mein Problem: Die Hintergrundbild-URL eines Divs muss ausgelesen werden&#8230; Das &#8230; <a href="http://pehbehbeh.de/webentwicklung/javascript/url-hintergrundbild/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2010/08/link-64x64.png" class="attachment-post-thumbnail wp-post-image" alt="Link" title="Link" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" /><p>Heute stand ich mal wieder vor einem kleinen Problem und bin mir bis jetzt nicht sicher, ob ich es optimal gelöst habe. Ich hoffe auf Verbesserungsvorschläge oder Zustimmung von euch. Mein Problem: Die Hintergrundbild-URL eines Divs muss ausgelesen werden&#8230;</p>
<p><hr style="clear: both;" /></p>
<h2>Das Problem</h2>
<p>An sich ist es kein Problem auf bestimmte Style-Werte von Elementen zuzugreifen. Wenn man jedoch die URL eines Hintergrundbildes (<a href="http://de.selfhtml.org/javascript/objekte/style.htm"><code>style.backgroundImage</code></a>) abfragt, erhält man &#8211; je nach Browser-Engine &#8211; unterschiedliche Rückgabewerte:</p>
<p><strong>Gecko <em>(z.B. Firefox)</em></strong></p>
<blockquote><p><code>url("http://pfad.de/zum/bild.png")</code></p></blockquote>
<p><strong>Webkit <em>(z.B. Chrome &amp; Safari)</em></strong></p>
<blockquote><p><code>url(http://pfad.de/zum/bild.png)</code></p></blockquote>
<p>Das haben zumindest meine Tests mit den neusten Versionen der jeweiligen Browser ergeben. Bei Chrome und Safari wird die URL nicht in Anführungszeichen gesetzt. Wenn man sich jetzt als Ziel gesetzt hat, <span style="text-decoration: underline;">nur die URL</span> des Hintergrundbildes abzufragen, muss man beide Engines beachten.</p>
<h2>Die Lösung</h2>
<p>Meine Lösung besteht darin, dass ich zunächst die Anführungszeichen aus der Zeichenkette entferne und danach alle Zeichen &#8211; bis auf die ersten Vier sowie das Letzte &#8211; mittels <a href="http://de.selfhtml.org/javascript/objekte/string.htm#slice"><code>slice()</code></a> extrahiere:
<div class="pms">
<table class="javascript">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="kw2">var</span> url <span class="sy0">=</span> document.<span class="me1">getElementById</span><span class="br0">&#40;</span><span class="st0">'foo'</span><span class="br0">&#41;</span>.<span class="me1">style</span>.<span class="me1">backgroundImage</span>.<span class="me1">replace</span><span class="br0">&#40;</span><span class="co2">/\&quot;/g</span><span class="sy0">,</span> <span class="st0">''</span><span class="br0">&#41;</span>.<span class="me1">slice</span><span class="br0">&#40;</span><span class="nu0">4</span><span class="sy0">,</span> <span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p><em>Der Internet Explorer 8 verhält sich in diesem Fall wie der Firefox. Andere Versionen habe ich nicht getestet. <strong>Was haltet ihr von dieser Lösung? Gibt es eine bessere oder einfachere Umsetzung?</strong></em></p>
<hr />
<p>
    <strong>Kategorie:</strong> <a href="http://pehbehbeh.de/webentwicklung/" title="Alle Artikel in Webentwicklung ansehen">Webentwicklung</a> &raquo; <a href="http://pehbehbeh.de/webentwicklung/javascript/" title="Alle Artikel in JavaScript ansehen">JavaScript</a> |
    <strong>Tags:</strong> <a href="http://pehbehbeh.de/tag/backgroundimage/" rel="tag">backgroundImage</a>, <a href="http://pehbehbeh.de/tag/element/" rel="tag">Element</a>, <a href="http://pehbehbeh.de/tag/engine/" rel="tag">Engine</a>, <a href="http://pehbehbeh.de/tag/firefox/" rel="tag">Firefox</a>, <a href="http://pehbehbeh.de/tag/gecko/" rel="tag">Gecko</a>, <a href="http://pehbehbeh.de/tag/google-chrome/" rel="tag">Google Chrome</a>, <a href="http://pehbehbeh.de/tag/hintergrundbild/" rel="tag">Hintergrundbild</a>, <a href="http://pehbehbeh.de/tag/ie8/" rel="tag">IE8</a>, <a href="http://pehbehbeh.de/tag/loesung/" rel="tag">Lösung</a>, <a href="http://pehbehbeh.de/tag/problem/" rel="tag">Problem</a>, <a href="http://pehbehbeh.de/tag/safari/" rel="tag">Safari</a>, <a href="http://pehbehbeh.de/tag/style/" rel="tag">Style</a>, <a href="http://pehbehbeh.de/tag/url/" rel="tag">URL</a>, <a href="http://pehbehbeh.de/tag/webkit/" rel="tag">Webkit</a>
</p>
<p>
    <a href="http://pehbehbeh.de/webentwicklung/javascript/url-hintergrundbild/">zum Artikel</a> |
    <a href="http://pehbehbeh.de/webentwicklung/javascript/url-hintergrundbild/#comments">2 Kommentare</a>
</p> <p><a href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1016&amp;md5=024696b1bd3cd9e6fcabc5491ef89680" title="Flattr" target="_blank"><img src="http://pehbehbeh.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://pehbehbeh.de/webentwicklung/javascript/url-hintergrundbild/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="http://pehbehbeh.de/?flattrss_redirect&amp;id=1016&amp;md5=024696b1bd3cd9e6fcabc5491ef89680" type="text/html" />
	</item>
		<item>
		<title>Exotische PHP-Funktionen: uniqid()</title>
		<link>http://pehbehbeh.de/webentwicklung/php/exotische-php-funktionen-uniqid/</link>
		<comments>http://pehbehbeh.de/webentwicklung/php/exotische-php-funktionen-uniqid/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 10:13:55 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Beispiel]]></category>
		<category><![CDATA[eindeutig]]></category>
		<category><![CDATA[Funktion]]></category>
		<category><![CDATA[ID]]></category>
		<category><![CDATA[Parameter]]></category>
		<category><![CDATA[PHP 4]]></category>
		<category><![CDATA[Präfix]]></category>
		<category><![CDATA[Rückgabewert]]></category>
		<category><![CDATA[String]]></category>
		<category><![CDATA[uniqid]]></category>

		<guid isPermaLink="false">http://pehbehbeh.de/?p=972</guid>
		<description><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2010/08/1281086507_application-x-php-64x64.png" class="attachment-post-thumbnail wp-post-image" alt="PHP" title="PHP" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" />Es ist mal wieder Zeit für einen neuen Part der Artikelserie &#8220;Exotische PHP-Funktionen&#8220;. Heute stelle ich euch eine Funktion vor, mit der eindeutige IDs generiert werden. Die Funktion Die Rede ist von uniqid(). Die offizielle Beschreibung der Funktion lautet: &#8220;Erzeugt &#8230; <a href="http://pehbehbeh.de/webentwicklung/php/exotische-php-funktionen-uniqid/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2010/08/1281086507_application-x-php-64x64.png" class="attachment-post-thumbnail wp-post-image" alt="PHP" title="PHP" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" /><p>Es ist mal wieder Zeit für einen neuen Part der Artikelserie &#8220;<a href="http://pehbehbeh.de/series/exotische-php-funktionen/">Exotische PHP-Funktionen</a>&#8220;. Heute stelle ich euch eine Funktion vor, mit der eindeutige IDs generiert werden.</p>
<p><hr style="clear: both;" /></p>
<h2>Die Funktion</h2>
<p>Die Rede ist von <a href="http://us2.php.net/manual/de/function.uniqid.php"><code>uniqid()</code></a>. Die offizielle Beschreibung der Funktion lautet: <em>&#8220;Erzeugt eine eindeutige ID&#8221;</em>. So einfach ist das. Der Rückgabewert ist ein 13 Zeichen langer String. Natürlich lässt sich hier, wie bei fast jeder Funktion, noch Einiges über Parameter anpassen.</p>
<h3>Parameter</h3>
<ul>
<li><strong><code>prefix</code></strong> &#8211; <em>fügt der generierten ID einen Präfix hinzu.</em><br />
Das kann in dem Falle hilfreich sein, wenn auf einem Server zur gleichen Mikrosekunde mehrere IDs erstellt werden. Diese würden sich andernfalls gleichen, da die Funktion zeitabhängig ist.</li>
<li><strong><code>more_entropy</code></strong> &#8211; <em>erhöht die Eindeutigkeit der ID, falls auf <code>true</code> gesetzt.</em><br />
Die ID verlängert sich von 13 Zeichen auf 23 Zeichen.</li>
</ul>
<h3>Beispiele</h3>
<div class="pms">
<table class="php">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
2
3
4
5
6
7
8
9
10
11
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="kw1">echo</span> <span class="kw3">uniqid</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// 4c5bdd5b6909c</span>
<span class="kw1">echo</span> <span class="kw3">uniqid</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;<span class="co1">// 4c5bdd5b690a4</span>
&nbsp;
<span class="kw1">echo</span> <span class="kw3">uniqid</span><span class="br0">&#40;</span><span class="st_h">'foo_'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// foo_4c5bdd5b690bc</span>
<span class="kw1">echo</span> <span class="kw3">uniqid</span><span class="br0">&#40;</span><span class="st_h">'foo_'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// foo_4c5bdd5b690c0</span>
&nbsp;
<span class="kw1">echo</span> <span class="kw3">uniqid</span><span class="br0">&#40;</span><span class="kw4">null</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// 4c5bdd5b690ab7.28264218</span>
<span class="kw1">echo</span> <span class="kw3">uniqid</span><span class="br0">&#40;</span><span class="kw4">null</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// 4c5bdd5b690b58.23513105</span>
&nbsp;
<span class="kw1">echo</span> <span class="kw3">uniqid</span><span class="br0">&#40;</span><span class="st_h">'foo_'</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// foo_4c5bdd5b690c56.41912889</span>
<span class="kw1">echo</span> <span class="kw3">uniqid</span><span class="br0">&#40;</span><span class="st_h">'foo_'</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// foo_4c5bdd5b690cb0.45755308</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3>Hinweise</h3>
<p>Solltet ihr noch auf PHP 4 fahren, ist der Parameter <strong><code>prefix</code></strong> noch <span style="text-decoration: underline;">nicht</span> optional.</p>
<hr />
<p>
    <strong>Kategorie:</strong> <a href="http://pehbehbeh.de/webentwicklung/" title="Alle Artikel in Webentwicklung ansehen">Webentwicklung</a> &raquo; <a href="http://pehbehbeh.de/webentwicklung/php/" title="Alle Artikel in PHP ansehen">PHP</a> |
    <strong>Tags:</strong> <a href="http://pehbehbeh.de/tag/beispiel/" rel="tag">Beispiel</a>, <a href="http://pehbehbeh.de/tag/eindeutig/" rel="tag">eindeutig</a>, <a href="http://pehbehbeh.de/tag/funktion/" rel="tag">Funktion</a>, <a href="http://pehbehbeh.de/tag/id/" rel="tag">ID</a>, <a href="http://pehbehbeh.de/tag/parameter/" rel="tag">Parameter</a>, <a href="http://pehbehbeh.de/tag/php-4/" rel="tag">PHP 4</a>, <a href="http://pehbehbeh.de/tag/praefix/" rel="tag">Präfix</a>, <a href="http://pehbehbeh.de/tag/rueckgabewert/" rel="tag">Rückgabewert</a>, <a href="http://pehbehbeh.de/tag/string/" rel="tag">String</a>, <a href="http://pehbehbeh.de/tag/uniqid/" rel="tag">uniqid</a>
</p>
<p>
    <a href="http://pehbehbeh.de/webentwicklung/php/exotische-php-funktionen-uniqid/">zum Artikel</a> |
    <a href="http://pehbehbeh.de/webentwicklung/php/exotische-php-funktionen-uniqid/#comments">keine Kommentare</a>
</p> <p><a href="http://pehbehbeh.de/?flattrss_redirect&amp;id=972&amp;md5=34adbb72605dc922d7f23a2d32b3f30d" title="Flattr" target="_blank"><img src="http://pehbehbeh.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://pehbehbeh.de/webentwicklung/php/exotische-php-funktionen-uniqid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://pehbehbeh.de/?flattrss_redirect&amp;id=972&amp;md5=34adbb72605dc922d7f23a2d32b3f30d" type="text/html" />
	</item>
		<item>
		<title>Counting-Problem bei automatischen Social-Buttons verhindern</title>
		<link>http://pehbehbeh.de/webentwicklung/javascript/counting-problem-social-buttons-verhindern/</link>
		<comments>http://pehbehbeh.de/webentwicklung/javascript/counting-problem-social-buttons-verhindern/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 11:38:04 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Button]]></category>
		<category><![CDATA[Code-Schnipsel]]></category>
		<category><![CDATA[Digg]]></category>
		<category><![CDATA[Feedburner]]></category>
		<category><![CDATA[get_permalink]]></category>
		<category><![CDATA[Hype]]></category>
		<category><![CDATA[Like]]></category>
		<category><![CDATA[Parameter]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Social News]]></category>
		<category><![CDATA[t3n]]></category>
		<category><![CDATA[Theme]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[urlencode]]></category>
		<category><![CDATA[Vote]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://pehbehbeh.de/?p=945</guid>
		<description><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2010/07/t3n_social_news_buttons-64x64.gif" class="attachment-post-thumbnail wp-post-image" alt="t3n Social News Buttons" title="t3n Social News Buttons" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" />Nach dieser Überschrift sehe ich schon das große Fragezeichen in den Gesichtern der Leser. Dabei ist das Problem, um das ich mich in diesem Artikel kümmern möchte, recht trivial. Auf manchen Websites werden wertvolle Votes, Hypes, Diggs, Likes, oder Wasweißichs &#8230; <a href="http://pehbehbeh.de/webentwicklung/javascript/counting-problem-social-buttons-verhindern/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<img width="64" height="64" src="http://pehbehbeh.de/wp-content/uploads/2010/07/t3n_social_news_buttons-64x64.gif" class="attachment-post-thumbnail wp-post-image" alt="t3n Social News Buttons" title="t3n Social News Buttons" style="float: left; padding: 6px; margin: 0 6px 6px 0; border: 6px solid #eee;" /><p>Nach dieser Überschrift sehe ich schon das große Fragezeichen in den Gesichtern der Leser. Dabei ist das Problem, um das ich mich in diesem Artikel kümmern möchte, recht trivial. Auf manchen Websites werden wertvolle Votes, Hypes, Diggs, Likes, oder Wasweißichs verschenkt, weil der Button falsch eingebaut wird.</p>
<p><hr style="clear: both;" /></p>
<h2>Beispiel: t3n Social News</h2>
<p>Ich möchte die Situation am Beispiel der <a href="http://t3n.de/socialnews/">Social News von t3n</a> verdeutlichen, da es mir selbst so ergangen ist.</p>
<p>Um den <a href="http://t3n.de/socialnews/tools/">t3n Social News Button</a> einzubauen, hat man genau zwei Möglichkeiten:</p>
<h3>1. <span style="text-decoration: underline;">ohne</span> Angabe der URL</h3>
<div class="pms">
<table class="html4strict">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="sc2">&lt;<span class="kw2">script</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://t3n.de/socialnews/ebutton/&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">script</span>&gt;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h3>2. <span style="text-decoration: underline;">mit</span> Angabe der URL</h3>
<div class="pms">
<table class="html4strict">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="sc2">&lt;<span class="kw2">script</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://t3n.de/socialnews/ebutton/http%253A%252F%252Fwww.yeebase.com%252Fblog%252F&quot;</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">script</span>&gt;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h2>Das Counting-Problem</h2>
<p>Bei Variante 1 wird die URL also automatisch ausgelesen. Das würde bedeuten, dass beispielsweise Besucher von Feedburner für eine andere URL Voten, als Besucher, die direkt auf die &#8220;echte&#8221; URL gegangen sind, da Feedburner ein paar Parameter an die URL hängt:</p>
<blockquote><p>
<strong>http://example.org/</strong></p>
<p>gegen:</p>
<p><strong>http://example.org/</strong><em>?utm_source=feedburner&#038;utm_medium=feed&#038;utm_campaign=Feed%3A+XYZBlog+(XYZBlog)&#038;utm_content=Google+Reader</em>
</p></blockquote>
<p>Außerdem werden die Votes, die man bereits für die Orginal-URL bekommen hat, gar nicht erst angezeigt.</p>
<h2>Aufruf: Immer URL übermitteln</h2>
<p>Deshalb meine logische Schlussfolgerung: Man sollte immer, wenn es möglich ist, die gewünschte URL der Seite übermitteln, da man es sonst &#8211; übertrieben gesagt &#8211; dem Zufall überlässt, wo die ersehnten Votes landen.</p>
<h2>t3n Social News Button für WordPress</h2>
<p>Zum Schluss gibt es noch einen kleinen Code-Schnipsel. So könnt ihr den t3n Social News Button in euer WordPress-Theme integrieren:
<div class="pms">
<table class="html4strict">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="sc2">&lt;<span class="kw2">script</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> <span class="kw3">src</span><span class="sy0">=</span><span class="st0">&quot;http://t3n.de/socialnews/ebutton/&lt;?php echo urlencode(urlencode(get_permalink())); ?&gt;</span></span>&quot;&gt;<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">script</span>&gt;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>Ein Plugin wäre hier mehr als überflüssig.</p>
<hr />
<p>
    <strong>Kategorie:</strong> <a href="http://pehbehbeh.de/webentwicklung/" title="Alle Artikel in Webentwicklung ansehen">Webentwicklung</a> &raquo; <a href="http://pehbehbeh.de/webentwicklung/javascript/" title="Alle Artikel in JavaScript ansehen">JavaScript</a> |
    <strong>Tags:</strong> <a href="http://pehbehbeh.de/tag/button/" rel="tag">Button</a>, <a href="http://pehbehbeh.de/tag/code-schnipsel/" rel="tag">Code-Schnipsel</a>, <a href="http://pehbehbeh.de/tag/digg/" rel="tag">Digg</a>, <a href="http://pehbehbeh.de/tag/feedburner/" rel="tag">Feedburner</a>, <a href="http://pehbehbeh.de/tag/get_permalink/" rel="tag">get_permalink</a>, <a href="http://pehbehbeh.de/tag/hype/" rel="tag">Hype</a>, <a href="http://pehbehbeh.de/tag/like/" rel="tag">Like</a>, <a href="http://pehbehbeh.de/tag/parameter/" rel="tag">Parameter</a>, <a href="http://pehbehbeh.de/tag/plugin/" rel="tag">Plugin</a>, <a href="http://pehbehbeh.de/tag/social-news/" rel="tag">Social News</a>, <a href="http://pehbehbeh.de/tag/t3n/" rel="tag">t3n</a>, <a href="http://pehbehbeh.de/tag/theme/" rel="tag">Theme</a>, <a href="http://pehbehbeh.de/tag/url/" rel="tag">URL</a>, <a href="http://pehbehbeh.de/tag/urlencode/" rel="tag">urlencode</a>, <a href="http://pehbehbeh.de/tag/vote/" rel="tag">Vote</a>, <a href="http://pehbehbeh.de/tag/wordpress/" rel="tag">WordPress</a>
</p>
<p>
    <a href="http://pehbehbeh.de/webentwicklung/javascript/counting-problem-social-buttons-verhindern/">zum Artikel</a> |
    <a href="http://pehbehbeh.de/webentwicklung/javascript/counting-problem-social-buttons-verhindern/#comments">keine Kommentare</a>
</p> <p><a href="http://pehbehbeh.de/?flattrss_redirect&amp;id=945&amp;md5=22ca99d78fc9337fc38a3bbe70a8c380" title="Flattr" target="_blank"><img src="http://pehbehbeh.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://pehbehbeh.de/webentwicklung/javascript/counting-problem-social-buttons-verhindern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://pehbehbeh.de/?flattrss_redirect&amp;id=945&amp;md5=22ca99d78fc9337fc38a3bbe70a8c380" type="text/html" />
	</item>
		<item>
		<title>Google Analytics &#8220;legaler&#8221; machen</title>
		<link>http://pehbehbeh.de/webentwicklung/javascript/google-analytics-legaler-machen/</link>
		<comments>http://pehbehbeh.de/webentwicklung/javascript/google-analytics-legaler-machen/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 10:00:24 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[AddOn]]></category>
		<category><![CDATA[anonym]]></category>
		<category><![CDATA[asynchron]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[IP-Adresse]]></category>
		<category><![CDATA[legal]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://pehbehbeh.de/?p=822</guid>
		<description><![CDATA[Google Analytics war in letzter Zeit häufig in den Medien. Immer wieder wurde der Umgang mit personenbezogenen Daten von Datenschützern kritisiert. Jetzt hat Google reagiert und zwei Optionen veröffentlicht, die dem Ärger der letzten Zeit Abhilfe schaffen sollen. 1. Plugin &#8230; <a href="http://pehbehbeh.de/webentwicklung/javascript/google-analytics-legaler-machen/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Google Analytics war in letzter Zeit häufig in den Medien. Immer wieder wurde der Umgang mit personenbezogenen Daten von Datenschützern kritisiert. Jetzt hat Google reagiert und zwei Optionen veröffentlicht, die dem Ärger der letzten Zeit Abhilfe schaffen sollen.</p>
<p><hr style="clear: both;" /></p>
<h2>1. Plugin für Besucher</h2>
<p>Zum einen kann ab sofort ein offizielles <a href="http://tools.google.com/dlpage/gaoptout?hl=de">Deaktivierungs-AddOn</a> für alle gängigen Browser (außer Safari) heruntergeladen werden. Es sorgt ganz einfach dafür, dass keine Daten vom Besucher zu Google Analytics gelangen. Damit besteht zwar nicht die Möglichkeit, den Dienst legaler zu machen, trotzdem haben Benutzer jetzt die Chance, Aufzeichnungen ihres Surf-Verhaltens zu blockieren.</p>
<h2>2. Code für Webmaster</h2>
<p>Auf der anderen Seite können Webmaster ihren Google Analytics Code um eine weitere Zeile ergänzen. Ich beschrieb bereits im Januar, wie man <a href="http://pehbehbeh.de/webentwicklung/javascript/google-analytics-asynchron-laden/">Google Analytics asynchron laden</a> kann. Diesen Code verändern wir nun wie folgt:
<div class="pms">
<table class="javascript">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
</pre>
</td>
<td class="de1">
<pre class="de1"><span class="sy0">&lt;</span>script<span class="sy0">&gt;</span>
<span class="kw2">var</span> _gaq <span class="sy0">=</span> _gaq <span class="sy0">||</span> <span class="br0">&#91;</span><span class="br0">&#93;</span><span class="sy0">;</span>
_gaq.<span class="me1">push</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="st0">'_setAccount'</span><span class="sy0">,</span> <span class="st0">'UA-XXXXX-X'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
_gaq.<span class="me1">push</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="st0">'anonymizeIp'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
_gaq.<span class="me1">push</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="st0">'_trackPageview'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="kw2">var</span> ga <span class="sy0">=</span> document.<span class="me1">createElement</span><span class="br0">&#40;</span><span class="st0">'script'</span><span class="br0">&#41;</span><span class="sy0">;</span> ga.<span class="me1">type</span> <span class="sy0">=</span> <span class="st0">'text/javascript'</span><span class="sy0">;</span> ga.<span class="me1">async</span> <span class="sy0">=</span> <span class="kw2">true</span><span class="sy0">;</span>
&nbsp; &nbsp; ga.<span class="me1">src</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="st0">'https:'</span> <span class="sy0">==</span> document.<span class="me1">location</span>.<span class="me1">protocol</span> <span class="sy0">?</span> <span class="st0">'https://ssl'</span> <span class="sy0">:</span> <span class="st0">'http://www'</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">'.google-analytics.com/ga.js'</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="kw2">var</span> s <span class="sy0">=</span> document.<span class="me1">getElementsByTagName</span><span class="br0">&#40;</span><span class="st0">'script'</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">;</span> s.<span class="me1">parentNode</span>.<span class="me1">insertBefore</span><span class="br0">&#40;</span>ga<span class="sy0">,</span> s<span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy0">&lt;/</span>script<span class="sy0">&gt;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>Es wurde eigentlich nur eine Zeile hinzugefügt.
<div class="pms">
<table class="javascript">
<tbody>
<tr class="li1">
<td class="ln">
<pre class="de1">4
</pre>
</td>
<td class="de1">
<pre class="de1">_gaq.<span class="me1">push</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="st0">'anonymizeIp'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>Sie bewirkt, dass die letzte Achtergruppe der IP-Adresse vernachlässigt wird. Somit werden zwar die geographischen Angaben in den Statistiken etwas ungenauer, sollten jedoch immer noch ausreichend sein, um einen Überblick zu bekommen. Zudem ist man auf der sicheren Seite, was den Datenschutz anbelangt.</p>
<hr />
<p>
    <strong>Kategorie:</strong> <a href="http://pehbehbeh.de/webentwicklung/" title="Alle Artikel in Webentwicklung ansehen">Webentwicklung</a> &raquo; <a href="http://pehbehbeh.de/webentwicklung/javascript/" title="Alle Artikel in JavaScript ansehen">JavaScript</a> |
    <strong>Tags:</strong> <a href="http://pehbehbeh.de/tag/addon/" rel="tag">AddOn</a>, <a href="http://pehbehbeh.de/tag/anonym/" rel="tag">anonym</a>, <a href="http://pehbehbeh.de/tag/asynchron/" rel="tag">asynchron</a>, <a href="http://pehbehbeh.de/tag/datenschutz/" rel="tag">Datenschutz</a>, <a href="http://pehbehbeh.de/tag/google-analytics/" rel="tag">Google Analytics</a>, <a href="http://pehbehbeh.de/tag/ip-adresse/" rel="tag">IP-Adresse</a>, <a href="http://pehbehbeh.de/tag/legal/" rel="tag">legal</a>, <a href="http://pehbehbeh.de/tag/plugin/" rel="tag">Plugin</a>
</p>
<p>
    <a href="http://pehbehbeh.de/webentwicklung/javascript/google-analytics-legaler-machen/">zum Artikel</a> |
    <a href="http://pehbehbeh.de/webentwicklung/javascript/google-analytics-legaler-machen/#comments">keine Kommentare</a>
</p> <p><a href="http://pehbehbeh.de/?flattrss_redirect&amp;id=822&amp;md5=4772324df9017ce71148a231e65d975a" title="Flattr" target="_blank"><img src="http://pehbehbeh.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://pehbehbeh.de/webentwicklung/javascript/google-analytics-legaler-machen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://pehbehbeh.de/?flattrss_redirect&amp;id=822&amp;md5=4772324df9017ce71148a231e65d975a" type="text/html" />
	</item>
	</channel>
</rss>

