<?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>Tinsology &#187; PHP</title>
	<atom:link href="http://tinsology.net/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://tinsology.net</link>
	<description>Read Me</description>
	<lastBuildDate>Wed, 10 Mar 2010 22:50:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Apparatus Update Preview</title>
		<link>http://tinsology.net/2010/03/apparatus-update-preview/</link>
		<comments>http://tinsology.net/2010/03/apparatus-update-preview/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 22:50:49 +0000</pubDate>
		<dc:creator>Tinsley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apparatus]]></category>

		<guid isPermaLink="false">http://tinsology.net/?p=1054</guid>
		<description><![CDATA[I've been making some progress on the next version of <a href="http://tinsology.net/scripts/apparatus/">Apparatus</a>. Along with some bug fixes there are a few new features. One new thing is the option to attach a database to allow for more advanced functionality. For now this includes something I'm calling examples generation, which allows you to store your code and output and allow others to view it. This is done without giving them access to the Apparatus interface. Apparatus can still operate in lite mode (without a database), but some features will not be available. 
 
Also in the works is a new template <a href="http://tinsology.net/2010/03/apparatus-update-preview/">Read More</a>

Related posts:<ol><li><a href='http://tinsology.net/2010/01/apparatus-also-happy-new-year/' rel='bookmark' title='Permanent Link: Apparatus (also Happy New Year!)'>Apparatus (also Happy New Year!)</a></li>
</ol>]]></description>
		<wfw:commentRss>http://tinsology.net/2010/03/apparatus-update-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Confirmation Emails</title>
		<link>http://tinsology.net/2010/02/php-confirmation-emails/</link>
		<comments>http://tinsology.net/2010/02/php-confirmation-emails/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 18:56:17 +0000</pubDate>
		<dc:creator>Tinsley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[confirmation]]></category>
		<category><![CDATA[email]]></category>

		<guid isPermaLink="false">http://tinsology.net/?p=1026</guid>
		<description><![CDATA[If you are implementing your own user management system you may want to ensure that emails associated with users' accounts are valid. The most straightforward way of doing this is to send an email to this account and verify that the user received it. Obviously we don't want to do this manually so the solution is to write a script that automates the process. 
 
High Level Concept 
What we will need to do is: 
<ol> 
<li>Generate a confirmation code for our users are registration time</li> 
<li>Store that code and track which users are not yet confirmed</li> 
<li>Send an email</li></ol> <a href="http://tinsology.net/2010/02/php-confirmation-emails/">Read More</a>

Related posts:<ol><li><a href='http://tinsology.net/2009/01/intercepting-email-with-php/' rel='bookmark' title='Permanent Link: Intercepting Email with PHP'>Intercepting Email with PHP</a></li>
<li><a href='http://tinsology.net/2009/07/metadata/' rel='bookmark' title='Permanent Link: Metadata'>Metadata</a></li>
<li><a href='http://tinsology.net/2009/04/validating-user-input/' rel='bookmark' title='Permanent Link: Validating User Input'>Validating User Input</a></li>
</ol>]]></description>
		<wfw:commentRss>http://tinsology.net/2010/02/php-confirmation-emails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apparatus (also Happy New Year!)</title>
		<link>http://tinsology.net/2010/01/apparatus-also-happy-new-year/</link>
		<comments>http://tinsology.net/2010/01/apparatus-also-happy-new-year/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 08:00:05 +0000</pubDate>
		<dc:creator>Tinsley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Apparatus]]></category>

		<guid isPermaLink="false">http://tinsology.net/?p=1004</guid>
		<description><![CDATA[For a while now I've been working on a web-based PHP interpreter; an interface I can use to quickly test or develop code from my browser. Ultimately this resulted in <a href="http://tinsology.net/scripts/apparatus/">Apparatus</a>, an in-browser PHP read-evaulate-print loop. Give it a try: <a href="http://tinsology.net/scripts/apparatus/">http://tinsology.net/scripts/apparatus/</a>. 
 
Note that this is currently a beta version. Any help with identifying bugs will be greatly appreciated. 
 
P.S. Happy New Year! <a href="http://tinsology.net/2010/01/apparatus-also-happy-new-year/">Read More</a>

Related posts:<ol><li><a href='http://tinsology.net/2010/03/apparatus-update-preview/' rel='bookmark' title='Permanent Link: Apparatus Update Preview'>Apparatus Update Preview</a></li>
</ol>]]></description>
		<wfw:commentRss>http://tinsology.net/2010/01/apparatus-also-happy-new-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Iterators</title>
		<link>http://tinsology.net/2009/12/php-iterators/</link>
		<comments>http://tinsology.net/2009/12/php-iterators/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 22:09:51 +0000</pubDate>
		<dc:creator>Tinsley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[iterator]]></category>

		<guid isPermaLink="false">http://tinsology.net/?p=885</guid>
		<description><![CDATA[If you've spent any significant amount of time coding in PHP you're most likely familiar with PHP's foreach loop syntax. In simple terms, a foreach loop is an easy way to iterate over the elements of an array. Chances are if you're reading this you already know that. What you may not know, however, is that it is possible to iterate objects with a foreach loop. Assuming you have some collection class (an object that stores some number of elements in an organized manner) you can iterate over its elements just like you can the elements of an array <a href="http://tinsology.net/2009/12/php-iterators/">Read More</a>

Related posts:<ol><li><a href='http://tinsology.net/2009/05/strings-are-arrays/' rel='bookmark' title='Permanent Link: Strings Are Arrays'>Strings Are Arrays</a></li>
</ol>]]></description>
		<wfw:commentRss>http://tinsology.net/2009/12/php-iterators/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Supplement</title>
		<link>http://tinsology.net/2009/12/a-supplement/</link>
		<comments>http://tinsology.net/2009/12/a-supplement/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 07:20:16 +0000</pubDate>
		<dc:creator>Tinsley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://tinsology.net/?p=880</guid>
		<description><![CDATA[I've just added a section about session management to <a href="http://tinsology.net/2009/06/creating-a-secure-login-system-the-right-way/">Creating a Secure Login System the Right Way</a>. 
 
Check it out <a href="http://tinsology.net/2009/12/a-supplement/">Read More</a>

Related posts:<ol><li><a href='http://tinsology.net/2009/06/creating-a-secure-login-system-the-right-way/' rel='bookmark' title='Permanent Link: Creating a Secure Login System the Right Way'>Creating a Secure Login System the Right Way</a></li>
</ol>]]></description>
		<wfw:commentRss>http://tinsology.net/2009/12/a-supplement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy PHP Search with Opera</title>
		<link>http://tinsology.net/2009/10/easy-php-search-with-opera/</link>
		<comments>http://tinsology.net/2009/10/easy-php-search-with-opera/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 20:55:15 +0000</pubDate>
		<dc:creator>Tinsley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://tinsology.net/?p=851</guid>
		<description><![CDATA[If you use Opera you're probably aware that it supports shortcuts in the address bar that allow you to run a search on various search engines and websites. For example, if I type g tinsology in the address bar, you'll get the Google search results for the keyword tinsology. You can do similar things with yahoo, amazon, ask and other sites that come preconfigured in Opera. 
 
Personally, I find myself frequently using this shortcut to Google PHP documentation. For example if I'm looking up documentation for the implode function, I'll type g PHP implode. More often than not the <a href="http://tinsology.net/2009/10/easy-php-search-with-opera/">Read More</a>

Related posts:<ol><li><a href='http://tinsology.net/2009/05/opera-a-developers-browser/' rel='bookmark' title='Permanent Link: Opera: A developer&#8217;s browser'>Opera: A developer&#8217;s browser</a></li>
<li><a href='http://tinsology.net/2009/05/opera-tab-override-user-js/' rel='bookmark' title='Permanent Link: Opera Tab Override User JS'>Opera Tab Override User JS</a></li>
<li><a href='http://tinsology.net/2009/05/internet-explorer-no-longer-essential/' rel='bookmark' title='Permanent Link: Internet Explorer No Longer Essential'>Internet Explorer No Longer Essential</a></li>
</ol>]]></description>
		<wfw:commentRss>http://tinsology.net/2009/10/easy-php-search-with-opera/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Unlimited PHP Function Parameters</title>
		<link>http://tinsology.net/2009/07/unlimited-php-function-parameters/</link>
		<comments>http://tinsology.net/2009/07/unlimited-php-function-parameters/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 07:03:11 +0000</pubDate>
		<dc:creator>Tinsley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[parameter]]></category>

		<guid isPermaLink="false">http://tinsology.net/?p=823</guid>
		<description><![CDATA[If you've ever used PHP's library functions you've most likely noticed that several function such as array() can take an indeterminate number of arguments. Normally when defining a function you specify each argument in the function declaration. Obviously it would be impossible to define an infinite number of arguments in such a way. PHP does, however, allow you to accomplish this through the function func_get_args(). <a href="http://tinsology.net/2009/07/unlimited-php-function-parameters/">Read More</a>

Related posts:<ol><li><a href='http://tinsology.net/2009/12/php-iterators/' rel='bookmark' title='Permanent Link: PHP Iterators'>PHP Iterators</a></li>
<li><a href='http://tinsology.net/2009/05/strings-and-output-in-php/' rel='bookmark' title='Permanent Link: Strings and Output in PHP'>Strings and Output in PHP</a></li>
<li><a href='http://tinsology.net/2009/01/dont-fear-the-recursionaper/' rel='bookmark' title='Permanent Link: Don&#8217;t Fear the Re(cursion)aper'>Don&#8217;t Fear the Re(cursion)aper</a></li>
</ol>]]></description>
		<wfw:commentRss>http://tinsology.net/2009/07/unlimited-php-function-parameters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Lorem Ipsum Generator</title>
		<link>http://tinsology.net/2009/07/php-lorem-ipsum-generator/</link>
		<comments>http://tinsology.net/2009/07/php-lorem-ipsum-generator/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 04:22:32 +0000</pubDate>
		<dc:creator>Tinsley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[lorem ipsum]]></category>

		<guid isPermaLink="false">http://tinsology.net/?p=810</guid>
		<description><![CDATA[The other day I needed to populate a database with some placeholder content. Doing this manually was out of the question so I decided I'd find a text generator, specifically a Lorem Ipsum generator. For anyone unaware, Lorem Ipsum is non-sense, placeholder text used in publishing and design. It allows the developer to see their work completely populated with text, without having to actually create the text. Obviously, for this purpose, any kind of text generator would work to some extent, but traditionally Lorem Ipsum is used. <a href="http://tinsology.net/2009/07/php-lorem-ipsum-generator/">Read More</a>


No related posts.]]></description>
		<wfw:commentRss>http://tinsology.net/2009/07/php-lorem-ipsum-generator/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP: Complex Variables in Strings</title>
		<link>http://tinsology.net/2009/06/php-complex-variables-in-strings/</link>
		<comments>http://tinsology.net/2009/06/php-complex-variables-in-strings/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 18:20:52 +0000</pubDate>
		<dc:creator>Tinsley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Strings]]></category>

		<guid isPermaLink="false">http://tinsology.net/?p=735</guid>
		<description><![CDATA[If you are at all familiar with PHP you are probably aware that you can put variables inside double quotes. For example: <a href="http://tinsology.net/2009/06/php-complex-variables-in-strings/">Read More</a>

Related posts:<ol><li><a href='http://tinsology.net/2009/05/strings-and-output-in-php/' rel='bookmark' title='Permanent Link: Strings and Output in PHP'>Strings and Output in PHP</a></li>
<li><a href='http://tinsology.net/2009/05/strings-are-arrays/' rel='bookmark' title='Permanent Link: Strings Are Arrays'>Strings Are Arrays</a></li>
</ol>]]></description>
		<wfw:commentRss>http://tinsology.net/2009/06/php-complex-variables-in-strings/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Strings and Output in PHP</title>
		<link>http://tinsology.net/2009/05/strings-and-output-in-php/</link>
		<comments>http://tinsology.net/2009/05/strings-and-output-in-php/#comments</comments>
		<pubDate>Fri, 22 May 2009 19:46:58 +0000</pubDate>
		<dc:creator>Tinsley</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[output]]></category>
		<category><![CDATA[Strings]]></category>

		<guid isPermaLink="false">http://tinsology.net/?p=665</guid>
		<description><![CDATA[I've seen a lot of questions and false assumptions regarding strings and output. Here is a short review of some common questions: 
 
print vs. echo 
 
I often see people suggesting that others should use echo as opposed to print for performance reasons. While it is true that echo is faster than print, the difference is insignificant. The reason echo is faster is because print behaves like a function (even though it's a language construct) and sets a return value. This being the case, there are some important differences between the two, and there are a few cases where <a href="http://tinsology.net/2009/05/strings-and-output-in-php/">Read More</a>

Related posts:<ol><li><a href='http://tinsology.net/2009/05/strings-are-arrays/' rel='bookmark' title='Permanent Link: Strings Are Arrays'>Strings Are Arrays</a></li>
<li><a href='http://tinsology.net/2009/06/php-complex-variables-in-strings/' rel='bookmark' title='Permanent Link: PHP: Complex Variables in Strings'>PHP: Complex Variables in Strings</a></li>
<li><a href='http://tinsology.net/2009/05/over-optimizing/' rel='bookmark' title='Permanent Link: Over Optimizing'>Over Optimizing</a></li>
</ol>]]></description>
		<wfw:commentRss>http://tinsology.net/2009/05/strings-and-output-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
