<?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>Dave is my name - Web Developer Blog based in Hull</title>
	<atom:link href="http://www.daveismyname.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.daveismyname.com</link>
	<description>Web &#38; Applications Develeloper Hull</description>
	<lastBuildDate>Mon, 13 Feb 2012 23:44:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Move emails to selected IMAP Folder</title>
		<link>http://www.daveismyname.com/tutorials/move-emails-to-selected-imap-folder/</link>
		<comments>http://www.daveismyname.com/tutorials/move-emails-to-selected-imap-folder/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 23:39:25 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[IMAP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[explode]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[imap_expunge]]></category>
		<category><![CDATA[imap_list]]></category>
		<category><![CDATA[imap_mail_move]]></category>
		<category><![CDATA[preg_match]]></category>

		<guid isPermaLink="false">http://www.daveismyname.com/?p=3787</guid>
		<description><![CDATA[Moving email from one IMAP mailbox folder another is a simple process this short tutorial will show you how. First create a form with a list the list will be populated with all the mailbox folders using imap_list. Remember you&#8217;ll need an open connection to the server first in this example my stream is referenced ...]]></description>
			<content:encoded><![CDATA[<p>Moving email from one IMAP mailbox folder another is a simple process this short tutorial will show you how.</p>
<p>First create a form with a list the list will be populated with all the mailbox folders using imap_list. Remember you&#8217;ll need an open connection to the server first in this example my stream is referenced in $mbox.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1">&lt;form action=&quot;&quot; method=&quot;post&quot;&gt;
<span class="kw2">&lt;?php</span>
&nbsp;
<span class="re0">$list</span> <span class="sy0">=</span> <span class="kw3">imap_list</span><span class="br0">&#40;</span><span class="re0">$mbox</span><span class="sy0">,</span> <span class="st_h">'{imap.example.org}'</span><span class="sy0">,</span> <span class="st0">&quot;*&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;&lt;select name='moveMail'&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="kw1">echo</span> <span class="st0">&quot;&lt;option value=''&gt;Move selected emails<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">is_array</span><span class="br0">&#40;</span><span class="re0">$list</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
     <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$list</span> <span class="kw1">as</span> <span class="re0">$val</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
	 <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">preg_match</span><span class="br0">&#40;</span><span class="st0">&quot;/}/i&quot;</span><span class="sy0">,</span> <span class="re0">$val</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	 <span class="re0">$arr</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st_h">'}'</span><span class="sy0">,</span> <span class="re0">$val</span><span class="br0">&#41;</span><span class="sy0">;</span>
	 <span class="br0">&#125;</span> 
&nbsp;
	 <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">preg_match</span><span class="br0">&#40;</span><span class="st0">&quot;/]/i&quot;</span><span class="sy0">,</span> <span class="re0">$val</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	<span class="re0">$arr</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st_h">']/'</span><span class="sy0">,</span> <span class="re0">$val</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span class="re0">$box</span> <span class="sy0">=</span> <span class="kw3">trim</span><span class="br0">&#40;</span><span class="kw3">stripslashes</span><span class="br0">&#40;</span><span class="re0">$arr</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="re0">$box</span> <span class="sy0">=</span> <span class="re0">$arr</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">;</span>	
	<span class="re0">$boxval</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st_h">'INBOX.'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$box</span><span class="br0">&#41;</span><span class="sy0">;</span>	
	<span class="kw1">echo</span> <span class="st0">&quot;&lt;option value=&quot;</span><span class="sy0">.</span><span class="kw3">imap_utf7_decode</span><span class="br0">&#40;</span><span class="re0">$box</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st0">&quot;&gt;&quot;</span><span class="sy0">.</span><span class="kw3">imap_utf7_decode</span><span class="br0">&#40;</span><span class="re0">$boxval</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st0">&quot;&lt;/option&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>	
&nbsp;
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span>
<span class="kw1">echo</span> <span class="st0">&quot;&lt;/select&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>	 
<span class="sy1">?&gt;</span>
&lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;Move to Folder&quot; /&gt;
&lt;/form&gt;</pre></div></div></div></div></div></div></div>


<!-- AdSense Now! Lite V3.04 -->
<!-- Post[count: 2] -->
<div class="adsense adsense-midtext" style="text-align:center;margin: 12px;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-0401085377924210";
/* dimntutorials */
google_ad_slot = "8348419620";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p>The following code will run as long as a folder has been selected and the form has been submitted. If no folder has been selected nothing will happen.</p>
<p>The selected email is passed to a variable called $mailbox which is passed to a function called imap_mail_move which will copy the email to the desired folder it also request the imap stream and the message number. Since the function copies the email we need to remove it from the current folder, this is easily done by calling imap_expunge which will remove any emails waiting to be deleted.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span>
<span class="co1">//move mail to mailbox</span>
<span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'moveMail'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
	<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'moveMail'</span><span class="br0">&#93;</span> <span class="sy0">!=</span><span class="st_h">''</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
		<span class="re0">$mailbox</span> <span class="sy0">=</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'moveMail'</span><span class="br0">&#93;</span><span class="sy0">;</span>
		<span class="co1">//move mail to new folder</span>
		<span class="sy0">@</span><span class="kw3">imap_mail_move</span><span class="br0">&#40;</span><span class="re0">$mbox</span><span class="sy0">,</span><span class="re0">$msgno</span><span class="sy0">,</span><span class="re0">$mailbox</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="co1">//delete selected email from current folder</span>
		<span class="sy0">@</span><span class="kw3">imap_expunge</span><span class="br0">&#40;</span><span class="re0">$mbox</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
<span class="br0">&#125;</span> 
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


]]></content:encoded>
			<wfw:commentRss>http://www.daveismyname.com/tutorials/move-emails-to-selected-imap-folder/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Display mailbox folders with IMAP using PHP</title>
		<link>http://www.daveismyname.com/tutorials/display-mailbox-folders-with-imap-using-php/</link>
		<comments>http://www.daveismyname.com/tutorials/display-mailbox-folders-with-imap-using-php/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 22:35:34 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[IMAP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[imap_last_error]]></category>
		<category><![CDATA[imap_list]]></category>
		<category><![CDATA[imap_open]]></category>
		<category><![CDATA[imap_utf7_decode]]></category>

		<guid isPermaLink="false">http://www.daveismyname.com/?p=3783</guid>
		<description><![CDATA[When using IMAP its likely you will want access to the users mailbox so they can view all their folders. This tutorial will explain how display mailbox folders using imap_list. Before attempting to show the maiilbox folders a connection with the email server needs to be established with imap_open such as: $mbox = imap_open&#40;&#34;{mail.example.com:143/notls/norsh/novalidate-cert}&#34;, &#34;sample@example.com&#34;,&#34;password&#34;&#41;; ...]]></description>
			<content:encoded><![CDATA[<p>When using IMAP its likely you will want access to the users mailbox so they can view all their folders. This tutorial will explain how display mailbox folders using imap_list.</p>
<p><span id="more-3783"></span></p>
<p>Before attempting to show the maiilbox folders a connection with the email server needs to be established with imap_open such as:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$mbox</span> <span class="sy0">=</span> <span class="kw3">imap_open</span><span class="br0">&#40;</span><span class="st0">&quot;{mail.example.com:143/notls/norsh/novalidate-cert}&quot;</span><span class="sy0">,</span> <span class="st0">&quot;sample@example.com&quot;</span><span class="sy0">,</span><span class="st0">&quot;password&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>For full details on using imap_open please look at this post <a href="http://www.daveismyname.com/tutorials/php/php-imap/connecting-to-an-imap-server-using-imap_open">Connecting to an imap server using imap_open</a></p>
<p>To display mailbox folders use the function imap_list it requires 3 parameters first the imap_stream (connection) then the ref should normally be just the server specification as described in imap_open(). The third parameter dictates which folder to look in.</p>
<p>From the PHP manual:</p>
<blockquote><p>
There are two special characters you can pass as part of the pattern: &#8216;*&#8217; and &#8216;%&#8217;. &#8216;*&#8217; means to return all mailboxes. If you pass pattern as &#8216;*&#8217;, you will get a list of the entire mailbox hierarchy. &#8216;%&#8217; means to return the current level only. &#8216;%&#8217; as the pattern parameter will return only the top level mailboxes; &#8216;~/mail/%&#8217; on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.
</p></blockquote>
<p>Some mail servers separate the mailboxes with } others use ] such as Gmail to remove these from the folder when viewing them a simply preg_match will do the job</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span>
<span class="co1">//remove  any } characters from the folder</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">preg_match</span><span class="br0">&#40;</span><span class="st0">&quot;/}/i&quot;</span><span class="sy0">,</span> <span class="re0">$list</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	<span class="re0">$arr</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st_h">'}'</span><span class="sy0">,</span> <span class="re0">$list</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span> 
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


<p>Also to remove INBOX. from the mailbox name simply do a string replace</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span>
<span class="co1">//remove INBOX. from the folder name	</span>
<span class="re0">$folder</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st_h">'INBOX.'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="kw3">stripslashes</span><span class="br0">&#40;</span><span class="re0">$arr</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


<p>The inbox is sometimes the last mailbox in the array so look through the array and if the first folder is not the inbox reverse the array</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span>
<span class="co1">//check if inbox is first folder if not reorder array</span>
<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$folder</span> <span class="sy0">!==</span> <span class="st_h">'INBOX'</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
	<span class="kw3">krsort</span><span class="br0">&#40;</span><span class="re0">$list</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


<p>Putting what we have so far the inbox will always come first, at this point nothing is displayed we&#8217;re simple doing some prep work</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span>
<span class="re0">$list</span> <span class="sy0">=</span> <span class="kw3">imap_list</span><span class="br0">&#40;</span><span class="re0">$mbox</span><span class="sy0">,</span> <span class="st_h">'{mail.example.com:143/notls/norsh/novalidate-cert}'</span><span class="sy0">,</span> <span class="st0">&quot;*&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">//remove  any } characters from the folder</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">preg_match</span><span class="br0">&#40;</span><span class="st0">&quot;/}/i&quot;</span><span class="sy0">,</span> <span class="re0">$list</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	<span class="re0">$arr</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st_h">'}'</span><span class="sy0">,</span> <span class="re0">$list</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span> 
&nbsp;
<span class="co1">//also remove the ] if it exists, normally Gmail have them</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">preg_match</span><span class="br0">&#40;</span><span class="st0">&quot;/]/i&quot;</span><span class="sy0">,</span> <span class="re0">$list</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	<span class="re0">$arr</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st_h">']/'</span><span class="sy0">,</span> <span class="re0">$list</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="co1">//remove INBOX. from the folder name	</span>
<span class="re0">$folder</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st_h">'INBOX.'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="kw3">stripslashes</span><span class="br0">&#40;</span><span class="re0">$arr</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">//check if inbox is first folder if not reorder array</span>
<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$folder</span> <span class="sy0">!==</span> <span class="st_h">'INBOX'</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
	<span class="kw3">krsort</span><span class="br0">&#40;</span><span class="re0">$list</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


<p>Next loop through the array and display each mailbox I&#8217;ve commented each step, also to show the mailbox names correctly decode them with imap_utf7_decode</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span>
<span class="co1">//make sure the list is an array</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">is_array</span><span class="br0">&#40;</span><span class="re0">$list</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
	 <span class="co1">//loop through rach array index</span>
     <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$list</span> <span class="kw1">as</span> <span class="re0">$val</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
		<span class="co1">//remove  any } charactors from the folder</span>
		<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">preg_match</span><span class="br0">&#40;</span><span class="st0">&quot;/}/i&quot;</span><span class="sy0">,</span> <span class="re0">$val</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
			<span class="re0">$arr</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st_h">'}'</span><span class="sy0">,</span> <span class="re0">$val</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="br0">&#125;</span> 
&nbsp;
		<span class="co1">//also remove the ] if it exists, normally Gmail have them</span>
		<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">preg_match</span><span class="br0">&#40;</span><span class="st0">&quot;/]/i&quot;</span><span class="sy0">,</span> <span class="re0">$val</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
			<span class="re0">$arr</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st_h">']/'</span><span class="sy0">,</span> <span class="re0">$val</span><span class="br0">&#41;</span><span class="sy0">;</span>
		<span class="br0">&#125;</span>
&nbsp;
		<span class="co1">//remove any slashes</span>
		<span class="re0">$folder</span> <span class="sy0">=</span> <span class="kw3">trim</span><span class="br0">&#40;</span><span class="kw3">stripslashes</span><span class="br0">&#40;</span><span class="re0">$arr</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
		<span class="co1">//remove inbox. from the folderName its not needed for displaying purposes</span>
		<span class="re0">$folderName</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st_h">'INBOX.'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$folder</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp;
		<span class="kw1">echo</span> <span class="st0">&quot;&lt;p&gt;&lt;a href=<span class="es1">\&quot;</span>?folder=&quot;</span><span class="sy0">.</span><span class="kw3">imap_utf7_decode</span><span class="br0">&#40;</span><span class="re0">$folder</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st0">&quot;<span class="es1">\&quot;</span>&gt;&quot;</span><span class="sy0">.</span><span class="kw3">ucwords</span><span class="br0">&#40;</span><span class="kw3">strtolower</span><span class="br0">&#40;</span><span class="kw3">imap_utf7_decode</span><span class="br0">&#40;</span><span class="re0">$folderName</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="st0">&quot;&lt;/a&gt;&lt;/p&gt;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
&nbsp;
    <span class="br0">&#125;</span>
&nbsp;
<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
    <span class="kw1">echo</span> <span class="st0">&quot;Folders not currently available<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


<p>A lot of these steps are not essentially you could get all the mailbox folders and display them in a few lines as illustrated below but I believe taking the time to display the folders in a user friendly manor is much better.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span>
<span class="re0">$list</span> <span class="sy0">=</span> <span class="kw3">imap_list</span><span class="br0">&#40;</span><span class="re0">$mbox</span><span class="sy0">,</span> <span class="st0">&quot;{imap.example.org}&quot;</span><span class="sy0">,</span> <span class="st0">&quot;*&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">is_array</span><span class="br0">&#40;</span><span class="re0">$list</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$list</span> <span class="kw1">as</span> <span class="re0">$val</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="kw1">echo</span> <span class="kw3">imap_utf7_decode</span><span class="br0">&#40;</span><span class="re0">$val</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
    <span class="kw1">echo</span> <span class="st0">&quot;imap_list failed: &quot;</span> <span class="sy0">.</span> <span class="kw3">imap_last_error</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


]]></content:encoded>
			<wfw:commentRss>http://www.daveismyname.com/tutorials/display-mailbox-folders-with-imap-using-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is Twitter bad for your Blog?</title>
		<link>http://www.daveismyname.com/articles/is-twitter-bad-for-your-blog/</link>
		<comments>http://www.daveismyname.com/articles/is-twitter-bad-for-your-blog/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 04:14:19 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://www.daveismyname.com/?p=3665</guid>
		<description><![CDATA[This is a question I&#8217;ve been thinking about recently. I used to blog frequently heck almost daily when I was at university mostly about the projects I was working on. Twitter has been around for quite a few years now its only the last 2 years that I&#8217;ve used it, the last year more then ...]]></description>
			<content:encoded><![CDATA[<p>This is a question I&#8217;ve been thinking about recently. I used to blog frequently heck almost daily when I was at university mostly about the projects I was working on.</p>
<p><span id="more-3665"></span></p>
<p>Twitter has been around for quite a few years now its only the last 2 years that I&#8217;ve used it, the last year more then ever. I love Twitter I&#8217;m always reading up on the latest developments in the web industry its great but your blog could lose out on your attention, its easy to tweet a 140 character message not so much to write a meaningful post. I&#8217;ve noticed that I barely write any posts recently instead using Twitter far more!</p>
<p>Twitter is not to blame I am! it&#8217;s the convenience of Twitter that&#8217;s very addictive, ultimately its up to me to write new posts in conjunction with Twitter I believe they can co-exist if used correctly. On the other side of the coin Twitter can be very beneficial for a blog spreading a great post quickly in short space of time.</p>
<p>A good post can keep visitors reading for weeks but a tweet lasts a few hours at best till it&#8217;s buried with all the other thousands of tweets that are sent out daily.</p>
<p>Some things are more suited for Twitter then a post for example mentioning a good website and its link is great for Twitter short and to the point the same thing for a blog needs expanding for it to be really &#8216;worth while&#8217; I think it comes down to the right tool for the right job.</p>
<p>What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daveismyname.com/articles/is-twitter-bad-for-your-blog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mixing Jeditable with a Calendar</title>
		<link>http://www.daveismyname.com/development/mixing-jeditable-with-a-calender/</link>
		<comments>http://www.daveismyname.com/development/mixing-jeditable-with-a-calender/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 22:35:41 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[Jeditable]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://www.daveismyname.com/?p=3639</guid>
		<description><![CDATA[For a recent project I needed to be able to edit text directly on the webpage I decided to use jeditable its very easy to implement and served my needs, but I also needed to add a Jquery UI calendar to the input once generated. I tried a lot of different ways none of which ...]]></description>
			<content:encoded><![CDATA[<p>For a recent project I needed to be able to edit text directly on the webpage I decided to use <a href="http://www.appelsiini.net/projects/jeditable" title="jeditable" target="_blank">jeditable</a> its very easy to implement and served my needs, but I also needed to add a Jquery UI calendar to the input once generated.</p>
<p><img src="http://www.daveismyname.com/wp-content/uploads/2012/01/jeditable.png" alt="" title="jeditable" width="470" height="297" class="aligncenter size-full wp-image-3640" /></p>
<p>I tried a lot of different ways none of which worked until I came across a githup project called <a href="https://github.com/qertoip/jeditable-datepicker" title="jeditable-datepicker" target="_blank">jeditable-datepicker</a> </p>
<p><span id="more-3639"></span></p>
<p>The default example works well:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="javascript"><pre class="de1">$<span class="br0">&#40;</span> document <span class="br0">&#41;</span>.<span class="me1">ready</span><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;
  <span class="kw2">var</span> date <span class="sy0">=</span> $<span class="br0">&#40;</span> <span class="st0">'.editable'</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
  date.<span class="me1">editable</span><span class="br0">&#40;</span>
    <span class="kw2">function</span><span class="br0">&#40;</span> value<span class="sy0">,</span> settings <span class="br0">&#41;</span> <span class="br0">&#123;</span>
      date.<span class="me1">html</span><span class="br0">&#40;</span> value <span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span><span class="sy0">,</span>
    <span class="br0">&#123;</span>
      type<span class="sy0">:</span> <span class="st0">'datepicker'</span>
    <span class="br0">&#125;</span>
  <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="br0">&#125;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>It how ever does not demonstrate how to save the changes, with a little change saving the changes is easily done.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="javascript"><pre class="de1">$<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;
	<span class="co1">//editable</span>
	<span class="kw2">var</span> date <span class="sy0">=</span> $<span class="br0">&#40;</span><span class="st0">'.editable'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
	$<span class="br0">&#40;</span><span class="st0">'.editable'</span><span class="br0">&#41;</span>.<span class="me1">editable</span><span class="br0">&#40;</span><span class="st0">'save.php'</span><span class="sy0">,</span> <span class="br0">&#123;</span>
         indicator <span class="sy0">:</span> <span class="st0">'Saving...'</span><span class="sy0">,</span>
         tooltip   <span class="sy0">:</span> <span class="st0">'Click to edit...'</span><span class="sy0">,</span>
         type<span class="sy0">:</span> <span class="st0">'datepicker'</span>
     <span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>The changes are sent to save.php via a post. Inside the save file you collect the data then ideally save it, for this example I&#8217;m only formatting the data and showing the result back.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span> 
<span class="re0">$value</span> <span class="sy0">=</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'value'</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="re0">$id</span>    <span class="sy0">=</span> <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">//format date</span>
<span class="re0">$value</span> <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'jS M'</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$value</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">//print the date </span>
<span class="kw1">echo</span> <span class="re0">$value</span><span class="sy0">;</span>
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


<p>To see this in action have a look at this <a href="http://www.daveismyname.com/demos/jeditabledemo" title="Demo" target="_blank">Demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.daveismyname.com/development/mixing-jeditable-with-a-calender/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DroidEdit A text and code editor for android</title>
		<link>http://www.daveismyname.com/development/droidedit-a-text-and-code-editor-for-android/</link>
		<comments>http://www.daveismyname.com/development/droidedit-a-text-and-code-editor-for-android/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 07:21:44 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.daveismyname.co.uk/?p=3629</guid>
		<description><![CDATA[This looks like an interesting IDE for Android development DroidEdit is a text and code editor for android tablets and phones with the following features: Syntax Highlighting for several languages (C, C++, C#, Java, HTML, CSS, Javascript, Python, Ruby, Groovy, JSP, Perl, LaTeX, SQL, XML, Lua,]]></description>
			<content:encoded><![CDATA[<p><iframe width="500" height="375" src="http://www.youtube.com/embed/hdAvd1R-8gw?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>This looks like an interesting IDE for Android development</p>
<p><span id="more-3629"></span></p>
<blockquote><p>DroidEdit is a <strong>text and code editor</strong> for <strong>android tablets and phones</strong> with the following features:</p>
<ul>
<li>Syntax Highlighting for several languages (C, C++, C#, Java, HTML, CSS, Javascript, Python, Ruby, Groovy, JSP, Perl, LaTeX, SQL, XML, Lua,<br />
]]></content:encoded>
			<wfw:commentRss>http://www.daveismyname.com/development/droidedit-a-text-and-code-editor-for-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;ve been invited to be a technical reviewer for an upcoming book (PHP and CouchDB Web Development) from Packt publishing.</title>
		<link>http://www.daveismyname.com/articles/ive-been-invited-to-be-a-technical-reviewer-for-an-upcoming-book-php-and-couchdb-web-development-from-packt-publishing/</link>
		<comments>http://www.daveismyname.com/articles/ive-been-invited-to-be-a-technical-reviewer-for-an-upcoming-book-php-and-couchdb-web-development-from-packt-publishing/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 19:18:53 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[couchDB]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.daveismyname.co.uk/?p=3611</guid>
		<description><![CDATA[I&#8217;m thrilled to be asked to review the book, I&#8217;ve of course agreed to review the book which will be done over the next few months it&#8217;s expected to be released in March next year. About the book CouchDB is a NoSQL database which is making waves in the development world. It’s the tool of ...]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m thrilled to be asked to review the book, I&#8217;ve of course agreed to review the book which will be done over the next few months it&#8217;s expected to be released in March next year.</p>
<p><img class="aligncenter size-full wp-image-3612" title="php-and-couchdb-web-development" src="http://www.daveismyname.com/wp-content/uploads/2012/01/php-and-couchdb-web-development.jpg" alt="" width="500" height="617" /></p>
<p><span id="more-3611"></span></p>
<h1>About the book</h1>
<p>CouchDB is a NoSQL database which is making waves in the development world. It’s the tool of choice for many PHP developers so they need to understand the robust features of CouchDB and the tools that are available to them.</p>
<p>PHP and CouchDB Web Development Beginner’s Guide will teach you the basics and fundamentals of using CouchDB within a project. You will learn how to build an application from beginning to end, learning the difference between the “quick way” to do things, and the “right way” by looking through a variety of code examples and real world scenarios.</p>
<p>You will start with a walkthrough of setting up a sound development environment and then learn to create a variety of documents manually and programmatically. You will also learn how to manage their source control with Git and keep track of their progress. With each new concept, such as adding users and posts to your application, the author will take you through code step-by-step and explain how to use CouchDB’s robust features. Finally, you will learn how to easily deploy your application and how to use simple replication to scale your application.<br />
<strong>What you will learn from this book :</strong></p>
<ul>
<li>Set up a web development environment from scratch</li>
<li>Dive into CouchDB and learn how it looks at databases, documents, design documents, and views</li>
<li>Conceptualize and create a simple PHP framework from scratch that will interact directly with CouchDB</li>
<li>Create the ability for users to sign up, log in, and reset their password through our application using CouchDB</li>
<li>Allow users to create posts and leverage design documents, views, and lists to do the heavy lifting</li>
<li>Learn how to add some of the bells and whistles commonly used by modern social networks</li>
<li>Add security and deploy your application to production</li>
<li>Learn how to use CouchDB to replicate your database</li>
</ul>
<p><strong>Approach</strong></p>
<p>Each chapter follows the creation of a social networking application with step-by-step instructions. This means that you will have easily created a complete, working application by the end of the book.</p>
<p><strong>Who this book is written for</strong></p>
<p>This book is for beginner and intermediate PHP developers interested in using CouchDB development in their projects. Advanced PHP developers will appreciate the familiarity of the PHP architecture and can easily learn how to incorporate CouchDB into their existing development experiences.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daveismyname.com/articles/ive-been-invited-to-be-a-technical-reviewer-for-an-upcoming-book-php-and-couchdb-web-development-from-packt-publishing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Offers expands there deals to include other providers, should Groupon be worried?</title>
		<link>http://www.daveismyname.com/articles/google-offers-expands-there-deals-to-include-other-providers-should-groupon-be-worried/</link>
		<comments>http://www.daveismyname.com/articles/google-offers-expands-there-deals-to-include-other-providers-should-groupon-be-worried/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 19:50:23 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[groupon]]></category>
		<category><![CDATA[offers]]></category>

		<guid isPermaLink="false">http://www.daveismyname.co.uk/?p=3616</guid>
		<description><![CDATA[Google offers (looks just like a rip of Groupon) is set to expand its offers from not only Google offers but to also include offers from other local providers, currently Google Offers is only available]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-3617" title="google-offers" src="http://www.daveismyname.com/wp-content/uploads/2012/01/google-offers.png" alt="" width="612" height="415" /></p>
<p><a href="https://www.google.com/offers/home" target="_blank">Google offers</a> (looks just like a rip of Groupon) is set to expand its offers from not only Google offers but to also include offers from other local providers, currently Google Offers is only available</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daveismyname.com/articles/google-offers-expands-there-deals-to-include-other-providers-should-groupon-be-worried/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Plus API released Read Only Access</title>
		<link>http://www.daveismyname.com/development/google-plus-api-released-read-only-access/</link>
		<comments>http://www.daveismyname.com/development/google-plus-api-released-read-only-access/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 19:03:20 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[google]]></category>

		<guid isPermaLink="false">http://www.daveismyname.co.uk/?p=3607</guid>
		<description><![CDATA[Google has just released the first Google+ API, Its focus is on public data which lets you share read information that has been shared publicly on Google+ Google has also released a Google+ developers site This will be the place to go for their policies, terms, discussions with other developers, access to documentation. tools that ...]]></description>
			<content:encoded><![CDATA[<p>Google has just released the first Google+ API, Its focus is on public data which lets you share read information that has been shared publicly on Google+</p>
<p><img class="aligncenter size-full wp-image-3608" title="google-plus" src="http://www.daveismyname.com/wp-content/uploads/2012/01/google-plus.jpg" alt="" width="630" height="420" /></p>
<p>Google has also released a <a href="https://developers.google.com/+/" target="_blank">Google+ developers site</a> This will be the place to go for their <a href="http://developers.google.com/+/policies" target="_blank">policies</a>, <a href="http://developers.google.com/+/terms" target="_blank">terms</a>, <a href="http://developers.google.com/+/discussions" target="_blank">discussions</a> with other developers, access to <a href="http://developers.google.com/+/api" target="_blank">documentation</a>.</p>
<p><span id="more-3607"></span></p>
<p>tools that make development on the Google+ platform easier and more fun, and of course, the place where announcements concerning new releases will be made.</p>
<p>See the Google <a href="http://googleplusplatform.blogspot.com/" target="_blank">post</a> for more details.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daveismyname.com/development/google-plus-api-released-read-only-access/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reading events from an iCal Calendar using PHP</title>
		<link>http://www.daveismyname.com/tutorials/reading-events-from-an-ical-calendar-using-php/</link>
		<comments>http://www.daveismyname.com/tutorials/reading-events-from-an-ical-calendar-using-php/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 07:12:16 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[file_get_contents]]></category>
		<category><![CDATA[ical]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[preg_match]]></category>
		<category><![CDATA[preg_match_al]]></category>

		<guid isPermaLink="false">http://www.developerstoolkit.co.uk/?p=713</guid>
		<description><![CDATA[Reading event/calender information from iCal can be very useful this tutorial will show you how to read and use the information in a practical way.]]></description>
			<content:encoded><![CDATA[<p>Reading event/calender information from iCal can be very useful this tutorial will show you how to read and use the information in a practical way. First lets create a function to collect the information we&#8217;re interested in from the iCal file.</p>
<p><span id="more-713"></span></p>
<p>Our function will be called iCalDecoder $file will be the location of the ical file</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">function</span> iCalDecoder<span class="br0">&#40;</span><span class="re0">$file</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></pre></div></div></div></div></div></div></div>


<p>Next using preg_match_all collect all information inside the iCal file between BEGIN:VEVENT and END:VEVENT then loop through all the results, separate each entry by its line break (rn). For each entry separate the label and the content by exploding on : then loop through the results and add them to an array called $majorarray.</p>
<p>Using preg_match we can catch any events between DESCRIPTION and END:VEVENT also then add them to the array which is then returned.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1">		<span class="kw3">preg_match_all</span><span class="br0">&#40;</span><span class="st_h">'/(BEGIN:VEVENT.*?END:VEVENT)/si'</span><span class="sy0">,</span> <span class="re0">$ical</span><span class="sy0">,</span> <span class="re0">$result</span><span class="sy0">,</span> PREG_PATTERN_ORDER<span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> <span class="re0">$i</span> <span class="sy0">&amp;</span>lt<span class="sy0">;</span> <span class="kw3">count</span><span class="br0">&#40;</span><span class="re0">$result</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="re0">$i</span><span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>             <span class="re0">$tmpbyline</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st0">&quot;rn&quot;</span><span class="sy0">,</span> <span class="re0">$result</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>                          <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$tmpbyline</span> <span class="kw1">as</span> <span class="re0">$item</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>                 <span class="re0">$tmpholderarray</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st0">&quot;:&quot;</span><span class="sy0">,</span><span class="re0">$item</span><span class="br0">&#41;</span><span class="sy0">;</span>                 <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">count</span><span class="br0">&#40;</span><span class="re0">$tmpholderarray</span><span class="br0">&#41;</span> <span class="sy0">&amp;</span>gt<span class="sy0">;</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                    <span class="re0">$majorarray</span><span class="br0">&#91;</span><span class="re0">$tmpholderarray</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$tmpholderarray</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">;</span>
                <span class="br0">&#125;</span>
            <span class="br0">&#125;</span>
&nbsp;
            <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">preg_match</span><span class="br0">&#40;</span><span class="st_h">'/DESCRIPTION:(.*)END:VEVENT/si'</span><span class="sy0">,</span> <span class="re0">$result</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$regs</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                <span class="re0">$majorarray</span><span class="br0">&#91;</span><span class="st_h">'DESCRIPTION'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">&quot;  &quot;</span><span class="sy0">,</span> <span class="st0">&quot; &quot;</span><span class="sy0">,</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">&quot;rn&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="sy0">,</span> <span class="re0">$regs</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="br0">&#125;</span>
            <span class="re0">$icalarray</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$majorarray</span><span class="sy0">;</span>
            <span class="kw3">unset</span><span class="br0">&#40;</span><span class="re0">$majorarray</span><span class="br0">&#41;</span><span class="sy0">;</span>             
&nbsp;
        <span class="br0">&#125;</span>
		<span class="kw1">return</span> <span class="re0">$icalarray</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p>To use the function we&#8217;ll add the results from the function to a variable called $events then loop through all array items using foreach</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$events</span> <span class="sy0">=</span> iCalDecoder<span class="br0">&#40;</span><span class="st0">&quot;location/of/iCal/file&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$events</span> <span class="kw1">as</span> <span class="re0">$event</span><span class="br0">&#41;</span><span class="br0">&#123;</span></pre></div></div></div></div></div></div></div>


<p>For a bit of cleanup we can remove the T and Z from the timestamp and add in date formatting:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1">	<span class="re0">$date</span> <span class="sy0">=</span> <span class="re0">$event</span><span class="br0">&#91;</span><span class="st_h">'DTSTART'</span><span class="br0">&#93;</span><span class="sy0">;</span><span class="co1">//get date from ical</span>
	<span class="re0">$date</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st_h">'T'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$date</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//remove T</span>
	<span class="re0">$date</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st_h">'Z'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$date</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//remove Z</span>
	<span class="re0">$d</span>    <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'d'</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$date</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//get date day</span>
	<span class="re0">$m</span>    <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'m'</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$date</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//get date month</span>
	<span class="re0">$y</span>    <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'Y'</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$date</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//get date year</span>
	<span class="re0">$now</span> <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'Y-m-d G:i:s'</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//current date and time</span>
	<span class="re0">$eventdate</span> <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'Y-m-d G:i:s'</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$date</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//user friendly date</span></pre></div></div></div></div></div></div></div>


<p>Next show all events where the event date is more then the current date, so we don&#8217;t show past events, the present the event data and title, of course you can provide more information that is captured from iCal.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$eventdate</span> <span class="sy0">&gt;</span> <span class="re0">$now</span><span class="br0">&#41;</span><span class="br0">&#123;</span>	
	<span class="kw1">echo</span> <span class="st0">&quot;	
		&lt;div class=<span class="es1">\&quot;</span>eventHolder<span class="es1">\&quot;</span>&gt;
			&lt;div class='eventDate'&gt;<span class="es4">$eventdate</span>&lt;/div&gt;
			&lt;div class=<span class="es1">\&quot;</span>eventTitle<span class="es1">\&quot;</span>&gt;&quot;</span><span class="sy0">.</span><span class="re0">$event</span><span class="br0">&#91;</span><span class="st_h">'SUMMARY'</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot;&lt;/div&gt;
		&lt;/div&gt;&quot;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div></div></div></div></div></div>


<p>Putting it all together:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">function</span> iCalDecoder<span class="br0">&#40;</span><span class="re0">$file</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="re0">$ical</span> <span class="sy0">=</span> <span class="kw3">file_get_contents</span><span class="br0">&#40;</span><span class="re0">$file</span><span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw3">preg_match_all</span><span class="br0">&#40;</span><span class="st_h">'/(BEGIN:VEVENT.*?END:VEVENT)/si'</span><span class="sy0">,</span> <span class="re0">$ical</span><span class="sy0">,</span> <span class="re0">$result</span><span class="sy0">,</span> PREG_PATTERN_ORDER<span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> <span class="re0">$i</span> <span class="sy0">&lt;</span> <span class="kw3">count</span><span class="br0">&#40;</span><span class="re0">$result</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="re0">$i</span><span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="re0">$tmpbyline</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\r</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="re0">$result</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
            <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$tmpbyline</span> <span class="kw1">as</span> <span class="re0">$item</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                <span class="re0">$tmpholderarray</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st0">&quot;:&quot;</span><span class="sy0">,</span><span class="re0">$item</span><span class="br0">&#41;</span><span class="sy0">;</span>
                <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">count</span><span class="br0">&#40;</span><span class="re0">$tmpholderarray</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> 
                    <span class="re0">$majorarray</span><span class="br0">&#91;</span><span class="re0">$tmpholderarray</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$tmpholderarray</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">;</span>
                <span class="br0">&#125;</span>                
            <span class="br0">&#125;</span>
&nbsp;
            <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">preg_match</span><span class="br0">&#40;</span><span class="st_h">'/DESCRIPTION:(.*)END:VEVENT/si'</span><span class="sy0">,</span> <span class="re0">$result</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$regs</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                <span class="re0">$majorarray</span><span class="br0">&#91;</span><span class="st_h">'DESCRIPTION'</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">&quot;  &quot;</span><span class="sy0">,</span> <span class="st0">&quot; &quot;</span><span class="sy0">,</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es1">\r</span><span class="es1">\n</span>&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="sy0">,</span> <span class="re0">$regs</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="br0">&#125;</span> 
            <span class="re0">$icalarray</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re0">$majorarray</span><span class="sy0">;</span>
            <span class="kw3">unset</span><span class="br0">&#40;</span><span class="re0">$majorarray</span><span class="br0">&#41;</span><span class="sy0">;</span>             
&nbsp;
        <span class="br0">&#125;</span>
        <span class="kw1">return</span> <span class="re0">$icalarray</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
<span class="re0">$events</span> <span class="sy0">=</span> iCalDecoder<span class="br0">&#40;</span><span class="st0">&quot;location/of/iCal/file&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$events</span> <span class="kw1">as</span> <span class="re0">$event</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
	<span class="re0">$date</span> <span class="sy0">=</span> <span class="re0">$event</span><span class="br0">&#91;</span><span class="st_h">'DTSTART'</span><span class="br0">&#93;</span><span class="sy0">;</span><span class="co1">//get date from ical</span>
	<span class="re0">$date</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st_h">'T'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$date</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//remove T </span>
	<span class="re0">$date</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st_h">'Z'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$date</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//remove Z	</span>
	<span class="re0">$d</span>    <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'d'</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$date</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//get date day</span>
	<span class="re0">$m</span>    <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'m'</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$date</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//get date month</span>
	<span class="re0">$y</span>    <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'Y'</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$date</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//get date year</span>
	<span class="re0">$now</span> <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'Y-m-d G:i:s'</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//current date and time</span>
	<span class="re0">$eventdate</span> <span class="sy0">=</span> <span class="kw3">date</span><span class="br0">&#40;</span><span class="st_h">'Y-m-d G:i:s'</span><span class="sy0">,</span> <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="re0">$date</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="co1">//user friendly date	</span>
&nbsp;
	<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$eventdate</span> <span class="sy0">&gt;</span> <span class="re0">$now</span><span class="br0">&#41;</span><span class="br0">&#123;</span>	
		<span class="kw1">echo</span> <span class="st0">&quot;	
			&lt;div class=<span class="es1">\&quot;</span>eventHolder<span class="es1">\&quot;</span>&gt;
				&lt;div class='eventDate'&gt;<span class="es4">$eventdate</span>&lt;/div&gt;
				&lt;div class=<span class="es1">\&quot;</span>eventTitle<span class="es1">\&quot;</span>&gt;&quot;</span><span class="sy0">.</span><span class="re0">$event</span><span class="br0">&#91;</span><span class="st_h">'SUMMARY'</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot;&lt;/div&gt;
			&lt;/div&gt;&quot;</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></div></div></div></div></div></div></div>


]]></content:encoded>
			<wfw:commentRss>http://www.daveismyname.com/tutorials/reading-events-from-an-ical-calendar-using-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Convert mobile number to international format dynamically with php</title>
		<link>http://www.daveismyname.com/tutorials/php/convert-mobile-number-international-format-dynamically-php/</link>
		<comments>http://www.daveismyname.com/tutorials/php/convert-mobile-number-international-format-dynamically-php/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 10:03:53 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[mobile.number]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.phphelptutorials.com/?p=592</guid>
		<description><![CDATA[I often need to covert mobile numbers into a UK international format of 44 followed by the number such as 442548951486 the numbers I work with can be in a mixed format some without a starting 0 others with 44 and same with spaces, so I wrote function that will convert a number in any ...]]></description>
			<content:encoded><![CDATA[<p>I often need to covert mobile numbers into a UK international format of 44 followed by the number such as 442548951486 the numbers I work with can be in a mixed format some without a starting 0 others with 44 and same with spaces, so I wrote function that will convert a number in any mixture into a standard format quick and easily and as all the code is inside a function is reusable which means converting numbers in bulk is now very easy to do.</p>
<p><span id="more-597"></span></p>
<p>The function simple needs a number passing to it, a check is done to make sure the number only contains numbers then a check is done to see if the number starts with a 0 if not if will add a 0 as long as the start is not 4. Then a check is done to replace the 0 with a 44 then finally any spaces are removed and the formatted number is then returned.</p>
<p>Here&#8217;s the function:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span>
<span class="kw2">function</span> format_number<span class="br0">&#40;</span><span class="re0">$number</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
	<span class="co1">//make sure the number is actually a number</span>
	<span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">is_numeric</span><span class="br0">&#40;</span><span class="re0">$number</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp;
		<span class="co1">//if number doesn't start with a 0 or a 4 add a 0 to the start.</span>
		<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$number</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">!=</span> <span class="nu0">0</span> <span class="sy0">&amp;&amp;</span> <span class="re0">$number</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">!=</span> <span class="nu0">4</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
			<span class="re0">$number</span> <span class="sy0">=</span> <span class="st0">&quot;0&quot;</span><span class="sy0">.</span><span class="re0">$number</span><span class="sy0">;</span>
		<span class="br0">&#125;</span>
&nbsp;
		<span class="co1">//if number starts with a 0 replace with 4</span>
		<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$number</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
			<span class="re0">$number</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">&quot;0&quot;</span><span class="sy0">,</span><span class="st0">&quot;4&quot;</span><span class="sy0">,</span><span class="re0">$number</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>			
			<span class="re0">$number</span> <span class="sy0">=</span> <span class="st0">&quot;4&quot;</span><span class="sy0">.</span><span class="re0">$number</span><span class="sy0">;</span>	
		<span class="br0">&#125;</span>
&nbsp;
		<span class="co1">//remove any spaces in the number</span>
		<span class="re0">$number</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">&quot; &quot;</span><span class="sy0">,</span><span class="st0">&quot;&quot;</span><span class="sy0">,</span><span class="re0">$number</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
		<span class="co1">//return the number</span>
		<span class="kw1">return</span> <span class="re0">$number</span><span class="sy0">;</span>
&nbsp;
	<span class="co1">//number is not a number</span>
	<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
&nbsp;
		<span class="co1">//return nothing</span>
		<span class="kw1">return</span> <span class="kw4">false</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>	
<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


<p>Usage Example:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">&lt;?php</span>
<span class="kw1">echo</span> format_number<span class="br0">&#40;</span><span class="st_h">'07295514973'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="sy1">?&gt;</span></pre></div></div></div></div></div></div></div>


]]></content:encoded>
			<wfw:commentRss>http://www.daveismyname.com/tutorials/php/convert-mobile-number-international-format-dynamically-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

