<?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>Web Design Talk &#187; PHP</title>
	<atom:link href="http://www.web-design-talk.co.uk/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.web-design-talk.co.uk</link>
	<description>Web Design &#38; Development Blog</description>
	<lastBuildDate>Wed, 28 Jul 2010 21:50:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Displaying a Breadcrumb Navigation for Multiple Sub Categories via PHP</title>
		<link>http://www.web-design-talk.co.uk/188/displaying-a-breadcrumb-navigation-for-multiple-sub-categories-via-php-2/</link>
		<comments>http://www.web-design-talk.co.uk/188/displaying-a-breadcrumb-navigation-for-multiple-sub-categories-via-php-2/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 10:57:43 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[multiple sub categories]]></category>
		<category><![CDATA[php categories]]></category>
		<category><![CDATA[recursive functions]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=188</guid>
		<description><![CDATA[While making an ecommerce store I ran into the issue of displaying a category breadcrumb. Usually this is easy as I always recommend keeping the numbers of categories and sub categories to a maximum of 1 level deep. E.g. Tshirts &#62; Red tshirts. For this store, due to the sheer number of products the owner [...]]]></description>
			<content:encoded><![CDATA[<p>While making an ecommerce store I ran into the issue of displaying a category breadcrumb. Usually this is easy as I always recommend keeping the numbers of categories and sub categories to a maximum of 1 level deep. E.g. Tshirts &gt; Red tshirts. For this store, due to the sheer number of products the owner wanted to add up to seven category levels. While there are many tutorials on this floating about, they all seem tocus on displaying the whole tree &#8211; very useful for a sitemap page, but not a breadcrumb navigation. While it would have been possible to hard code several if statements into the category listing page, this seemed a bit messey and would cause problems if an eighth level was added.</p>
<p>For the breadcrumb naviagtion I needed a function to displaying the path to a given category ID, sometimes refered to as a single branch or node. I was using a simple parent child database table structure:</p>
<p><a href="http://www.web-design-talk.co.uk/wp-content/uploads/2010/03/php-multiple-sub-categories.jpg"><img class="size-full wp-image-189 alignnone" style="border: 1px solid #cccccc;" title="php-multiple-sub-categories" src="http://www.web-design-talk.co.uk/wp-content/uploads/2010/03/php-multiple-sub-categories.jpg" alt="php multiple=" /></a></p>
<p>While the latter may seem fairly trival I really couldn&#8217;t get my head around the problem. After a bit of Googling, I found a function that was a good starting point so adapted it to fit my problem (the function is part of a categoru class):</p>
<pre class="brush: php;">
function getCategoryTreeIDs($catID) {
		$row = DB::getInstance()-&gt;query(&quot;SELECT parent FROM categories WHERE ID = '$catID'&quot;)-&gt;fetch();
		$path = array();
		if (!$row['parent'] == '') {
			$path[] = $row['parent'];
			$path = array_merge($this-&gt;getCategoryTreeIDs($row['parent']), $path);
		}
		return $path;
	}
</pre>
<p>The function simply returns an array of category IDs. E.g 20, 28. So from the array I&#8217;d know that the tree would go as Home &gt; Cat ID 20 &gt; Cat ID 28.</p>
<h2 style="font-size:12px;border:0;padding-left:0;">Displaying the Breadcrumb Navigation</h2>
<p>To display the actual breadcrumb I simply added the following method, that loops through the array of ID we just generated. The getNameLink method simply generates an SEO feindly website URL for the category, inside the &lt;a&gt; tag.</p>
<pre class="brush: php;">
function showCatBreadCrumb($catID) {

		$array = $this-&gt;getCategoryTreeIDs($catID);

		$numItems = count($array);
		for ($i = 0; $i&lt;=$numItems-1; $i++) {
			echo $this-&gt;getNameLink($array[$i]) . ' &amp;raquo; ';
		}
	}
</pre>
<p>The result is a nicely formatted breadcrumb (to use our tshiorts example again):</p>
<p>Home &amp;rquao; Clothes &amp;rquao; tshirts &amp;rquao;  Mens &amp;rquao; Red tshirts &amp;rquao; Offensive &amp;rquao;</p>
<h2 style="font-size:12px;border:0;padding-left:0;">A recursive function inside a loop, are you insane?</h2>
<p>Some of you may have noticed that the function used to generate the category IDs is called recursively. This generally considered bad practice, for large data sets due to performance issues. However, for the current use this isn&#8217;t an issue. I know for a fact that client won&#8217;t be adding categories more than several levels deep, so performance really isn&#8217;t an issue in my eyes here. Maybe if we had hundreds of categories, but for several it&#8217;s really a non issue in my opinion.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 185px; width: 1px; height: 1px; overflow: hidden;">
<pre>getCategoryTreeIDs</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/188/displaying-a-breadcrumb-navigation-for-multiple-sub-categories-via-php-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Multiple Array Form Values With PHP</title>
		<link>http://www.web-design-talk.co.uk/94/getting-multiple-array-form-values-with-php/</link>
		<comments>http://www.web-design-talk.co.uk/94/getting-multiple-array-form-values-with-php/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 21:38:46 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[add form inputs]]></category>
		<category><![CDATA[associative array]]></category>
		<category><![CDATA[jquery append]]></category>
		<category><![CDATA[multiple form values]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=94</guid>
		<description><![CDATA[Further to my article on using JQuery to dynamically append form elements, I have come across situations where multiple items should be appended to the form each time, as opposed to a single input in my article (I did this simplicity). For example, at work I&#8217;m currently working on an internal system whereby a user [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 130px"><img src="http://www.web-design-talk.co.uk/images/phparray.jpg" alt="php array code" width="120" height="111" /><p class="wp-caption-text">PHP Arrays</p></div>
<p>Further to my <a href="http://www.web-design-talk.co.uk/58/adding-unlimited-form-fields-with-jquery-mysql/">article on using JQuery to dynamically append form elements</a>, I have come across situations where multiple items should be appended to the form each time, as opposed to a single input in my article (I did this simplicity). For example, at work I&#8217;m currently working on an internal system whereby a user needs to add an unlimited amount of client contacts for a client. Pressing the &#8216;add contact&#8217; link will append 3 fields &#8211; one for conatct name, contact telephone and contact email. Each of these fields are named exactly the same way as before (using square brackets at the end of the name E.g. &#8216;name[]&#8216;) and appended the same way using JQuery.</p>
<p>There are lots of articles floating about explaing how to add fields, but I&#8217;ve not yet seen anything explaining how to retreive multiple elements like this.</p>
<p>The only differnce arises when retreiving these multiple values from the PHP&#8217;s POST array. In the example I have appended 3 inputs, named cname[], cemail[] and ctel[]. The values of each can be retreived using a slightly enchanced for loop:</p>
<pre class="brush: php;">
if (isset($_POST['cname'])) {
for ( $i=0;$i&lt;count($_POST['cname']);$i++) {
$contactname = $_POST['cname'][$i];
$conatctemail = $_POST['cemail'][$i];
$contacttel = $_POST['ctel'][$i];
}
}
</pre>
<p>That&#8217;s really all there is to it and I&#8217;m finding that the latter comes in useful quit regularly in every day projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/94/getting-multiple-array-form-values-with-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Simple Ajax Content Loading With JQuery</title>
		<link>http://www.web-design-talk.co.uk/30/simple-ajax-content-loading-with-jquery/</link>
		<comments>http://www.web-design-talk.co.uk/30/simple-ajax-content-loading-with-jquery/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 21:54:33 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ajax content loading]]></category>
		<category><![CDATA[ajax load]]></category>
		<category><![CDATA[jquery .load()]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=30</guid>
		<description><![CDATA[Occasionally it is useful to silently load content into an area on a webpage. For example, you may have a list of recent comments that you want to refresh every minute. Using a <a href="http://en.wikipedia.org/wiki/Meta_refresh">meta refresh</a> is one option, but this would cause the whole page to refresh, which could annoy the user. The solution is Ajax, where I'll reload the content silently without a single page refresh.]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 239px"><a href="http://www.jquery.com"><img title="JQuery Logo" src="http://www.web-design-talk.co.uk/images/jquery_logo.png" alt="JQuery.com Logo" width="229" height="74" /></a><p class="wp-caption-text">JQuery - JavaScript Framework</p></div>
<p>Occasionally it is useful to silently load content into an area on a webpage. For example, you may have a list of recent comments that you want to refresh every minute. Using a <a href="http://en.wikipedia.org/wiki/Meta_refresh">meta refresh</a> is one option, but this would cause the whole page to refresh, which could annoy the user. The solution is Ajax, where I&#8217;ll reload the content silently without a single page refresh. Even writing the simplist of Ajax functions is quite painful and requires a fair few <a href="http://www.ajaxlines.com/ajax/stuff/article/simple_ajax_javascript_function.php" target="_blank">lines of code</a> to get things done. To make things simpler we&#8217;ll use my favourite JavaScript Framework,  <a href="http://www.jquery.com" target="_blank">JQuery</a>.</p>
<p>The plan is to have dynamic content loaded via Ajax and refresh every x seconds. We&#8217;ll also have a loading image to show the user something is actually happening behind the scenes, as having nothing while the content is loading could make the user leave. The latter is especially important when querying large sets of data, where a delay is possible. You can get your own loading images from the <a href="http://www.ajaxload.info/" target="_blank">ajax loading image site</a>.Now we have a plan, we&#8217;ll get right into it.</p>
<p>First course of action is to setup our basic html page. It&#8217;s nothing amazing, simply a centered divider with a seperate divider for the loading graphic. Here&#8217;s the code we&#8217;ll be using (for simplicity I&#8217;ve used the style tag for the css, as opposed to having a seperate css file:</p>
<p><span id="more-30"></span></p>
<pre class="brush: css; html-script: true;">&lt;!--
	body, h1 {
		font-family: Verdana, Arial, Helvetica, sans-serif;
		font-size: 0.8em;
	}
	a {
		text-decoration: none;
		color: #333;
	}
	a:hover {
		color: #ff0000;
	}

	#ajax-content {
		height: auto;
		width: 400px;
		border: 5px solid #ccc;
		margin: 0 auto;
		padding: 10px;
	}
	#loading {
		width: 66px;
		margin: 0 auto;
	}
--&gt;
&lt;script src=&quot;jquery-1.2.3.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;div id=&quot;loading&quot;&gt;
   &lt;img src=&quot;loader.gif&quot; alt=&quot;content is loading&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;
&lt;/div&gt;
</pre>
<p>The JQuery library has also been included in the header &#8211; you can download JQuery from the <a href="http://jquery.com/">official site</a>. Our actual content will be loaded into the div called &#8216;ajax-content&#8217;. For the content I&#8217;ve simply used an external php file that echos an <a href="http://www.w3schools.com/html/html_lists.asp">un-ordered list</a> and the current server time (you can then see that the content has been refreshed as the time changes). This has been done for simplicity, but you could easily query a database for information. PHP&#8217;s <a href="http://www.php.net/sleep">sleep function</a> was used to create a delay when loading the content, this way you can see something is actually happening. In reality you would never want to use sleep, as it simply delays loading times. The contents of the PHP file are as follows:</p>
<pre class="brush: php;">Last Updated: &quot;.date('h:i:s A').&quot;&quot;;
echo &quot;
&lt;h1&gt;Big List of Software&lt;/h1&gt;
&quot;;
echo &quot;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;RmBarCode 1.00a&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;ServerMask 3.0.4&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;LinkDeny 1.1.0&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;Drag Racer 1&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;Method123 Educational 3.6&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;Easy St. Tycoon 1.0&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;iColorPicker 6.18&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;USB Virus Scan 2.3&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;AWP Light FREE 2.0&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;ZipEnable 3.0.2&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;w3compiler 1.1.2&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;Remote Reboot 2.0&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;Pixeur 2.9.0.15&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;Mailing Master 2.0&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://link.com&quot;&gt;Rewards Multiply 2.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&quot;;
?&amp;gt;</pre>
<p>Now enters the magic, the JQuery. The following code is placed in script tags in the document head, I&#8217;ll explain line by line how this works.</p>
<pre class="brush: jscript;">function fetchAjaxContent() {
	var numRand = Math.floor(Math.random()*101);
	$('#ajax-content').load('ajax.php?UID=' + numRand);
}</pre>
<p>For simplicity I&#8217;ll add a generic function that load&#8217;s the contents of our PHP file (ajax.php) via Ajax. This simply uses <a href="http://docs.jquery.com/Ajax/load">JQuery&#8217;s load function</a> to load the contents of ajax.php. The random number is placed in the querystring to stop Internet Explorer caching the results. The latter could also be done server side via adding the below to ajax.php:</p>
<pre class="brush:php">header("cache-control: no-cache");</pre>
<p>The following code is placed inside JQuery&#8217;s document ready function. Firstly we hide the divider that will contain the ajax content. using more of JQuery&#8217;s built in ajax function, I use the <a href="http://docs.jquery.com/Ajax/ajaxStart">ajaxStart </a> function (that is executed whenever an AJAX request begins and there is none already active). In this instance the loading image is simply displayed. The opposite function used is <a href="http://docs.jquery.com/Ajax/ajaxStop">ajaxStop </a> (executed whenever all AJAX requests have ended) to hide the loading image and show the loaded content. Finally, we&#8217;ll call our function from previously, &#8216;fetchAjaxContent()&#8217; from within the JavaScript setInterval function (calls a function at specified intervals in milliseconds, every 5 seconds is used in this example). The complete code for the document ready looks like this:</p>
<pre class="brush: jscript;">$(document).ready(function() {

        $('#ajax-content').hide();

	$(&quot;#loading&quot;).ajaxStart(function(){
		$('#ajax-content').slideUp();
                $(this).show();
	});

	$(&quot;#loading&quot;).ajaxStop(function(){
	         $(this).hide();
	         $(&quot;#ajax-content&quot;).slideDown();
	}); 

	setInterval(&quot;fetchAjaxContent()&quot;, 5000);

});</pre>
<p>That&#8217;s it basically. You can now <a href="http://www.web-design-talk.co.uk/examples/1/" target="_self">view a working example</a> or <a href="http://www.web-design-talk.co.uk/examples/1/ajax-content-loading.zip">download the source files</a>. Notice how after each refresh, 5 seconds has elapsed in the printed output.</p>
<p>Thanks for reading!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/30/simple-ajax-content-loading-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>301 Redirects for SEO Using htaccess</title>
		<link>http://www.web-design-talk.co.uk/20/301-redirects-for-seo-using-htaccess/</link>
		<comments>http://www.web-design-talk.co.uk/20/301-redirects-for-seo-using-htaccess/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 21:08:07 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Jquery Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[useability]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=20</guid>
		<description><![CDATA[Google treats www.website.com and website.com as two totally different websites. This is very bad for your (or even a client's) website as it may lead to duplicate content and different pageranks to those sites.  This is how Google "canonicalizes" the url and is very bad from an SEO standpoint.]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 130px"><img title="404 vs 301" src="http://www.web-design-talk.co.uk/images/404-vs-301-redirect.jpg" alt="301 Redirects Prevent 404 Errors" width="120" height="120" /><p class="wp-caption-text">301 Redirects Prevent 404 Errors</p></div>
<p>Google treats www.website.com and website.com as two totally different websites. This is very bad for your (or even a client&#8217;s) website as it may lead to duplicate content and different pageranks to those sites.  This is how Google &#8220;canonicalizes&#8221; the url and is very bad from an SEO standpoint.</p>
<p>In essence, a web server could return totally different results for each of those pages. I have also encountered the situation where clients have set their preferred domain in Google webmaster tools, have given out the opposite version for SEM and wonder why they don&#8217;t see results <img src='http://www.web-design-talk.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> You can easily check the above by using the &#8220;site:&#8221; operator in Google search. E.g. site:www.website.com and site:website.com</p>
<p>You can use &#8220;mod rewrite&#8221; rules as a powerful method for redirecting many URLs from one location to another.  This is a simple server level technique for handling redirects. The way people handle this canonicalization issue is purely a personal choice, although the below method can be altered for directing to the none www version of the url.</p>
<p>The .htaccess file is simply an ASCII file created with any normal text editor. You need to save the file as &#8216;.htaccess&#8217; (no filename, .htaccess is the extension!). Open you newly created .htaccess file in your favoured text editor and add the following lines of code, replacing domain.com with your domain:</p>
<pre class="brush: xml;">
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]</pre>
<p>Upload the .htaccess file to the root folder of your website and you&#8217;re done. All your traffic will be permanently redirected from a non-www version of your website to a www version of your website. To do the opposite (direct all traffic to the non www version use the below code in the .htaccess file):</p>
<pre class="brush: xml;">RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com
RewriteRule (.*) http://domain.com/$1 [R=301,L]
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/20/301-redirects-for-seo-using-htaccess/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Resources</title>
		<link>http://www.web-design-talk.co.uk/resources/</link>
		<comments>http://www.web-design-talk.co.uk/resources/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 15:55:45 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Jquery Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[useability]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?page_id=5</guid>
		<description><![CDATA[Content Soon&#8230;.]]></description>
			<content:encoded><![CDATA[<p>Content Soon&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/resources/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Who?</title>
		<link>http://www.web-design-talk.co.uk/about/</link>
		<comments>http://www.web-design-talk.co.uk/about/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 21:02:01 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Jquery Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[useability]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?page_id=2</guid>
		<description><![CDATA[http://www.web-design-talk.co.uk I am a full-time developer for an internet company located in Staffordshire (Midlands) of the United Kingdom. I have been designing and coding websites for over 2 years using PHP, ASP, JQuery, XHTML, CSS and JavaScript. I have been lucky to work on a wide variety of projects from small intranet sites, personal websites [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.web-design-talk.co.uk/">http://www.web-design-talk.co.uk</a></p>
<p>I am a full-time developer for an internet company located in Staffordshire (Midlands) of the United Kingdom. I have been designing and coding websites for over 2 years using PHP, ASP, <a title="JQuery.com" href="http://www.jquery.com">JQuery</a>, XHTML, CSS and JavaScript. I have been lucky to work on a wide variety of projects from small intranet sites, personal websites and full e-commerce storefronts. I am currently available on a limited basis for interesting freelance work. I also offer the following services (although you can contact me via email to discuss web services not mentioned here):</p>
<ul>
<li>SEO / Website Marketing / Offsite SEO</li>
<li>Bespoke Website Design/Development</li>
<li>Website Updates</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/about/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
