<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.2" -->
<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/"
	>

<channel>
	<title>iRafi.com</title>
	<link>http://irafi.com</link>
	<description>Just Organizing My Head</description>
	<pubDate>Wed, 21 Feb 2007 11:35:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.2</generator>
	<language>en</language>
			<item>
		<title>Change shortcuts in Places Bar</title>
		<link>http://irafi.com/post/2007/02/21/change-shortcuts-in-places-bar/</link>
		<comments>http://irafi.com/post/2007/02/21/change-shortcuts-in-places-bar/#comments</comments>
		<pubDate>Wed, 21 Feb 2007 10:19:23 +0000</pubDate>
		<dc:creator>justRafi</dc:creator>
		
	<category>Microsoft</category>
	<category>Windows</category>
		<guid isPermaLink="false">http://irafi.com/post/2007/02/21/change-shortcuts-in-places-bar/</guid>
		<description><![CDATA[Here&#8217;s how to change the 5 shortcuts you see on the left when you do a &#8220;Save As&#8230;&#8221;
The default save as places are : Recent Documents / Desktop / Documents / My Computer / My Network Places
To put your own shortcuts there, do this :
    * Click on the Start button.
  [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s how to change the 5 shortcuts you see on the left when you do a &#8220;Save As&#8230;&#8221;</p>
<p>The default save as places are : Recent Documents / Desktop / Documents / My Computer / My Network Places</p>
<p>To put your own shortcuts there, do this :</p>
<p>    * Click on the Start button.<br />
    * Select and click on Run<br />
    * Next, type gpedit.msc and click on OK</p>
<p>Under &#8220;Local Computer Policy&#8221;, expand the navigation tree following the directions below.</p>
<p>User Configuration</p>
<p>- Administrative Templates</p>
<p>&#8211; Windows Components</p>
<p>&#8212; Windows Explorer</p>
<p>&#8212;- Common Open File Dialog</p>
<p>    * Then once you have the Common Open File Dialog selected, you will notice a few settings to appear on the right side of the window.<br />
    * Double click  on &#8220;Items displayed in Places Bar&#8221;<br />
    * Check &#8220;Enabled&#8221; and put in your own folder like for example :</p>
<p>      C:\    or    \\server\share    or one of the following special shortcuts:</p>
<p>      CommonDocuments, CommonMusic, CommonPictures, Desktop, MyComputer, MyDocuments, MyFavorites, MyMusic, MyNetworkPlaces, MyPictures, Printers, ProgramFiles, Recent.<br />
    * If you disable or do not configure this setting the default list of items will be displayed in the Places Bar.</p>
<p><img id="image51" src="http://irafi.com/wp-content/rafi_top43_sod/2007/02/placesbar_before.gif" alt="Places Bar Customization - Before" /></p>
<p><img id="image52" src="http://irafi.com/wp-content/rafi_top43_sod/2007/02/placesbar_after.gif" alt="Places Bar Customization - After" />
</p>
]]></content:encoded>
			<wfw:commentRSS>http://irafi.com/post/2007/02/21/change-shortcuts-in-places-bar/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Amazing MsPaint Abilities</title>
		<link>http://irafi.com/post/2006/12/21/amazing-mspaint-abilities/</link>
		<comments>http://irafi.com/post/2006/12/21/amazing-mspaint-abilities/#comments</comments>
		<pubDate>Thu, 21 Dec 2006 08:29:09 +0000</pubDate>
		<dc:creator>justRafi</dc:creator>
		
	<category>Microsoft</category>
	<category>Graphic Design</category>
		<guid isPermaLink="false">http://irafi.com/post/2006/12/21/amazing-mspaint-abilities/</guid>
		<description><![CDATA[



]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="350"><br />
<param name="movie" value="http://www.youtube.com/v/ElrldD02if0"></param>
<param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/ElrldD02if0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://irafi.com/post/2006/12/21/amazing-mspaint-abilities/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Firefox New Logo</title>
		<link>http://irafi.com/post/2006/12/21/firefox-new-logo/</link>
		<comments>http://irafi.com/post/2006/12/21/firefox-new-logo/#comments</comments>
		<pubDate>Thu, 21 Dec 2006 08:28:28 +0000</pubDate>
		<dc:creator>justRafi</dc:creator>
		
	<category>Mozilla</category>
		<guid isPermaLink="false">http://irafi.com/post/2006/12/21/firefox-new-logo/</guid>
		<description><![CDATA[

]]></description>
			<content:encoded><![CDATA[<p><img id="image47" src="http://irafi.com/wp-content/rafi_top43_sod/2006/12/71ec9927e8453582.jpg" alt="Firefox New Logo" />
</p>
]]></content:encoded>
			<wfw:commentRSS>http://irafi.com/post/2006/12/21/firefox-new-logo/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Power to JavaScript !</title>
		<link>http://irafi.com/post/2006/12/21/power-to-javascript/</link>
		<comments>http://irafi.com/post/2006/12/21/power-to-javascript/#comments</comments>
		<pubDate>Thu, 21 Dec 2006 08:14:22 +0000</pubDate>
		<dc:creator>justRafi</dc:creator>
		
	<category>JavaScript</category>
		<guid isPermaLink="false">http://irafi.com/post/2006/12/21/power-to-javascript/</guid>
		<description><![CDATA[JavaScript deserves much more respect !
Just recently web developers are starting to realize the strength of this language, thanks to the new term Asynchronous XMLHttp has received, AJAX.
It&#8217;s about time people realize the power of JS as a client-side scripting tool, to create marvelous user interfaces, and even server-side to people who are still using [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScript deserves <a href="http://www-128.ibm.com/developerworks/java/library/j-cb12196/">much more respect</a> !<br />
Just recently web developers are starting to realize the strength of this language, thanks to the new term Asynchronous XMLHttp has received, AJAX.<br />
It&#8217;s about time people realize the power of JS as a client-side scripting tool, to create marvelous user interfaces, and even server-side to people who are still using Classic ASP. Using JS instead of VBScript as a server-side scripting language under ASP is something nobody talks about. But it is much more powerful than VBScript. Scripting.Dictionary sucks! :)
</p>
]]></content:encoded>
			<wfw:commentRSS>http://irafi.com/post/2006/12/21/power-to-javascript/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>New Google Services Announced</title>
		<link>http://irafi.com/post/2006/05/12/new-google-services-announced/</link>
		<comments>http://irafi.com/post/2006/05/12/new-google-services-announced/#comments</comments>
		<pubDate>Fri, 12 May 2006 14:25:26 +0000</pubDate>
		<dc:creator>justRafi</dc:creator>
		
	<category>Google</category>
		<guid isPermaLink="false">http://irafi.com/post/2006/05/12/new-google-services-announced/</guid>
		<description><![CDATA[
Google Co-op is a way for users to help Google improve search. It lets people and organizations label web pages and create specialized links related to their unique expertise. Whether it&#8217;s information about a hobby, a profession, or an unusual interest, everyone can contribute to making Google search more relevant and useful for the entire [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://www.google.com/coop/">Google Co-op</a> is a way for users to help Google improve search. It lets people and organizations label web pages and create specialized links related to their unique expertise. Whether it&#8217;s information about a hobby, a profession, or an unusual interest, everyone can contribute to making Google search more relevant and useful for the entire community.</li>
<li><a href="http://desktop.google.com/">Google Desktop 4</a> gives you another way to improve search, by personalizing your desktop. New &#8220;Google Gadgets&#8221; deliver an array of information&#8211;ranging from games and media players to weather updates and news&#8211;straight to your desktop.</li>
<li><a href="http://www.google.com/notebook">Google Notebook</a> (which they will be launching next week) is a personal browser tool that lets you clip text, images, and links from the pages you&#8217;re searching, save clippings to an online notebook, and then share notebooks with others.</li>
<li><a href="http://www.google.com/trends">Google Trends</a> builds on the idea behind the Google Zeitgeist, allowing you to sort through several years of Google search queries from around the world to get a general idea of everything from user preferences on ice-cream flavors to the relative popularity of politicians in their respective cities or countries.</li>
</ul>
<p><a href="http://googleblog.blogspot.com/2006/05/yes-we-are-still-all-about-search.html">Original Announcement</a> at <a href="http://googleblog.blogspot.com/">Google&#8217;s Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRSS>http://irafi.com/post/2006/05/12/new-google-services-announced/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Using Tabs in Textareas</title>
		<link>http://irafi.com/post/2006/05/05/using-tabs-in-textareas/</link>
		<comments>http://irafi.com/post/2006/05/05/using-tabs-in-textareas/#comments</comments>
		<pubDate>Sat, 06 May 2006 00:15:30 +0000</pubDate>
		<dc:creator>justRafi</dc:creator>
		
	<category>JavaScript</category>
		<guid isPermaLink="false">http://irafi.com/post/2006/05/05/using-tabs-in-textareas/</guid>
		<description><![CDATA[Somebody at bitprophet managed to figure out a nice way to let people use the tab key to actually insert tabs, as opposed to its usual behaviour, which goes through the different form elements.
bitprophet.org/code/javascript_tab.html

// Set desired tab- defaults to four space softtab
var tab = &#8221;    &#8220;;
function checkTab(evt) {
    var [...]]]></description>
			<content:encoded><![CDATA[<p>Somebody at <a href="http://bitprophet.org/code/javascript_tab.html">bitprophet </a>managed to figure out a nice way to let people use the tab key to actually insert tabs, as opposed to its usual behaviour, which goes through the different form elements.</p>
<p><a href="http://bitprophet.org/code/javascript_tab.html">bitprophet.org/code/javascript_tab.html</a><br />
<a id="more-44"></a></p>
<div class="codesnip-container" >// Set desired tab- defaults to four space softtab<br />
var tab = &#8221;    &#8220;;</p>
<p>function checkTab(evt) {<br />
    var t = evt.target;<br />
    var ss = t.selectionStart;<br />
    var se = t.selectionEnd;</p>
<p>    // Tab key - insert tab expansion<br />
    if (evt.keyCode == 9) {<br />
        evt.preventDefault();</p>
<p>        // Special case of multi line selection<br />
        if (ss != se &#038;&#038; t.value.slice(ss,se).indexOf(&#8221;\n&#8221;) != -1) {<br />
            // In case selection was not of entire lines (e.g. selection begins in the middle of a line)<br />
            // we ought to tab at the beginning as well as at the start of every following line.<br />
            var pre = t.value.slice(0,ss);<br />
            var sel = t.value.slice(ss,se).replace(/\n/g,&#8221;\n&#8221;+tab);<br />
            var post = t.value.slice(se,t.value.length);<br />
            t.value = pre.concat(tab).concat(sel).concat(post);</p>
<p>            t.selectionStart = ss + tab.length;<br />
            t.selectionEnd = se + tab.length;<br />
        }</p>
<p>        // &#8220;Normal&#8221; case (no selection or selection on one line only)<br />
        else {<br />
            t.value = t.value.slice(0,ss).concat(tab).concat(t.value.slice(ss,t.value.length));<br />
            if (ss == se) {<br />
                t.selectionStart = t.selectionEnd = ss + tab.length;<br />
            }<br />
            else {<br />
                t.selectionStart = ss + tab.length;<br />
                t.selectionEnd = se + tab.length;<br />
            }<br />
        }<br />
    }</p>
<p>    // Backspace key - delete preceding tab expansion, if exists<br />
   else if (evt.keyCode==8 &#038;&#038; t.value.slice(ss - 4,ss) == tab) {<br />
        evt.preventDefault();</p>
<p>        t.value = t.value.slice(0,ss - 4).concat(t.value.slice(ss,t.value.length));<br />
        t.selectionStart = t.selectionEnd = ss - tab.length;<br />
    }</p>
<p>    // Delete key - delete following tab expansion, if exists<br />
    else if (evt.keyCode==46 &#038;&#038; t.value.slice(se,se + 4) == tab) {<br />
        evt.preventDefault();</p>
<p>        t.value = t.value.slice(0,ss).concat(t.value.slice(ss + 4,t.value.length));<br />
        t.selectionStart = t.selectionEnd = ss;<br />
    }<br />
    // Left/right arrow keys - move across the tab in one go<br />
    else if (evt.keyCode == 37 &#038;&#038; t.value.slice(ss - 4,ss) == tab) {<br />
        evt.preventDefault();<br />
        t.selectionStart = t.selectionEnd = ss - 4;<br />
    }<br />
    else if (evt.keyCode == 39 &#038;&#038; t.value.slice(ss,ss + 4) == tab) {<br />
        evt.preventDefault();<br />
        t.selectionStart = t.selectionEnd = ss + 4;<br />
    }<br />
}</div>
]]></content:encoded>
			<wfw:commentRSS>http://irafi.com/post/2006/05/05/using-tabs-in-textareas/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Overuse of Computers &#038; Avoiding RSI and CTS</title>
		<link>http://irafi.com/post/2006/04/27/overuse-of-computers-avoiding-rsi-and-cts/</link>
		<comments>http://irafi.com/post/2006/04/27/overuse-of-computers-avoiding-rsi-and-cts/#comments</comments>
		<pubDate>Thu, 27 Apr 2006 16:48:04 +0000</pubDate>
		<dc:creator>justRafi</dc:creator>
		
	<category>Life</category>
		<guid isPermaLink="false">http://irafi.com/post/2006/04/27/overuse-of-computers-avoiding-rsi-and-cts/</guid>
		<description><![CDATA[Very interesting post in the Google blog, by Dr. Taraneh Razavi, M.D., Staff Doctor at Google. Razavi talks about overuse syndromes and repetitive stress injury:
The damage sustained from RSI is due to structural changes in the muscle fiber as well as due to decreased blood flow. Nerves can also be involved. The immobile tissue and [...]]]></description>
			<content:encoded><![CDATA[<p>Very <a href="http://googleblog.blogspot.com/2006/04/avoiding-rsi.html">interesting post</a> in the Google blog, by Dr. Taraneh Razavi, M.D., Staff Doctor at Google. Razavi talks about overuse syndromes and repetitive stress injury:</p>
<blockquote><p>The damage sustained from RSI is due to structural changes in the muscle fiber as well as due to decreased blood flow. Nerves can also be involved. The immobile tissue and surrounding inflammation compress the nerve which can cause numbness or tingling and eventually weakness if the nerve is damaged severely.</p></blockquote>
<p><a id="more-43"></a><br />
Razavi <a href="http://googleblog.blogspot.com/2006/04/avoiding-rsi.html">gives some</a> excellent reference sites for tips about setting up your workstation, posture, and exercises:</p>
<ul>
<li><a href="http://web.mit.edu/atic/www/disabilities/rsi/workstation.html">Workstation setup</a></li>
<li><a href="http://www.clevelandclinic.org/health/health-info/docs/0300/0359.asp?index=4485">Posture</a></li>
<li><a href="http://www.mydailyyoga.com/yoga/rsi.html">Yoga &#038; RSI exercises</a></li>
<li><a href="http://www.safecomputingtips.com/">Safe Computing Tips</a></li>
<li><a href="http://eeshop.unl.edu/rsi.html">Computer Related Repetitive Strain Injury</a></li>
</ul>
<p>This is a serious matter for anyone who works or plays infront of a computer. Here a few tips for safe working from Dr. Taraneh Razavi:</p>
<blockquote>
<ul>
<li>Breaks should be taken every 30-45 minutes for at least 5 minutes. If you need assistance there are <a href="http://shareware.search.com/search?cat=247&#038;tag=ex.sa.fd.srch.sa_all&#038;q=timer">free downloadable timers</a> that will help remind you to do so.</li>
<li>Stretch your arms, hands, neck, and back during breaks. This <a href="http://www.mydailyyoga.com/yoga/rsi.html">yoga site</a> demonstrates some exercises.</li>
<li>Maintain posture <a href="http://www.clevelandclinic.org/health/health-info/docs/0300/0359.asp?index=4485">alignment</a>. Don&#8217;t slouch on the couch with the laptop.</li>
<li>Work stations should be reviewed initially and with each office move. Adjust your chair, monitor, keyboard, mouse, laptop. Alternate keyboards and mice periodically.</li>
<li>Shift your gaze from the computer screen to the distance. And don&#8217;t forget to blink!</li>
<li>Limit non-essential computer use. This may be heresy &#8212; but do give the surfing, gaming, emailing, and text messaging a rest.</li>
<li>If pain occurs or persists, see your doctor, who may recommend wrist brace, ice packs, anti-inflammatory medication such as ibuprofen, cortisone injections, physical therapy, and most importantly, rest to allow healing. Don&#8217;t procrastinate in addressing your symptoms &#8212; the sooner you tend to them, the better off you are.</li>
</blockquote>
]]></content:encoded>
			<wfw:commentRSS>http://irafi.com/post/2006/04/27/overuse-of-computers-avoiding-rsi-and-cts/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Creating Wildcard Subdomains + Controller/Dispatcher</title>
		<link>http://irafi.com/post/2006/04/27/creating-wildcard-subdomains-controllerdispatcher/</link>
		<comments>http://irafi.com/post/2006/04/27/creating-wildcard-subdomains-controllerdispatcher/#comments</comments>
		<pubDate>Thu, 27 Apr 2006 15:40:25 +0000</pubDate>
		<dc:creator>justRafi</dc:creator>
		
	<category>PHP</category>
	<category>Linux</category>
	<category>Apache</category>
		<guid isPermaLink="false">http://irafi.com/post/2006/04/27/creating-wildcard-subdomains-controllerdispatcher/</guid>
		<description><![CDATA[Ever wanted to create an automatic system that will open subdomains for your customers? Or maybe you would like to control your subdomains without having to mess around with DNS and configuration files everytime, but have wildcard subdomains?
You&#8217;re in the right place. Continue reading!

If you don&#8217;t know what you&#8217;re doing - don&#8217;t blame me if [...]]]></description>
			<content:encoded><![CDATA[<p>Ever wanted to create an automatic system that will open subdomains for your customers? Or maybe you would like to control your subdomains without having to mess around with DNS and configuration files everytime, but have wildcard subdomains?</p>
<p>You&#8217;re in the right place. Continue reading!<br />
<a id="more-42"></a><br />
If you don&#8217;t know what you&#8217;re doing - don&#8217;t blame me if your server gets all whacked. You should follow these instructions only if you feel comfortable with DNS and the Apache configuration file.</p>
<p><strong>NOTE:</strong> Replace yourdomain.com with your actual domain, and 63.63.63.63 with the actual IP your site is using.</p>
<ol>
<li><strong>Add a DNS entry</strong> to your site DNS zone:<br />
<div class="codesnip-container" >*.yourdomain.com. 14400 IN A 63.63.63.63</div>
<p>I have cPanel, and I used the &#8220;Edit DNS Zone&#8221; tool to add this record. Very easy! :)</li>
<li><strong>Restart Named service</strong>. (/etc/init.d/named restart)</li>
<li>At this point everything worked for me fine, and I didn&#8217;t have to follow this step. A lot of people DO advise to add the new alias to your ServerAlias under the site VirtualHost in the Apache configuration file (/etc/httpd/conf/httpd.conf) like this: ServerAlias www.yourdomain.com yourdomain.com <strong>*.yourdomain.com</strong><br />
Your VirtualHost should looks something like this:</p>
<div class="codesnip-container" >&lt;virtualhost 63.63.63.63&gt;<br />
ServerAlias www.yourdomain.com yourdomain.com <strong>*.yourdomain.com</strong><br />
ServerAdmin webmaster@yourdomain.com<br />
DocumentRoot /home/yourdomain/public_html<br />
BytesLog domlogs/yourdomain.com-bytes_log<br />
ServerName www.yourdomain.com<br />
&lt;ifmodule mod_userdir.c&gt;<br />
Userdir disabled<br />
Userdir enabled yourdomain_user<br />
&lt;/ifmodule&gt;<br />
&lt;ifmodule mod_php4.c&gt;<br />
php_admin_value open_basedir &#8220;/home/yourdomain:/usr/lib/php:/usr/local/lib/php:/tmp&#8221;<br />
&lt;/ifmodule&gt;<br />
User yourdomain<br />
Group yourdomain<br />
CustomLog domlogs/yourdomain.com combined<br />
ScriptAlias /cgi-bin/ /home/yourdomain/public_html/cgi-bin/<br />
&lt;/virtualhost&gt;</div>
</li>
<li>If you edited the httpd.conf file, <strong>save it</strong>, and <strong>restart the Apache service</strong>. (service httpd restart)</li>
</ol>
<p>Alright! You can now try out your new wildcard subdomains, they are supposed to work now, and redirect any subdomain to the root of your website. You can now grab the subdomain in PHP, or use some .htaccess magic to redirect them into their special folders.</p>
<p>Here&#8217;s the code to paste into your .htaccess file to redirect subdomain calls into a specific directory:</p>
<div class="codesnip-container" >RewriteEngine On<br />
RewriteRule ^\.htaccess$ - [F]<br />
RewriteCond %{HTTP_HOST} !^www\.example\.com?$<br />
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com?$<br />
RewriteRule ^$ /accounts/login.php [L]</div>
<p>Or if you would like to send the subdomain as a URL query parameter, replace the <strong>LAST RewriteRule</strong> above with:</p>
<div class="codesnip-container" >RewriteRule ^(.*)$ /accounts/login.php?user=$1 [L]</div>
<p>Here is a PHP code snippet of how to capture the subdomain name:</p>
<div class="codesnip-container" >&lt;?php<br />
   $server_host = explode(&#8217;.', $_SERVER[&#8217;HTTP_HOST&#8217;]);<br />
   $subdomain = strtolower($server_host[0]);<br />
   echo &#8216;Subdomain name is: &#8216; . $subdomain;<br />
?&gt;</div>
<p>Some helpful links:<br />
<a href="http://www.haalaaluu.com/blog/2005/10/24/wildcard-virtual-host-and-htaccess-subdomain/">haalaaluu.com - Wildcard Virtual Host and htaccess Subdomain </a><br />
<a href="http://photomatt.net/2003/10/10/wildcard-dns-and-sub-domains/">photomatt.net - Wildcard DNS and Sub-domains</a>
</p>
]]></content:encoded>
			<wfw:commentRSS>http://irafi.com/post/2006/04/27/creating-wildcard-subdomains-controllerdispatcher/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>PHP5 and XML</title>
		<link>http://irafi.com/post/2006/04/23/php5-and-xml/</link>
		<comments>http://irafi.com/post/2006/04/23/php5-and-xml/#comments</comments>
		<pubDate>Sun, 23 Apr 2006 15:52:21 +0000</pubDate>
		<dc:creator>justRafi</dc:creator>
		
	<category>PHP</category>
	<category>XML</category>
		<guid isPermaLink="false">http://irafi.com/post/2006/04/23/php5-and-xml/</guid>
		<description><![CDATA[One of the best things in PHP5 is that almost everything regarding XML was rewritten; All XML extensions are now based on the libxml2 library, from Zend article:

In addition to the better-known SAX support inherited from PHP 4, PHP 5 supports DOM according to the W3C standard and XSLT with the very fast libxslt engine. [...]]]></description>
			<content:encoded><![CDATA[<p>One of the best things in PHP5 is that almost everything regarding XML was rewritten; All XML extensions are now based on the libxml2 library, from Zend article:<br />
<a id="more-41"></a></p>
<blockquote><p>In addition to the better-known SAX support inherited from PHP 4, PHP 5 supports DOM according to the W3C standard and XSLT with the very fast libxslt engine. It also incorporates the new PHP-specific SimpleXML extension and a much improved, standards-compliant SOAP extension. Given the increasing importance of XML, the PHP developers decided to enable more XML support by default. This means that you now get SAX, DOM and SimpleXML enabled out of the box, which ensures that they will be installed on many more servers in the future. XSLT and SOAP support, however, still need to be explicitly configured into a PHP build.</p></blockquote>
<p>The SimpleXML is an amazing easy object to handle XML data, it&#8217;s still new, so don&#8217;t expect it to be complete, but it certainly is a godsend. </p>
<p><a href="http://www.zend.com/php5/articles/php5-xmlphp.php">XML in PHP 5 - What&#8217;s New?</a><br />
<a href="http://us3.php.net/dom">PHP Manual: DOM Functions</a><br />
<a href="http://gvtulder.f2o.org/notities/arraytoxml/">Array to XML function for PHP</a></p>
<p>SimpleXML example:</p>
<pre>
<div class="codesnip-container" >&lt;select id=&#8221;reports_categories&#8221; name=&#8221;reports_categories&#8221;&gt;
	&lt;option value=&#8221;"&gt;[Please Select]&lt;/option&gt;
	&lt;?php
	$xml = simplexml_load_file(&#8217;reports.xml&#8217;);

	foreach($xml->category as $category)
	{
		echo &#8216;&lt;option value=&#8221;&#8216; . $category[&#8217;name&#8217;] .
			&#8216;&#8221;&gt;&#8217; . $category[&#8217;text&#8217;] . &#8216;&lt;/option&gt;&#8217;;
	};

	unset($xml);
	?&gt;
&lt;/select&gt;</div>
</pre>
<p>The XML:</p>
<pre>
<div class="codesnip-container" >&lt;reports&gt;
	&lt;category name=&#8221;booked_jobs&#8221; text=&#8221;Booked Jobs&#8221;&gt;
		&lt;report name=&#8221;job_date&#8221; text=&#8221;By Job Date&#8221;&gt;
			&lt;screenshot&gt;booked_job_date.gif&lt;/screenshot&gt;
			&lt;transform&gt;reports_xsl/booked_job_date.xsl&lt;/transform&gt;
			&lt;description&gt;
				View your jobs by a range of dates
			&lt;/description&gt;
		&lt;/report&gt;
		&lt;report name=&#8221;book_date&#8221; text=&#8221;By Book Date&#8221;&gt;
			&lt;transform&gt;reports_xsl/booked_book_date.xsl&lt;/transform&gt;
			&lt;description&gt;
				View your jobs by a range of dates
			&lt;/description&gt;
		&lt;/report&gt;
		&lt;report name=&#8221;closed_date&#8221; text=&#8221;By Closed Date&#8221;&gt;
			&lt;transform&gt;reports_xsl/booked_close_date.xsl&lt;/transform&gt;
			&lt;description&gt;
				View your jobs by a range of dates
			&lt;/description&gt;
		&lt;/report&gt;
	&lt;/category&gt;
&lt;/reports&gt;</div>
</pre>
]]></content:encoded>
			<wfw:commentRSS>http://irafi.com/post/2006/04/23/php5-and-xml/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Too Funny To Miss</title>
		<link>http://irafi.com/post/2006/04/20/too-funny-to-miss/</link>
		<comments>http://irafi.com/post/2006/04/20/too-funny-to-miss/#comments</comments>
		<pubDate>Thu, 20 Apr 2006 16:25:30 +0000</pubDate>
		<dc:creator>justRafi</dc:creator>
		
	<category>Funny</category>
		<guid isPermaLink="false">http://irafi.com/post/2006/04/20/too-funny-to-miss/</guid>
		<description><![CDATA[Two girls doing a kick for Aretha Franklin&#8217;s Respect!
video.google.com
It made me laugh. So come&#8217; on!

]]></description>
			<content:encoded><![CDATA[<p>Two girls doing a kick for Aretha Franklin&#8217;s Respect!<br />
<a href="http://video.google.com/videoplay?docid=-4662694154560792485&#038;q=respect&#038;pl=true">video.google.com</a></p>
<p>It made me laugh. So come&#8217; on!
</p>
]]></content:encoded>
			<wfw:commentRSS>http://irafi.com/post/2006/04/20/too-funny-to-miss/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>
