<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Logaholic.de</title>
	
	<link>http://www.logaholic.de</link>
	<description>queer as code!</description>
	<lastBuildDate>Fri, 05 Feb 2010 10:00:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/logaholic" /><feedburner:info uri="logaholic" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license><item>
		<title>How to install cruisecontrol/phpUnderControl in Debian Lenny</title>
		<link>http://feedproxy.google.com/~r/logaholic/~3/SB93rPvDKcI/</link>
		<comments>http://www.logaholic.de/2010/02/05/how-to-install-cruisecontrolphpundercontrol-in-debian-lenny/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 09:23:16 +0000</pubDate>
		<dc:creator>Karsten Deubert</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[CruiseControl]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[lenny]]></category>
		<category><![CDATA[phpUnderControl]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.logaholic.de/?p=401</guid>
		<description><![CDATA[Some time ago, I posted a small tutorial how to install phpundercontrol in a fresh Debian Etch machine. As Debian Lenny is now out for some time I&#8217;d like to update this small tutorial for its changes.
The good thing: You don&#8217;t need to use backports anymore &#8211; the sun-java6-bin/sun-java6-jre packages are available in the lenny [...]


Related posts:<ol><li><a href='http://www.logaholic.de/2009/05/30/how-to-install-cruisecontrol-phpundercontrol-under-debian-etch/' rel='bookmark' title='Permanent Link: How to install cruisecontrol/phpUnderControl in Debian Etch'>How to install cruisecontrol/phpUnderControl in Debian Etch</a></li><li><a href='http://www.logaholic.de/2009/05/11/apache-ssl-and-phpundercontrol/' rel='bookmark' title='Permanent Link: Apache, SSL and phpUnderControl'>Apache, SSL and phpUnderControl</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Some time ago, I posted a <a title="How to install cruisecontrol/phpUnderControl in Debian Etch" href="http://www.logaholic.de/2009/05/30/how-to-install-cruisecontrol-phpundercontrol-under-debian-etch/" target="_blank">small tutorial how to install phpundercontrol in a fresh Debian Etch machine</a>. As Debian Lenny is now out for some time I&#8217;d like to update this small tutorial for its changes.</p>
<p>The good thing: You don&#8217;t need to use backports anymore &#8211; the sun-java6-bin/sun-java6-jre packages are available in the lenny non-free tree.</p>
<p>Therefore, the first thing to do is check your /etc/apt/sources.list if it checks for non-free packages (does not per default).</p>
<pre class="brush: bash; auto-links: false; gutter: false; html-script: false; ruler: false;">
deb http://ftp.debian.org/debian/ lenny main non-free
deb-src http://ftp.debian.org/debian/ lenny main non-free
</pre>
<p>The rest stays mostly the same:</p>
<pre class="brush: bash; auto-links: false; gutter: false; html-script: false; ruler: false;">
# update apt to include non-free packages
apt-get update

# install packets (java and subversion)
apt-get install sun-java6-bin sun-java6-jre
apt-get install subversion

# add symlink from /usr/bin/java to /bin/java for the cruisecontrol start script
ln -s /usr/bin/java /bin/java

# install apache (mainly for phpmyadmin) and php5 + cli
apt-get install apache2-mpm-prefork
apt-get install php5 php5-cli php5-dev
apt-get install php-pear make

# install xdebug (needed for phpunit)
pecl install xdebug
echo &quot;zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so&quot; &gt;&gt; /etc/php5/cli/php.ini

# install phpunit and phpundercontrol via pear
pear upgrade --force pear
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/phpunit
pear install --alldeps channel://components.ez.no/Graph
pear install --alldeps channel://pear.phpunit.de/phpundercontrol-0.5.0

# get and extract cruisecontrol
apt-get install unzip wget
cd ~
wget http://freefr.dl.sourceforge.net/sourceforge/cruisecontrol/cruisecontrol-bin-2.8.3.zip
unzip cruisecontrol-bin-2.8.3.zip -d /opt
cd /opt
ln -s cruisecontrol-bin-2.8.3 cruisecontrol

# run phpundercontrol modifications against cruisecontrol
phpuc install /opt/cruisecontrol

# first testrun
cd /opt/cruisecontrol
./cruisecontrol.sh
</pre>


<p>Related posts:<ol><li><a href='http://www.logaholic.de/2009/05/30/how-to-install-cruisecontrol-phpundercontrol-under-debian-etch/' rel='bookmark' title='Permanent Link: How to install cruisecontrol/phpUnderControl in Debian Etch'>How to install cruisecontrol/phpUnderControl in Debian Etch</a></li><li><a href='http://www.logaholic.de/2009/05/11/apache-ssl-and-phpundercontrol/' rel='bookmark' title='Permanent Link: Apache, SSL and phpUnderControl'>Apache, SSL and phpUnderControl</a></li></ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/5u3NFJRd5Yn8scd7LCIqMwnSxjk/0/da"><img src="http://feedads.g.doubleclick.net/~a/5u3NFJRd5Yn8scd7LCIqMwnSxjk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/5u3NFJRd5Yn8scd7LCIqMwnSxjk/1/da"><img src="http://feedads.g.doubleclick.net/~a/5u3NFJRd5Yn8scd7LCIqMwnSxjk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/logaholic/~4/SB93rPvDKcI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.logaholic.de/2010/02/05/how-to-install-cruisecontrolphpundercontrol-in-debian-lenny/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.logaholic.de/2010/02/05/how-to-install-cruisecontrolphpundercontrol-in-debian-lenny/</feedburner:origLink></item>
		<item>
		<title>Reading browser history with css and javascript</title>
		<link>http://feedproxy.google.com/~r/logaholic/~3/V35w1QHnNrI/</link>
		<comments>http://www.logaholic.de/2009/10/04/reading-browser-history-with-css-and-javascript/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 19:16:15 +0000</pubDate>
		<dc:creator>Karsten Deubert</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.logaholic.de/?p=398</guid>
		<description><![CDATA[This small script demonstrates how to check if a user has visited a particular url with his browser using css and javascript. Simple trick, small script, but could be dangerous &#8211; and you don&#8217;t see a damn thing.
The only protection against this of which i know is NoScript or just turning off JavaScript in your [...]


Related posts:<ol><li><a href='http://www.logaholic.de/2009/04/24/twiddling-with-obfuscated-javascript-code/' rel='bookmark' title='Permanent Link: Twiddling with obfuscated JavaScript code'>Twiddling with obfuscated JavaScript code</a></li><li><a href='http://www.logaholic.de/2009/05/18/uncompressing-zip-files-with-subfolders-in-air-applications-via-javascript/' rel='bookmark' title='Permanent Link: Uncompressing Zip-files with subfolders in AIR applications via JavaScript'>Uncompressing Zip-files with subfolders in AIR applications via JavaScript</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p><a title="reading browser history via css and javascript" href="http://www.logaholic.de/showroom/css_js_browser_history/" target="_blank">This small script demonstrates how to check if a user has visited a particular url with his browser using css and javascript</a>. Simple trick, small script, but could be dangerous &#8211; and you don&#8217;t see a damn thing.</p>
<p>The only protection against this of which i know is NoScript or just turning off JavaScript in your browser&#8230;</p>


<p>Related posts:<ol><li><a href='http://www.logaholic.de/2009/04/24/twiddling-with-obfuscated-javascript-code/' rel='bookmark' title='Permanent Link: Twiddling with obfuscated JavaScript code'>Twiddling with obfuscated JavaScript code</a></li><li><a href='http://www.logaholic.de/2009/05/18/uncompressing-zip-files-with-subfolders-in-air-applications-via-javascript/' rel='bookmark' title='Permanent Link: Uncompressing Zip-files with subfolders in AIR applications via JavaScript'>Uncompressing Zip-files with subfolders in AIR applications via JavaScript</a></li></ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/4Nlr00yioF8Lh8H3lGq74FYW2oA/0/da"><img src="http://feedads.g.doubleclick.net/~a/4Nlr00yioF8Lh8H3lGq74FYW2oA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4Nlr00yioF8Lh8H3lGq74FYW2oA/1/da"><img src="http://feedads.g.doubleclick.net/~a/4Nlr00yioF8Lh8H3lGq74FYW2oA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/logaholic/~4/V35w1QHnNrI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.logaholic.de/2009/10/04/reading-browser-history-with-css-and-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.logaholic.de/2009/10/04/reading-browser-history-with-css-and-javascript/</feedburner:origLink></item>
		<item>
		<title>Rotating dom elements with css3 and jscript/jquery animation</title>
		<link>http://feedproxy.google.com/~r/logaholic/~3/ApYW_ZRhBsY/</link>
		<comments>http://www.logaholic.de/2009/09/24/rotating-dom-elements-with-css3-and-jscriptjquery-animation/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 14:04:27 +0000</pubDate>
		<dc:creator>Karsten Deubert</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[rotating]]></category>

		<guid isPermaLink="false">http://www.logaholic.de/?p=393</guid>
		<description><![CDATA[If you want to rotate dom elements, webkit offers you
-webkit-transform: rotate(0deg);
and firefox offers you
-moz-transform: rotate(0deg);
I hacked together a small demo rotating dom elements with css including some animation with jscript/jquery.


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>If you want to rotate dom elements, webkit offers you</p>
<pre>-webkit-transform: rotate(0deg);</pre>
<p>and firefox offers you</p>
<pre id="line1">-moz-transform: rotate(0deg);</pre>
<p>I hacked together a small <a title="demo rotating dom elements with css including some animation with jscript/jquery" href="http://www.logaholic.de/showroom/css3_rotator/">demo rotating dom elements with css including some animation with jscript/jquery</a>.</p>


<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/YsvopW5y5orGLSxVN2D3OyiRuyE/0/da"><img src="http://feedads.g.doubleclick.net/~a/YsvopW5y5orGLSxVN2D3OyiRuyE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YsvopW5y5orGLSxVN2D3OyiRuyE/1/da"><img src="http://feedads.g.doubleclick.net/~a/YsvopW5y5orGLSxVN2D3OyiRuyE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/logaholic/~4/ApYW_ZRhBsY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.logaholic.de/2009/09/24/rotating-dom-elements-with-css3-and-jscriptjquery-animation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.logaholic.de/2009/09/24/rotating-dom-elements-with-css3-and-jscriptjquery-animation/</feedburner:origLink></item>
		<item>
		<title>Seth Godin on why marketing is too important to be left to the marketing department</title>
		<link>http://feedproxy.google.com/~r/logaholic/~3/qcEPXV9StDg/</link>
		<comments>http://www.logaholic.de/2009/08/29/seth-godin-on-why-marketing-is-too-important-to-be-left-to-the-marketing-department/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 18:44:54 +0000</pubDate>
		<dc:creator>Karsten Deubert</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[talk marketing]]></category>

		<guid isPermaLink="false">http://www.logaholic.de/2009/08/29/seth-godin-on-why-marketing-is-too-important-to-be-left-to-the-marketing-department/</guid>
		<description><![CDATA[I just found this very inspiring and interesting talk about marketing, presented for developers by Seth Godin (held at Business of Software 2008).


No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>I just found this <a href="http://blog.businessofsoftware.org/2009/07/seth-godins-talk-from-business-of-software-2008.html" target="_blank">very inspiring and interesting talk about marketing</a>, presented for developers by <a href="http://sethgodin.typepad.com/" target="_blank">Seth Godin</a> (held at <a href="http://www.businessofsoftware.org/" target="_blank">Business of Software 2008</a>).</p>


<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/IIJqEYt7y7LVHLEZyJtVh-SchRs/0/da"><img src="http://feedads.g.doubleclick.net/~a/IIJqEYt7y7LVHLEZyJtVh-SchRs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/IIJqEYt7y7LVHLEZyJtVh-SchRs/1/da"><img src="http://feedads.g.doubleclick.net/~a/IIJqEYt7y7LVHLEZyJtVh-SchRs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/logaholic/~4/qcEPXV9StDg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.logaholic.de/2009/08/29/seth-godin-on-why-marketing-is-too-important-to-be-left-to-the-marketing-department/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.logaholic.de/2009/08/29/seth-godin-on-why-marketing-is-too-important-to-be-left-to-the-marketing-department/</feedburner:origLink></item>
		<item>
		<title>Nagios: NRPE: Unable to read output error – check_apachestatus_auto.pl</title>
		<link>http://feedproxy.google.com/~r/logaholic/~3/COilJgRB3M8/</link>
		<comments>http://www.logaholic.de/2009/08/16/nagios-nrpe-unable-to-read-output-error-check_apachestatus_auto-pl/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 13:55:35 +0000</pubDate>
		<dc:creator>Karsten Deubert</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[NRPE]]></category>

		<guid isPermaLink="false">http://www.logaholic.de/?p=388</guid>
		<description><![CDATA[Today I solved a problem I had with check_apachestatus_auto.pl executed via NRPE.
Running the command as root worked fine but, running as user &#8220;nagios&#8221; just gave no output &#8211; which translated to the error message &#8220;NRPE: Unable to read output error&#8221; on the Nagios NRPE Client.
After checking file permissions, any debug modes and logs i found&#8230; [...]


Related posts:<ol><li><a href='http://www.logaholic.de/2009/06/04/error-0-on-air-application-installation/' rel='bookmark' title='Permanent Link: Error #0 on AIR application installation'>Error #0 on AIR application installation</a></li><li><a href='http://www.logaholic.de/2009/05/11/apache-ssl-and-phpundercontrol/' rel='bookmark' title='Permanent Link: Apache, SSL and phpUnderControl'>Apache, SSL and phpUnderControl</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Today I solved a problem I had with check_apachestatus_auto.pl executed via NRPE.</p>
<p>Running the command as root worked fine but, running as user &#8220;nagios&#8221; just gave no output &#8211; which translated to the error message &#8220;NRPE: Unable to read output error&#8221; on the Nagios NRPE Client.</p>
<p>After checking file permissions, any debug modes and logs i found&#8230; i finally got to /tmp and there was it: &#8220;127.0.0.1&#8230;&#8230;&#8221;, a temporary file created by that particular check plugin. Since i tested the plugin first as root, the file had root-only permissions, and the plugin executed as nagios just stopped somewhere while not being able to use/overwrite that file.</p>
<p>I deleted that particular file, and everything works fine now&#8230;</p>


<p>Related posts:<ol><li><a href='http://www.logaholic.de/2009/06/04/error-0-on-air-application-installation/' rel='bookmark' title='Permanent Link: Error #0 on AIR application installation'>Error #0 on AIR application installation</a></li><li><a href='http://www.logaholic.de/2009/05/11/apache-ssl-and-phpundercontrol/' rel='bookmark' title='Permanent Link: Apache, SSL and phpUnderControl'>Apache, SSL and phpUnderControl</a></li></ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/8hSameamCOjjZDBkSswx3tjoS8E/0/da"><img src="http://feedads.g.doubleclick.net/~a/8hSameamCOjjZDBkSswx3tjoS8E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/8hSameamCOjjZDBkSswx3tjoS8E/1/da"><img src="http://feedads.g.doubleclick.net/~a/8hSameamCOjjZDBkSswx3tjoS8E/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/logaholic/~4/COilJgRB3M8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.logaholic.de/2009/08/16/nagios-nrpe-unable-to-read-output-error-check_apachestatus_auto-pl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.logaholic.de/2009/08/16/nagios-nrpe-unable-to-read-output-error-check_apachestatus_auto-pl/</feedburner:origLink></item>
		<item>
		<title>Zend Studio 7 and Zend Framework 1.9.0 released</title>
		<link>http://feedproxy.google.com/~r/logaholic/~3/M_mRWBIYAvg/</link>
		<comments>http://www.logaholic.de/2009/08/01/zend-studio-7-and-zend-framework-1-9-0-released/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 10:00:13 +0000</pubDate>
		<dc:creator>Karsten Deubert</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Zend Studio]]></category>

		<guid isPermaLink="false">http://www.logaholic.de/?p=384</guid>
		<description><![CDATA[Zend Studio 7.0 brings a host of new features and enhancements that will help you develop faster, resolve defects more quickly, and take advantage of the latest PHP technologies directly from your development environment.
With full support for PHP 5.3, greatly enhanced source code editing, easy debugging through  integration with Zend Server, code generation through integration [...]


Related posts:<ol><li><a href='http://www.logaholic.de/2009/05/01/zend-framework-1-8-0-released/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.0 released'>Zend Framework 1.8.0 released</a></li><li><a href='http://www.logaholic.de/2009/04/24/agavi-vs-zend-framework-part-1-forms/' rel='bookmark' title='Permanent Link: Agavi vs Zend Framework Part 1 &#8211; Forms'>Agavi vs Zend Framework Part 1 &#8211; Forms</a></li><li><a href='http://www.logaholic.de/2009/05/05/review-lightweight-php5-oop-mvc-framework-simples-by-daniel-smacks-harrington/' rel='bookmark' title='Permanent Link: Review: Lightweight PHP5 OOP MVC framework &#8220;simples&#8221; by Daniel &#8217;smacks&#8217; Harrington'>Review: Lightweight PHP5 OOP MVC framework &#8220;simples&#8221; by Daniel &#8217;smacks&#8217; Harrington</a></li></ol>]]></description>
			<content:encoded><![CDATA[<blockquote><p>Zend Studio 7.0 brings a host of new features and enhancements that will help you develop faster, resolve defects more quickly, and take advantage of the latest PHP technologies directly from your development environment.</p>
<p>With full support for<span style="font-weight: bold;"> PHP 5.3</span>, greatly enhanced source code editing, <span style="font-weight: bold;">easy debugging</span> through  integration with <span style="font-weight: bold;">Zend Server</span>, <span style="font-weight: bold;">code generation</span> through integration with <span style="font-weight: bold;">Zend Framework</span>, and improved performance, Zend Studio maintains its position as the leading solution for professional PHP developers.</p></blockquote>
<p><a title="Zend Studio" href="http://www.zend.com/en/products/studio/" target="_blank">Zend Studio</a></p>
<blockquote><p><span style="font-weight: bold;">New features in Zend Framework 1.9:</span></p>
<ul>
<li>Complete support for PHP 5.3 as well as 5.2 means developers can use the latest PHP language features in their Zend Framework-based apps</li>
<li>RESTful web services: now made easier through automated routing/detection</li>
<li>Message queues: useful for offload processing (credit card transactions, media uploads), cross-platform communication, user messaging features, and more.</li>
<li>LDAP: Microsoft ActiveDirectory &amp; Novell, plus searching, filtering, and tree features</li>
<li>RSS &amp; Atom: consume these popular feed formats using a common API and higher performance cached HTTP</li>
<li>DBUnit support: DBUnit’s test data setup and teardown make unit testing Zend Framework applications much easier</li>
</ul>
</blockquote>
<p><a title="Zend Framework 1.9 Features PHP 5.3 Readiness and New Professional Components" href="http://www.zend.com/en/company/news/Press/zend-framework-features-php-readiness-and-new-professional-components" target="_blank">Zend Framework 1.9 Features PHP 5.3 Readiness and New Professional Components</a></p>
<p>Downloads are running, Testsuites will show if ZF 1.9 breaks anything, and I will take the opportunity to fix some plugin issues with Zend Studio while upgrading <img src='http://www.logaholic.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://www.logaholic.de/2009/05/01/zend-framework-1-8-0-released/' rel='bookmark' title='Permanent Link: Zend Framework 1.8.0 released'>Zend Framework 1.8.0 released</a></li><li><a href='http://www.logaholic.de/2009/04/24/agavi-vs-zend-framework-part-1-forms/' rel='bookmark' title='Permanent Link: Agavi vs Zend Framework Part 1 &#8211; Forms'>Agavi vs Zend Framework Part 1 &#8211; Forms</a></li><li><a href='http://www.logaholic.de/2009/05/05/review-lightweight-php5-oop-mvc-framework-simples-by-daniel-smacks-harrington/' rel='bookmark' title='Permanent Link: Review: Lightweight PHP5 OOP MVC framework &#8220;simples&#8221; by Daniel &#8217;smacks&#8217; Harrington'>Review: Lightweight PHP5 OOP MVC framework &#8220;simples&#8221; by Daniel &#8217;smacks&#8217; Harrington</a></li></ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/_TY4Jf42soaPfAroUUK6SNFA2D0/0/da"><img src="http://feedads.g.doubleclick.net/~a/_TY4Jf42soaPfAroUUK6SNFA2D0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_TY4Jf42soaPfAroUUK6SNFA2D0/1/da"><img src="http://feedads.g.doubleclick.net/~a/_TY4Jf42soaPfAroUUK6SNFA2D0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/logaholic/~4/M_mRWBIYAvg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.logaholic.de/2009/08/01/zend-studio-7-and-zend-framework-1-9-0-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.logaholic.de/2009/08/01/zend-studio-7-and-zend-framework-1-9-0-released/</feedburner:origLink></item>
		<item>
		<title>Premade admin panel layout – Complete Liquid Admin Control Panel</title>
		<link>http://feedproxy.google.com/~r/logaholic/~3/zpJfbKQPGy4/</link>
		<comments>http://www.logaholic.de/2009/06/17/premade-admin-panel-layout-complete-liquid-admin-control-panel/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 07:19:55 +0000</pubDate>
		<dc:creator>Karsten Deubert</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Admin panel]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[Template]]></category>

		<guid isPermaLink="false">http://www.logaholic.de/?p=369</guid>
		<description><![CDATA[I found this nice premade admin panel layout on themeforest.net, a single licence is just 15$ (10-projects licence 45$, which I bought).

Author description:
Complex Liquid Admin template that contains a login page as well as a modular content page that includes all the elements you could possibly need in your admin. From these elements you should [...]


Related posts:<ol><li><a href='http://www.logaholic.de/2009/05/11/improving-http-authentication/' rel='bookmark' title='Permanent Link: Improving HTTP Authentication'>Improving HTTP Authentication</a></li><li><a href='http://www.logaholic.de/2009/09/24/rotating-dom-elements-with-css3-and-jscriptjquery-animation/' rel='bookmark' title='Permanent Link: Rotating dom elements with css3 and jscript/jquery animation'>Rotating dom elements with css3 and jscript/jquery animation</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I found this <a title="Complete Liquid Admin Control Panel" href="http://themeforest.net/item/complete-liquid-admin-control-panel/24826" target="_blank">nice premade admin panel layout</a> on <a href="http://themeforest.net/" target="_blank">themeforest.net</a>, a single licence is just 15$ (10-projects licence 45$, which I bought).</p>
<p style="text-align: center;"><a href="http://themeforest.net/item/complete-liquid-admin-control-panel/24826"><img class="size-full wp-image-373 aligncenter" title="01-overview.__large_preview" src="http://www.logaholic.de/wp-content/uploads/2009/06/01-overview.__large_preview.png" alt="Complete Liquid Admin Control Panel" width="590" height="300" /></a></p>
<p>Author description:</p>
<blockquote><p><em>Complex Liquid Admin template that contains a login page as well as a modular content page that includes all the elements you could possibly need in your admin. From these elements you should be able to generate any required page.</em></p>
<p><em>Please open the preview to check out all the elements.</em></p>
<p><em><strong>Liquid</strong> as oposed to a fixed size means all the screen real-estate is used in the most efficient manner possible and also eliminates compatibility issues with non-standard, very low or very high screen resolutions.</em></p>
<p><em>Tableless CSS coding, cross-browser compatible and very stylish. Impress your customers today !</em></p>
<p><em>The template includes all page .psd files as well as slices and should be Easy to customise with medium knowledge of Photoshop and CSS .</em></p>
<p><em>Later edit : This template also contains rectangular notification boxes (ex. positive, negative, site message etc.) like our FlexiAdmin, however the shots don’t show this. So if you need these no worries, you will find them in the download package.</em></p></blockquote>
<p>I&#8217;m impressed with the details and &#8220;amount of work&#8221; you get for that small price. I&#8217;m definitely going to use this in some projects &#8211; at least in my own <img src='http://www.logaholic.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Links:</strong></p>
<ul>
<li><a title="Complete Liquid Admin Control Panel" href="http://themeforest.net/item/complete-liquid-admin-control-panel/24826" target="_blank">Complete Liquid Admin Control Panel</a></li>
<li><a title="Themeforest Licence information" href="http://themeforest.net/legal/licences" target="_blank">Licence Information</a></li>
<li><a href="http://forum.oxylusflash.com/013-complete-liquid-admin-control-panel/">Complete Liquid Admin Control Panel Support Forum</a></li>
</ul>


<p>Related posts:<ol><li><a href='http://www.logaholic.de/2009/05/11/improving-http-authentication/' rel='bookmark' title='Permanent Link: Improving HTTP Authentication'>Improving HTTP Authentication</a></li><li><a href='http://www.logaholic.de/2009/09/24/rotating-dom-elements-with-css3-and-jscriptjquery-animation/' rel='bookmark' title='Permanent Link: Rotating dom elements with css3 and jscript/jquery animation'>Rotating dom elements with css3 and jscript/jquery animation</a></li></ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/A_YisqXVFZ3gL5Y-b3y-FVeUH2A/0/da"><img src="http://feedads.g.doubleclick.net/~a/A_YisqXVFZ3gL5Y-b3y-FVeUH2A/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/A_YisqXVFZ3gL5Y-b3y-FVeUH2A/1/da"><img src="http://feedads.g.doubleclick.net/~a/A_YisqXVFZ3gL5Y-b3y-FVeUH2A/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/logaholic/~4/zpJfbKQPGy4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.logaholic.de/2009/06/17/premade-admin-panel-layout-complete-liquid-admin-control-panel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.logaholic.de/2009/06/17/premade-admin-panel-layout-complete-liquid-admin-control-panel/</feedburner:origLink></item>
		<item>
		<title>OCZ Apex SSD 120GB and How to move a vista boot partition to a new drive</title>
		<link>http://feedproxy.google.com/~r/logaholic/~3/sUurz0ngR58/</link>
		<comments>http://www.logaholic.de/2009/06/07/ocz-apex-ssd-120gb-and-how-to-move-a-vista-boot-partition-to-a-new-drive/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 22:38:22 +0000</pubDate>
		<dc:creator>Karsten Deubert</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Technik]]></category>
		<category><![CDATA[Acronis True Image]]></category>
		<category><![CDATA[Bootpartition]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[OCZ Apex]]></category>
		<category><![CDATA[SSD]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://www.logaholic.de/?p=345</guid>
		<description><![CDATA[My newest toy arrived today: OCZ Apex SSD 120Gb &#8211; a very fast Solid State Drive. The manufacturer tags it with &#8220;230mb/s read, 160mb/s write, &#60;0.3ms access time&#8221;.
After my six hour hassle of (trying to&#8230;) moving the boot partition from my old harddrive to the new one (see the full report/steps below), I was curious [...]


Related posts:<ol><li><a href='http://www.logaholic.de/2008/08/27/wubi-partition-anpassen/' rel='bookmark' title='Permanent Link: Wubi-Partition anpassen'>Wubi-Partition anpassen</a></li><li><a href='http://www.logaholic.de/2008/07/23/windows-vista-und-nfs/' rel='bookmark' title='Permanent Link: Windows Vista und NFS'>Windows Vista und NFS</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>My newest toy arrived today: <a title="OCZ Apex SSD" href="http://www.ocztechnology.com/products/flash_drives/ocz_apex_series_sata_ii_2_5-ssd" target="_blank">OCZ Apex SSD 120Gb</a> &#8211; a very fast Solid State Drive. The manufacturer tags it with &#8220;230mb/s read, 160mb/s write, &lt;0.3ms access time&#8221;.</p>
<p>After my six hour hassle of (trying to&#8230;) moving the boot partition from my old harddrive to the new one (see the full report/steps below), I was curious about the first performance test, which I used <a title="HD Tune" href="http://www.hdtune.com/" target="_blank">HD Tune</a> for.</p>
<p>This is the result for my <strong>old harddrive</strong>, a <a title="Samsung HD642JJ" href="http://www.samsung.com/global/business/hdd/productmodel.do?type=61&amp;subtype=63&amp;model_cd=322" target="_blank">Samsung HD642JJ</a>:</p>
<p><img class="aligncenter size-full wp-image-346" title="hdtune_benchmark_samsung_hd642jj" src="http://www.logaholic.de/wp-content/uploads/2009/06/hdtune_benchmark_samsung_hd642jj.png" alt="hdtune_benchmark_samsung_hd642jj" width="570" height="458" /></p>
<p>Raw data:</p>
<blockquote><p>HD Tune: SAMSUNG HD642JJ Benchmark</p>
<p>Transfer Rate Minimum : 55.0 MB/sec<br />
Transfer Rate Maximum : 102.8 MB/sec<br />
Transfer Rate Average : 83.0 MB/sec<br />
Access Time           : 13.2 ms<br />
Burst Rate            : 135.3 MB/sec<br />
CPU Usage             : 4.5%<br />
Temperature           : 25°C</p></blockquote>
<p>And this is the result for my <strong>new SSD</strong> (<a title="OCZ Apex SSD" href="http://www.ocztechnology.com/products/flash_drives/ocz_apex_series_sata_ii_2_5-ssd" target="_blank">OZC Apex SSD 120GB</a>):</p>
<p><img class="aligncenter size-full wp-image-347" title="hdtune_benchmark_ocz_apex_ssd" src="http://www.logaholic.de/wp-content/uploads/2009/06/hdtune_benchmark_ocz_apex_ssd.png" alt="hdtune_benchmark_ocz_apex_ssd" width="570" height="458" /></p>
<p>Raw data:</p>
<blockquote><p>HD Tune: OCZ APEX_SSD Benchmark</p>
<p>Transfer Rate Minimum : 1.4 MB/sec<br />
Transfer Rate Maximum : 172.7 MB/sec<br />
Transfer Rate Average : 138.1 MB/sec<br />
Access Time           : 0.2 ms<br />
Burst Rate            : 129.5 MB/sec<br />
CPU Usage             : 5.5%<br />
Temperature           : 44°C</p></blockquote>
<p>As I said before, I moved my bootpartition to the new drive. These are my subjective feelings about the new system:</p>
<ul>
<li>The Windows bootup isn&#8217;t that much faster, but I didn&#8217;t measure the startup time of the old harddrive. (Still too long&#8230;)</li>
<li>Applications start much faster now. I think this really is the point where the ridiculous low access time of the SSD kicks in. Zend Studio i.e. is down from ~30 secs to 12. (And I haven&#8217;t switched the projects/workspace to a new SSD partition yet!)</li>
</ul>
<p>The application startup speed, and working with big filecount-intensive projects were the main reasons for me to try out a SSD. So far (this still is my impression after only 2-3 hours of usage) I am very satisfied with the results.</p>
<p>The temperature of the SSD is ~20° warmer, but I think even 44°C is not high enough to care about.</p>
<p>In about one month I will provide you with even more subjective feedback <img src='http://www.logaholic.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>The steps for the Vista bootpartition-move, using <a title="Acronis True Image" href="http://www.acronis.com/homecomputing/products/trueimage/" target="_blank">Acronis True Image</a>, should be these:</h3>
<ol>
<li>Boot from the <a title="Acronis True Image" href="http://www.acronis.com/homecomputing/products/trueimage/" target="_blank">Acronis True Image</a> CD</li>
<li>Backup your boot partition from the old drive</li>
<li>Restore the backup to the new drive, mark the new partition active (Cloning didn&#8217;t work, because the SSD is much smaller, and the UI doesn&#8217;t let me clone just one partition)</li>
<li>Reboot from your Vista Installation disc</li>
<li>Repair the installation on your new drive (the log should show something about &#8220;missing bootmanager &#8211; fixed&#8221;)</li>
<li>Boot from your new SSD</li>
<li>If your bootpartition is not C, fix it this way: <a title="How to restore the system/boot drive letter in Windows" href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;223188" target="_blank">How to restore the system/boot drive letter in Windows</a></li>
<li>Done. Finished. Hopefully.. (At least, you should have 2 layers of backups to restart if something screws up&#8230;)</li>
</ol>
<h3>Just two small things OCZ could improve:</h3>
<ul>
<li>Inform me as a customer, that there is no SATA cable in the retail box. Every other retail (SATA) harddrive I bought up to this day had at least one packed.</li>
<li>As most of the customers will be &#8220;switchers&#8221; imho, ship something to help with the partition migration process. I will happily pay some more bucks, if it just works.</li>
</ul>


<p>Related posts:<ol><li><a href='http://www.logaholic.de/2008/08/27/wubi-partition-anpassen/' rel='bookmark' title='Permanent Link: Wubi-Partition anpassen'>Wubi-Partition anpassen</a></li><li><a href='http://www.logaholic.de/2008/07/23/windows-vista-und-nfs/' rel='bookmark' title='Permanent Link: Windows Vista und NFS'>Windows Vista und NFS</a></li></ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/HrN0q9kEL7q_d6PvYoCDItsMjWo/0/da"><img src="http://feedads.g.doubleclick.net/~a/HrN0q9kEL7q_d6PvYoCDItsMjWo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HrN0q9kEL7q_d6PvYoCDItsMjWo/1/da"><img src="http://feedads.g.doubleclick.net/~a/HrN0q9kEL7q_d6PvYoCDItsMjWo/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/logaholic/~4/sUurz0ngR58" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.logaholic.de/2009/06/07/ocz-apex-ssd-120gb-and-how-to-move-a-vista-boot-partition-to-a-new-drive/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.logaholic.de/2009/06/07/ocz-apex-ssd-120gb-and-how-to-move-a-vista-boot-partition-to-a-new-drive/</feedburner:origLink></item>
		<item>
		<title>Error #0 on AIR application installation</title>
		<link>http://feedproxy.google.com/~r/logaholic/~3/0jNPSgEsBtE/</link>
		<comments>http://www.logaholic.de/2009/06/04/error-0-on-air-application-installation/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 08:09:23 +0000</pubDate>
		<dc:creator>Karsten Deubert</dc:creator>
				<category><![CDATA[Technik]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Installer]]></category>

		<guid isPermaLink="false">http://www.logaholic.de/?p=338</guid>
		<description><![CDATA[I got this errormessage on &#8220;some&#8221; places while trying to install an AIR application package, while other places just worked fine.
The application could not be installed. Try installing it again. If the problem persists, contact the application author. Error #0
The first step debugging this was to find out where the AIR application installer logs errors [...]


Related posts:<ol><li><a href='http://www.logaholic.de/2009/08/16/nagios-nrpe-unable-to-read-output-error-check_apachestatus_auto-pl/' rel='bookmark' title='Permanent Link: Nagios: NRPE: Unable to read output error &#8211; check_apachestatus_auto.pl'>Nagios: NRPE: Unable to read output error &#8211; check_apachestatus_auto.pl</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I got this errormessage on &#8220;some&#8221; places while trying to install an AIR application package, while other places just worked fine.</p>
<p><em>The application could not be installed. Try installing it again. If the problem persists, contact the application author. Error #0</em></p>
<p>The first step debugging this was to find out where the AIR application installer logs errors &#8211; which by default he does not. To activate installer logging, you have to put two files in your home directory (C:\Users\youraccountname\ on Vista or C:\Documents and Settings\youraccoutname\ on XP) called <strong>.airappinstall.log</strong> and <strong>.airinstall.log</strong>.</p>
<p>If those two files are present, the logging writes to them automagically.</p>
<p>The error I found there looked like this:</p>
<pre class="brush: plain;">Installing C:\Dokumente und Einstellungen\***\Lokale Einstellungen\Temp\fla12.tmp\setup.msi
Error occurred; beginning rollback: [ErrorEvent type=&quot;error&quot; bubbles=false cancelable=false eventPhase=2 text=&quot;1603&quot; errorID=0]</pre>
<p>From here on I was very sure that it has to do with privileges&#8230; (No, there is no context menu entry on AIR packages to &#8220;install as Administrator&#8221; or &#8220;run as&#8221;&#8230;)</p>
<p>Finally, I checked the windows event log, and found this:</p>
<pre class="brush: plain;">Product: *** -- Error 1925. You do not have sufficient privileges to complete this installation for all users of the machine.  Log on as administrator and then retry this installation.</pre>
<p>Why can&#8217;t they show this error at the installer instead of error #0?&#8230;</p>
<p>Yes, <strong>installing as Administrator solved the problem</strong>!</p>


<p>Related posts:<ol><li><a href='http://www.logaholic.de/2009/08/16/nagios-nrpe-unable-to-read-output-error-check_apachestatus_auto-pl/' rel='bookmark' title='Permanent Link: Nagios: NRPE: Unable to read output error &#8211; check_apachestatus_auto.pl'>Nagios: NRPE: Unable to read output error &#8211; check_apachestatus_auto.pl</a></li></ol></p>
<p><a href="http://feedads.g.doubleclick.net/~a/3MgN-ZEplDfwnfQ6d8eXz8yvN4Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/3MgN-ZEplDfwnfQ6d8eXz8yvN4Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3MgN-ZEplDfwnfQ6d8eXz8yvN4Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/3MgN-ZEplDfwnfQ6d8eXz8yvN4Y/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/logaholic/~4/0jNPSgEsBtE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.logaholic.de/2009/06/04/error-0-on-air-application-installation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.logaholic.de/2009/06/04/error-0-on-air-application-installation/</feedburner:origLink></item>
		<item>
		<title>Elegant OOP HTML scraping with DOMDocument</title>
		<link>http://feedproxy.google.com/~r/logaholic/~3/XiTEdl_-SoQ/</link>
		<comments>http://www.logaholic.de/2009/06/01/elegant-oop-html-scraping-with-domdocument/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 10:37:17 +0000</pubDate>
		<dc:creator>Karsten Deubert</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[DOMDocument]]></category>
		<category><![CDATA[explode]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Regex]]></category>
		<category><![CDATA[Regular expressions]]></category>
		<category><![CDATA[Scraping]]></category>

		<guid isPermaLink="false">http://www.logaholic.de/?p=285</guid>
		<description><![CDATA[Over the years, I had to do html scraping sometimes. At my very first coding attempts some years ago, I found the explode() function to be pretty nice for this purpose. Not being satisfied with its (nonexistant) fault-tolerance, I learned regular expressions and used them. But regex only gets you so far in the DOM-tree. [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Over the years, I had to do html scraping sometimes. At my very first coding attempts some years ago, I found the <a href="http://de3.php.net/manual/en/function.explode.php" target="_blank">explode() function</a> to be pretty nice for this purpose. Not being satisfied with its (nonexistant) fault-tolerance, I learned <a href="http://de3.php.net/manual/en/book.pcre.php" target="_blank">regular expressions</a> and used them. But regex only gets you so far in the DOM-tree. Finally, I arrived at the <a href="http://de3.php.net/manual/en/class.domdocument.php" target="_blank">DOMDocument class</a>, the builtin PHP answer to DOM parsing/manipulation. Looking into this is really worth it, because it a) solves the problem (99.99%) and has a nice OOP way to achieve it.</p>
<p>I will show you two very simple examples with all three methods &#8211; see for yourself why one should use DOMDocument <img src='http://www.logaholic.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Sample 1:</h3>
<pre class="brush: html; highlight: [10];">
&lt;!DOCTYPE html
     PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
     &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;de&quot; lang=&quot;de&quot;&gt;
    &lt;head&gt;
        &lt;title&gt;example&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;div id=&quot;fetchme&quot;&gt;
            foobar
        &lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;
</pre>
<h3>Scraping:</h3>
<pre class="brush: php;">
// explode
$dataFirst = explode('&lt;div id=&quot;fetchme&quot;&gt;', $sample);
$dataSecond = explode('&lt;/div&gt;', $dataFirst[1]);
$result = trim($dataSecond[0]);
echo $result;

// regex
preg_match('#&lt;div id=&quot;fetchme&quot;&gt;(.*)&lt;/div&gt;#is', $sample, $matches);
$result = trim($matches[1]);
echo $result;

// domdocument
$doc = new DOMDocument();
$doc-&gt;loadHTML($sample);
$element = $doc-&gt;getElementById('fetchme');
$result = trim($element-&gt;nodeValue);
echo $result;
</pre>
<p>All three methods get this very simple example right ($result will be &#8216;foobar&#8217;).</p>
<p>Adding complexity, two of them fail badly, because they do not know which closing tag belongs to which opening tag.</p>
<h3>Sample 2:</h3>
<pre class="brush: html; highlight: [11,12,13,14];">
&lt;!DOCTYPE html
     PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;
     &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;de&quot; lang=&quot;de&quot;&gt;
    &lt;head&gt;
        &lt;title&gt;example&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;div&gt;
            &lt;div id=&quot;fetchme&quot;&gt;
                foo
                &lt;div&gt;
                    bar
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;
</pre>
<h3>Scraping:</h3>
<p>The scraping methods are the same as for the first example, but with different output:<br />
The explode method returns: &#8216;foo &lt;div&gt; bar&#8217;<br />
The regex method returns: &#8216;foo &lt;div&gt; bar &lt;/div&gt; &lt;/div&gt;&#8217; (the non-greedy regex would return the same as the explode version).<br />
The DOMDocument method returns &#8216;foo bar&#8217;, because nodeValue strips htmltags. But the DOMElement $element holds just the content of the div #fetchme as we wanted it. It gets it right again.</p>
<h3>Sidenotes:</h3>
<p>You should know, some sites do not follow the (x)html standards correctly and therefore DOMDocument can fail. It also likes to throw exceptions then, but besides complaining you can still use > 90% of the document. If you want to disable the exceptions, you could either do it with @$doc->loadHTML() or $doc->strictErrorChecking = false.</p>
<h3>Conclusion:</h3>
<p>Besides DOMDocument solving the tag-matching issues, it also provides a much cleaner way to do HTML scraping jobs imho. It also is a lot more fault tolerant, one could use xpath-queries against the document, etc.</p>


<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/RY7PF_9V54EYQAKAMO9LOOWoD7U/0/da"><img src="http://feedads.g.doubleclick.net/~a/RY7PF_9V54EYQAKAMO9LOOWoD7U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RY7PF_9V54EYQAKAMO9LOOWoD7U/1/da"><img src="http://feedads.g.doubleclick.net/~a/RY7PF_9V54EYQAKAMO9LOOWoD7U/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/logaholic/~4/XiTEdl_-SoQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.logaholic.de/2009/06/01/elegant-oop-html-scraping-with-domdocument/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.logaholic.de/2009/06/01/elegant-oop-html-scraping-with-domdocument/</feedburner:origLink></item>
	</channel>
</rss>
