<?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>WLScripting.com &#187; Daniel</title>
	<atom:link href="http://www.wlscripting.com/tutorial/author/daniel/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wlscripting.com</link>
	<description>PHP coding tutorials</description>
	<lastBuildDate>Mon, 19 Dec 2011 13:17:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9-beta-1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Calculate time difference between dates</title>
		<link>http://www.wlscripting.com/tutorial/72</link>
		<comments>http://www.wlscripting.com/tutorial/72#comments</comments>
		<pubDate>Wed, 20 Jan 2010 14:58:39 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Time/Date]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/?p=72</guid>
		<description><![CDATA[Recently I needed some code to calculate a users age based on their birthday. There are many different functions that are already created out there that I could have used, but instead I wrote this piece of code. It uses PHP 5 DateTime class to return an array of information pertaining to how old a [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I needed some code to calculate a users age based on their birthday. There are many different functions that are already created out there that I could have used, but instead I wrote this piece of code. It uses PHP 5 DateTime class to return an array of information pertaining to how old a person is. By default if you leave the second parameter off it will calculate the difference from the start date to the current day. If you are trying to calculate how old somebody was when they had passed away or how old they were on a certain date you can pass the second parameter. There are several different checks in this code snippet to make sure you are using a valid date for the start and end date.</p>
<p>This function requires dates to be passed in standard: YYYY-MM-DD format<br />
<strong>Code:</strong></p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">function_exists</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">calculate_age</span><span class="hl-quotes">'</span><span class="hl-brackets">)) {
	</span><span class="hl-comment">// Checked this function against </span><span class="hl-url">http://www.timeanddate.com/date/duration.html</span><span class="hl-comment">
	</span><span class="hl-reserved">function </span><span class="hl-identifier">calculate_age</span><span class="hl-brackets">(</span><span class="hl-var">$startdate</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">0000-00-00</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$enddate</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">0000-00-00</span><span class="hl-quotes">'</span><span class="hl-brackets">) {
		
		</span><span class="hl-comment">// Check to see if start date is valid</span><span class="hl-code">
		@</span><span class="hl-reserved">list</span><span class="hl-brackets">(</span><span class="hl-var">$year</span><span class="hl-code">, </span><span class="hl-var">$month</span><span class="hl-code">, </span><span class="hl-var">$day</span><span class="hl-brackets">)</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">-</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$startdate</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">@!</span><span class="hl-identifier">checkdate</span><span class="hl-brackets">(</span><span class="hl-var">$month</span><span class="hl-code">,</span><span class="hl-var">$day</span><span class="hl-code">,</span><span class="hl-var">$year</span><span class="hl-brackets">)) {
			</span><span class="hl-reserved">return false</span><span class="hl-code">;
		</span><span class="hl-brackets">}
		
		</span><span class="hl-comment">// Create a new datetime object to do our calculations with
		</span><span class="hl-var">$s</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">DateTime</span><span class="hl-brackets">(</span><span class="hl-var">$startdate</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-comment">// We have to have an end date so if it is empty or 0000-00-00 we will make it right now
		</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-var">$enddate</span><span class="hl-brackets">) </span><span class="hl-reserved">OR </span><span class="hl-var">$enddate</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">0000-00-00</span><span class="hl-quotes">'</span><span class="hl-brackets">) {
			</span><span class="hl-var">$enddate</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">now</span><span class="hl-quotes">'</span><span class="hl-code">;
		</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
			</span><span class="hl-comment">// Check to see if end date is valid</span><span class="hl-code">
			@</span><span class="hl-reserved">list</span><span class="hl-brackets">(</span><span class="hl-var">$year</span><span class="hl-code">, </span><span class="hl-var">$month</span><span class="hl-code">, </span><span class="hl-var">$day</span><span class="hl-brackets">)</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">-</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$enddate</span><span class="hl-brackets">)</span><span class="hl-code">;
			</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">@!</span><span class="hl-identifier">checkdate</span><span class="hl-brackets">(</span><span class="hl-var">$month</span><span class="hl-code">,</span><span class="hl-var">$day</span><span class="hl-code">,</span><span class="hl-var">$year</span><span class="hl-brackets">)) {
				</span><span class="hl-reserved">return false</span><span class="hl-code">;
			</span><span class="hl-brackets">}
		}
		</span><span class="hl-comment">// Create a new datetime object to compare as an end date
		</span><span class="hl-var">$e</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">DateTime</span><span class="hl-brackets">(</span><span class="hl-var">$enddate</span><span class="hl-brackets">)</span><span class="hl-code">;
		
		</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Ymd</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> &gt; </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Ymd</span><span class="hl-quotes">'</span><span class="hl-brackets">)) {
			</span><span class="hl-comment">// End date cannot be before start date
			</span><span class="hl-reserved">return false</span><span class="hl-code">;
		</span><span class="hl-brackets">}
		
		</span><span class="hl-comment">// Calculate our base numbers here
		</span><span class="hl-var">$years</span><span class="hl-code"> = </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Y</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Y</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-var">$months</span><span class="hl-code"> = </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">m</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">m</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-var">$days</span><span class="hl-code"> = </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">d</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">d</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;

		</span><span class="hl-comment">// We cannot have negative days
		// Calculate how many days are in the startdate month
		// subtract the startdate day and add 1
		// Then add back in the day of the enddate
		// Subtract 1 month
		</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$days</span><span class="hl-code"> &lt; </span><span class="hl-number">0</span><span class="hl-brackets">) {
			</span><span class="hl-var">$days</span><span class="hl-code"> = </span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">t</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-var">$s</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">d</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-code">;
			</span><span class="hl-var">$days</span><span class="hl-code"> += </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">d</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
			</span><span class="hl-var">$months</span><span class="hl-code">--;
		</span><span class="hl-brackets">}
		
		</span><span class="hl-comment">// We cannot have negative months
		// Subtract 1 year and add back 12 months to make months positive
		</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$months</span><span class="hl-code"> &lt; </span><span class="hl-number">0</span><span class="hl-brackets">) {
			</span><span class="hl-var">$years</span><span class="hl-code">--;
			</span><span class="hl-var">$months</span><span class="hl-code"> += </span><span class="hl-number">12</span><span class="hl-code">;
		</span><span class="hl-brackets">}

		</span><span class="hl-reserved">return array</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">years</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-var">$years</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">months</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-var">$months</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">days</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-var">$days</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-brackets">}
}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p><strong>Usage:</strong></p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-comment">// Current date is 2010-01-19
</span><span class="hl-var">$birthday</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">1986-09-23</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$age</span><span class="hl-code"> = </span><span class="hl-identifier">calculate_age</span><span class="hl-brackets">(</span><span class="hl-var">$birthday</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">var_dump</span><span class="hl-brackets">(</span><span class="hl-var">$age</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;hr /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$startdate</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">1985-09-06</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$enddate</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">1986-09-23</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$difference</span><span class="hl-code"> = </span><span class="hl-identifier">calculate_age</span><span class="hl-brackets">(</span><span class="hl-var">$startdate</span><span class="hl-code">, </span><span class="hl-var">$enddate</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">var_dump</span><span class="hl-brackets">(</span><span class="hl-var">$difference</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p><strong>Output:</strong></p>
<blockquote><p>array(3) { ["years"]=>  int(23) ["months"]=>  int(3) ["days"]=>  int(27) }<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
array(3) { ["years"]=>  int(1) ["months"]=>  int(0) ["days"]=>  int(17) }</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/72/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remove whitespace from string</title>
		<link>http://www.wlscripting.com/tutorial/67</link>
		<comments>http://www.wlscripting.com/tutorial/67#comments</comments>
		<pubDate>Wed, 28 Oct 2009 14:15:47 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/?p=67</guid>
		<description><![CDATA[Remove whitespace from the beginning, middle and end of a string.]]></description>
			<content:encoded><![CDATA[<p>I have been doing a lot of coding using the framework <a href="http://www.codeigniter.com/">CodeIgniter</a> lately so I have been creating many simple helper functions to perform different tasks. My most recent project involves creating PDF files with text from a database. The problem is that the text from the database is dirty, meaning that in a person&#8217;s name there could be multiple spaces between the person&#8217;s first and last name or even spaces at the end of their name. In dealing with legacy data that you cannot change but needs to be output correctly without those spaces you get creative. The below function should help solve this issue.</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">replace_whitespace</span><span class="hl-brackets">(</span><span class="hl-var">$Value</span><span class="hl-code"> = </span><span class="hl-quotes">''</span><span class="hl-brackets">)
{
	</span><span class="hl-comment">// Replace any whitespace with only a single space
	</span><span class="hl-reserved">return </span><span class="hl-identifier">preg_replace</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">/\s+/</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">' '</span><span class="hl-code">, </span><span class="hl-identifier">trim</span><span class="hl-brackets">(</span><span class="hl-var">$Value</span><span class="hl-brackets">))</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Usage:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;pre&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$Text</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">White  Lake  Scripting</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-var">$Text</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string"> - </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-var">$Text</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-var">$Text</span><span class="hl-code"> = </span><span class="hl-identifier">ReplaceWhitespace</span><span class="hl-brackets">(</span><span class="hl-var">$Text</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-var">$Text</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string"> - </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-var">$Text</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">&lt;/pre&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Output:</p>
<div class="hl-surround" ><div class="hl-main"><pre>White  Lake  Scripting - 22
White Lake Scripting - 20</pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/67/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Get date by position (ie. third Wednesday of January)</title>
		<link>http://www.wlscripting.com/tutorial/59</link>
		<comments>http://www.wlscripting.com/tutorial/59#comments</comments>
		<pubDate>Wed, 06 May 2009 18:26:59 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Time/Date]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/59</guid>
		<description><![CDATA[Allows you to convert: "third Wednesday of January" to the actual date value.]]></description>
			<content:encoded><![CDATA[<p>In a recent project I needed to come up with code to calculate something like the first, second, third day of whatever month. Unfortunately the strtotime() function does not let you enter &#8220;third Wednesday of January&#8221; to calculate the date. This is where the code below works great for such things.</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-var">$Position</span><span class="hl-code">, </span><span class="hl-var">$Weekday</span><span class="hl-code">, </span><span class="hl-var">$Month</span><span class="hl-code">, </span><span class="hl-var">$Year</span><span class="hl-brackets">) {
	</span><span class="hl-comment">// Sanatize some of the inputs
	</span><span class="hl-var">$Position</span><span class="hl-code"> = </span><span class="hl-identifier">strtolower</span><span class="hl-brackets">(</span><span class="hl-var">$Position</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-var">$Weekday</span><span class="hl-code"> = </span><span class="hl-identifier">strtolower</span><span class="hl-brackets">(</span><span class="hl-var">$Weekday</span><span class="hl-brackets">)</span><span class="hl-code">;
	
	</span><span class="hl-comment">// Go to next month so we can then go back 1 week at end of script for calculating last xxx of month
	</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$Position</span><span class="hl-code">==</span><span class="hl-quotes">'</span><span class="hl-string">last</span><span class="hl-quotes">'</span><span class="hl-brackets">) { </span><span class="hl-var">$Month</span><span class="hl-code"> += </span><span class="hl-number">1</span><span class="hl-code">; </span><span class="hl-brackets">}
        </span><span class="hl-comment">// We cannot have 13 months so set as January of the next year.
	// This was pointed out by Evan who made a comment on the posting of this script
	</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$Month</span><span class="hl-code"> &gt; </span><span class="hl-number">12</span><span class="hl-brackets">) {
		</span><span class="hl-var">$Month</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">;
		</span><span class="hl-var">$Year</span><span class="hl-code"> += </span><span class="hl-number">1</span><span class="hl-code">;
	</span><span class="hl-brackets">}
	</span><span class="hl-comment">// Create new date object for the first of the month
	</span><span class="hl-var">$D</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">DateTime</span><span class="hl-brackets">(</span><span class="hl-var">$Year</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">-</span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$Month</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">-1</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-var">$DOW</span><span class="hl-code"> = </span><span class="hl-var">$D</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">w</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// Get the current day of the week based on the 1st of the month
	</span><span class="hl-var">$keys</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">sunday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">0</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">monday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">1</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">tuesday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">2</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">wednesday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">3</span><span class="hl-code">,
				  </span><span class="hl-quotes">'</span><span class="hl-string">thursday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">4</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">friday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">5</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">saturday</span><span class="hl-quotes">'</span><span class="hl-code">=&gt;</span><span class="hl-number">6</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-comment">// Calculate what the offset is based on the current day of the week
	// vs the day in the week you want to get
	</span><span class="hl-var">$offset</span><span class="hl-code"> = </span><span class="hl-var">$keys</span><span class="hl-brackets">[</span><span class="hl-var">$Weekday</span><span class="hl-brackets">]</span><span class="hl-code"> - </span><span class="hl-var">$DOW</span><span class="hl-code">;
	</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$offset</span><span class="hl-code">&lt;</span><span class="hl-number">0</span><span class="hl-brackets">) { </span><span class="hl-var">$offset</span><span class="hl-code"> += </span><span class="hl-number">7</span><span class="hl-code">; </span><span class="hl-brackets">}

	</span><span class="hl-reserved">switch </span><span class="hl-brackets">(</span><span class="hl-var">$Position</span><span class="hl-brackets">) {
		</span><span class="hl-comment">// Don't need to add anything to first
		</span><span class="hl-reserved">case </span><span class="hl-quotes">'</span><span class="hl-string">second</span><span class="hl-quotes">'</span><span class="hl-code">:
			</span><span class="hl-var">$offset</span><span class="hl-code"> += </span><span class="hl-number">7</span><span class="hl-code">; </span><span class="hl-comment">// Add 1 week
			</span><span class="hl-reserved">break</span><span class="hl-code">;
		</span><span class="hl-reserved">case </span><span class="hl-quotes">'</span><span class="hl-string">third</span><span class="hl-quotes">'</span><span class="hl-code">:
			</span><span class="hl-var">$offset</span><span class="hl-code"> += </span><span class="hl-number">14</span><span class="hl-code">; </span><span class="hl-comment">// Add 2 weeks
			</span><span class="hl-reserved">break</span><span class="hl-code">;
		</span><span class="hl-reserved">case </span><span class="hl-quotes">'</span><span class="hl-string">fourth</span><span class="hl-quotes">'</span><span class="hl-code">:
			</span><span class="hl-var">$offset</span><span class="hl-code"> += </span><span class="hl-number">21</span><span class="hl-code">; </span><span class="hl-comment">// Add 3 weeks
			</span><span class="hl-reserved">break</span><span class="hl-code">;
		</span><span class="hl-reserved">case </span><span class="hl-quotes">'</span><span class="hl-string">last</span><span class="hl-quotes">'</span><span class="hl-code">:
			</span><span class="hl-var">$offset</span><span class="hl-code"> -= </span><span class="hl-number">7</span><span class="hl-code">; </span><span class="hl-comment">// Go back 7 days
			</span><span class="hl-reserved">break</span><span class="hl-code">;
	</span><span class="hl-brackets">}
	</span><span class="hl-comment">// Add the current offset of days to the date object
	</span><span class="hl-var">$D</span><span class="hl-code">-&gt;</span><span class="hl-identifier">modify</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">+</span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$offset</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string"> days</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-reserved">return </span><span class="hl-var">$D</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Y-m-d</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
	
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Usage:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-comment">// This will output 2009-01-05
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">First Monday of January 2009: </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">first</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">monday</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2009</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">// This will output 2009-01-13
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">Second Tuesday of January 2009: </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">second</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">tuesday</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2009</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">// This will output 2009-01-21
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">Third Wednesday of January 2009: </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">third</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">wednesday</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2009</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">// This will output 2009-01-22
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">Fourth Thursday of January 2009: </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">fourth</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">thursday</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2009</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-comment">// This will output 2009-01-30
</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">Last Friday of January 2009: </span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-identifier">GetDayByPosition</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">last</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">friday</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2009</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>This can be used in a recurring calendar events page to allow similar event creation like the recurring events in Microsoft Outlook or any other popular calender applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/59/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Sanitize copy/paste text from word</title>
		<link>http://www.wlscripting.com/tutorial/58</link>
		<comments>http://www.wlscripting.com/tutorial/58#comments</comments>
		<pubDate>Wed, 25 Mar 2009 20:54:28 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Basics]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/58</guid>
		<description><![CDATA[Sanitize content copied and pasted from Microsoft Word for insertion into database.]]></description>
			<content:encoded><![CDATA[<p>In a recent project I have had to deal with text copied from a Microsoft Word document and pasted into a textarea. Word automatically changes a few certain characters to what it thinks it should be, such as the ellipsis and quotes. When dealing with inserting that text into a database I was getting errors. To solve my problems I created a sanitize function to replace these certain characters with acceptable characters.</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-comment">// Used to sanitize Microsoft Word's Special Characters
// Good reference </span><span class="hl-url">http://www.lookuptables.com</span><span class="hl-comment">
</span><span class="hl-reserved">function </span><span class="hl-identifier">SanitizeFromWord</span><span class="hl-brackets">(</span><span class="hl-var">$Text</span><span class="hl-code"> = </span><span class="hl-quotes">''</span><span class="hl-brackets">) {

	</span><span class="hl-var">$chars</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(
		</span><span class="hl-number">130</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">,</span><span class="hl-quotes">'</span><span class="hl-code">,     </span><span class="hl-comment">// baseline single quote
		</span><span class="hl-number">131</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">NLG</span><span class="hl-quotes">'</span><span class="hl-code">,   </span><span class="hl-comment">// florin
		</span><span class="hl-number">132</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">&quot;</span><span class="hl-quotes">'</span><span class="hl-code">, 	  </span><span class="hl-comment">// baseline double quote
		</span><span class="hl-number">133</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">...</span><span class="hl-quotes">'</span><span class="hl-code">,   </span><span class="hl-comment">// ellipsis
		</span><span class="hl-number">134</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">**</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// dagger (a second footnote)
		</span><span class="hl-number">135</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">***</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// double dagger (a third footnote)
		</span><span class="hl-number">136</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">^</span><span class="hl-quotes">'</span><span class="hl-code">, 	  </span><span class="hl-comment">// circumflex accent
		</span><span class="hl-number">137</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">o/oo</span><span class="hl-quotes">'</span><span class="hl-code">,  </span><span class="hl-comment">// permile
		</span><span class="hl-number">138</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">Sh</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// S Hacek
		</span><span class="hl-number">139</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">&lt;</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// left single guillemet
		</span><span class="hl-number">140</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">OE</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// OE ligature
		</span><span class="hl-number">145</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-special">\'</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// left single quote
		</span><span class="hl-number">146</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-special">\'</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// right single quote
		</span><span class="hl-number">147</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">&quot;</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// left double quote
		</span><span class="hl-number">148</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">&quot;</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// right double quote
		</span><span class="hl-number">149</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">-</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// bullet
		</span><span class="hl-number">150</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">-</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// endash
		</span><span class="hl-number">151</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">--</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// emdash
		</span><span class="hl-number">152</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">~</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// tilde accent
		</span><span class="hl-number">153</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">(TM)</span><span class="hl-quotes">'</span><span class="hl-code">,  </span><span class="hl-comment">// trademark ligature
		</span><span class="hl-number">154</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">sh</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// s Hacek
		</span><span class="hl-number">155</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">&gt;</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// right single guillemet
		</span><span class="hl-number">156</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">oe</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// oe ligature
		</span><span class="hl-number">159</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">Y</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// Y Dieresis
		</span><span class="hl-number">169</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">(C)</span><span class="hl-quotes">'</span><span class="hl-code">,	  </span><span class="hl-comment">// Copyright
		</span><span class="hl-number">174</span><span class="hl-code">=&gt;</span><span class="hl-quotes">'</span><span class="hl-string">(R)</span><span class="hl-quotes">'	  </span><span class="hl-comment">// Registered Trademark
	</span><span class="hl-brackets">)</span><span class="hl-code">;
	
	</span><span class="hl-reserved">foreach </span><span class="hl-brackets">(</span><span class="hl-var">$chars </span><span class="hl-reserved">as </span><span class="hl-var">$chr</span><span class="hl-code">=&gt;</span><span class="hl-var">$replace</span><span class="hl-brackets">) {
		</span><span class="hl-var">$Text</span><span class="hl-code"> = </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-identifier">chr</span><span class="hl-brackets">(</span><span class="hl-var">$chr</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-var">$replace</span><span class="hl-code">, </span><span class="hl-var">$Text</span><span class="hl-brackets">)</span><span class="hl-code">;
	</span><span class="hl-brackets">}
	</span><span class="hl-reserved">return </span><span class="hl-var">$Text</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/58/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Calculate a percentage</title>
		<link>http://www.wlscripting.com/tutorial/57</link>
		<comments>http://www.wlscripting.com/tutorial/57#comments</comments>
		<pubDate>Tue, 24 Mar 2009 16:59:25 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Math]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/57</guid>
		<description><![CDATA[Function for simplifying percentage calculations given a numerator and denominator]]></description>
			<content:encoded><![CDATA[<p>Below is a quick function that simplifies the process of calculating a percentage in PHP.</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">percent</span><span class="hl-brackets">(</span><span class="hl-var">$Amount</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-var">$Total</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-var">$Decimal</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-brackets">) {
	</span><span class="hl-comment">// Make sure our numbers are actually numbers
	</span><span class="hl-var">$Amount</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">INT</span><span class="hl-brackets">) </span><span class="hl-var">$Amount</span><span class="hl-code">;
	</span><span class="hl-var">$Total</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">INT</span><span class="hl-brackets">) </span><span class="hl-var">$Total</span><span class="hl-code">;
	</span><span class="hl-var">$Decimal</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">INT</span><span class="hl-brackets">) </span><span class="hl-var">$Decimal</span><span class="hl-code">;
	</span><span class="hl-comment">// Cannot divide by zero so check if Total = 0
	</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$Total</span><span class="hl-code"> === </span><span class="hl-number">0</span><span class="hl-brackets">) {
		</span><span class="hl-reserved">return </span><span class="hl-number">0</span><span class="hl-code">;
	</span><span class="hl-brackets">}
	</span><span class="hl-var">$p</span><span class="hl-code"> = </span><span class="hl-var">$Amount</span><span class="hl-code"> / </span><span class="hl-var">$Total</span><span class="hl-code">;
	</span><span class="hl-comment">// Multiply by 100 to move decimal point to correct location
	</span><span class="hl-var">$p</span><span class="hl-code"> *= </span><span class="hl-number">100</span><span class="hl-code">;
	</span><span class="hl-comment">// Return the percentage with specified decimal places
	</span><span class="hl-reserved">return </span><span class="hl-identifier">number_format</span><span class="hl-brackets">(</span><span class="hl-var">$p</span><span class="hl-code">, </span><span class="hl-var">$Decimal</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Then to use this code you can do:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-comment">// prints out 10% on the screen
</span><span class="hl-reserved">echo </span><span class="hl-identifier">percent</span><span class="hl-brackets">(</span><span class="hl-number">10</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-brackets">)</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">%</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/57/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Add suffix to a number</title>
		<link>http://www.wlscripting.com/tutorial/56</link>
		<comments>http://www.wlscripting.com/tutorial/56#comments</comments>
		<pubDate>Tue, 24 Mar 2009 16:03:01 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Math]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/56</guid>
		<description><![CDATA[Add st, nd, rd and th suffix to numbers dynamically]]></description>
			<content:encoded><![CDATA[<p>Have you ever had to dynamically add the suffix to a number? (ie. st, nd, rd, th)</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">number_suffix</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-brackets">) {
    </span><span class="hl-reserved">switch</span><span class="hl-brackets">( </span><span class="hl-identifier">floor</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code">/</span><span class="hl-number">10</span><span class="hl-brackets">)</span><span class="hl-code"> % </span><span class="hl-number">10 </span><span class="hl-brackets">) {
        </span><span class="hl-reserved">default</span><span class="hl-code">:
	    </span><span class="hl-reserved">switch</span><span class="hl-brackets">( </span><span class="hl-var">$i</span><span class="hl-code"> % </span><span class="hl-number">10 </span><span class="hl-brackets">) {
                </span><span class="hl-reserved">case </span><span class="hl-number">1</span><span class="hl-code">: </span><span class="hl-reserved">return </span><span class="hl-quotes">'</span><span class="hl-string">st</span><span class="hl-quotes">'</span><span class="hl-code">;
                </span><span class="hl-reserved">case </span><span class="hl-number">2</span><span class="hl-code">: </span><span class="hl-reserved">return </span><span class="hl-quotes">'</span><span class="hl-string">nd</span><span class="hl-quotes">'</span><span class="hl-code">;
                </span><span class="hl-reserved">case </span><span class="hl-number">3</span><span class="hl-code">: </span><span class="hl-reserved">return </span><span class="hl-quotes">'</span><span class="hl-string">rd</span><span class="hl-quotes">'</span><span class="hl-code">;  
            </span><span class="hl-brackets">}
        </span><span class="hl-reserved">case </span><span class="hl-number">1</span><span class="hl-code">:
    </span><span class="hl-brackets">}
    </span><span class="hl-reserved">return </span><span class="hl-quotes">'</span><span class="hl-string">th</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Then to use the code you would do like:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$number</span><span class="hl-code"> = </span><span class="hl-number">10</span><span class="hl-code">;
</span><span class="hl-comment">// This will display 10th
</span><span class="hl-reserved">echo </span><span class="hl-var">$number</span><span class="hl-code">,</span><span class="hl-identifier">number_suffix</span><span class="hl-brackets">(</span><span class="hl-var">$number</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/56/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zero fill a number</title>
		<link>http://www.wlscripting.com/tutorial/55</link>
		<comments>http://www.wlscripting.com/tutorial/55#comments</comments>
		<pubDate>Mon, 16 Mar 2009 14:42:46 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Math]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/55</guid>
		<description><![CDATA[Add zeros to the beginning of a number to make output number a certain length.]]></description>
			<content:encoded><![CDATA[<blockquote style="border: 2px solid #FF0000; text-align: center"><p>An updated posting on this subject can be found at:<br /><a href="http://www.danielkassner.com/2010/05/19/working-with-zero-filled-numbers-in-php">Working with zero filled numbers in PHP</a></p></blockquote>
<p>Have you ever needed to make sure your number is a certain length for output? Say you have the number 5 but need to make sure it is 3 digits and out put like: 005. How would you go about this? One way to do this is the following:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-reserved">function </span><span class="hl-identifier">zerofill </span><span class="hl-brackets">(</span><span class="hl-var">$num</span><span class="hl-code">,</span><span class="hl-var">$zerofill</span><span class="hl-brackets">) {
    </span><span class="hl-comment">// Get the current string length of the original number
    // Loop through that number until it has reached the count in $zerofill
    </span><span class="hl-reserved">while </span><span class="hl-brackets">(</span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-var">$num</span><span class="hl-brackets">)</span><span class="hl-code">&lt;</span><span class="hl-var">$zerofill</span><span class="hl-brackets">) {
        </span><span class="hl-var">$num</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">0</span><span class="hl-quotes">&quot;</span><span class="hl-code">.</span><span class="hl-var">$num</span><span class="hl-code">;
    </span><span class="hl-brackets">}
    </span><span class="hl-reserved">return </span><span class="hl-var">$num</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>The usage of this code would be:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-comment">// Output will be 005
</span><span class="hl-reserved">echo </span><span class="hl-identifier">zerofill</span><span class="hl-brackets">(</span><span class="hl-number">5</span><span class="hl-code">, </span><span class="hl-number">3</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/55/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Notepad++ Function List plugin tip2</title>
		<link>http://www.wlscripting.com/tutorial/54</link>
		<comments>http://www.wlscripting.com/tutorial/54#comments</comments>
		<pubDate>Tue, 23 Dec 2008 00:39:55 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Editors]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/54</guid>
		<description><![CDATA[Adding enhanced functionality to Notepad++ with the Function List plugin.]]></description>
			<content:encoded><![CDATA[<blockquote style="border: 2px solid #FF0000; text-align: center"><p>An updated / easier to setup posting on this subject can be found at:<br /><a href="http://www.danielkassner.com/2010/01/22/using-notepads-function-list-plugin-for-php-development">Using Notepad++’s Function List plugin for PHP development</a></p></blockquote>
<p>Using the Notepad++ Function List plugin you can filter out all of the required and included files in your current PHP file. To do so you will need a few things:</p>
<ul>
<li><a href="http://notepad-plus.sourceforge.net">Notepad++ (NPP)</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=189927">Function List plugin</a></li>
</ul>
<p>Once you have installed the Function List plugin as the instructions say, open up Notepad++ and follow the instructions below.</p>
<ol>
<li>Navigate in the File Menu to Plugins > Function List > Language Parsing Rules</li>
<li>Select PHP from the left hand column</li>
<li>Under the Group section click Add (You will now see newGroup listed below the Add / Delete buttons)</li>
<li>Click on newGroup and change the Group Properties Name to Include</li>
<li>Now under the Group Rules section make these changes (without the quotes):
<ul>
<li>Function Begin: &#8220;include[\s\w]*\(['"]&#8220;</li>
<li>Function List Name: &#8220;[\w\s\d\\/_.]*&#8221;</li>
</ul>
</li>
</ol>
<p>If you have a PHP file open that has functions and/or classes you can click the Try! button at the bottom of the window and you will see your included file paths show up in the Function List. Repeat this process to create a rule for required files as well. Once completed just click OK and you are done! Enjoy listing your included and required file paths in Notepad++.</p>
<p>**This will filter out the following in your Function List pane:</p>
<ul>
<li>include(&#8216;file_path_here.php&#8217;);</li>
<li>include (&#8216;file_path_here.php&#8217;);</li>
<li>include_once(&#8216;file_path_here.php&#8217;);</li>
<li>include_once (&#8216;file_path_here.php&#8217;);</li>
<li>require(&#8216;file_path_here.php&#8217;);</li>
<li>require (&#8216;file_path_here.php&#8217;);</li>
<li>require_once(&#8216;file_path_here.php&#8217;);</li>
<li>require_once (&#8216;file_path_here.php&#8217;);</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/54/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Notepad++ Function List plugin tip</title>
		<link>http://www.wlscripting.com/tutorial/53</link>
		<comments>http://www.wlscripting.com/tutorial/53#comments</comments>
		<pubDate>Mon, 22 Dec 2008 23:01:14 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Editors]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/53</guid>
		<description><![CDATA[Adding enhanced functionality to Notepad++ with the Function List plugin.]]></description>
			<content:encoded><![CDATA[<blockquote style="border: 2px solid #FF0000; text-align: center"><p>An updated / easier to setup posting on this subject can be found at:<br /><a href="http://www.danielkassner.com/2010/01/22/using-notepads-function-list-plugin-for-php-development">Using Notepad++’s Function List plugin for PHP development</a></p></blockquote>
<p>Using the Notepad++ Function List plugin you can filter out all of your classes and its member functions as well as functions not in any class. To do so you will need a few things:</p>
<ul>
<li><a href="http://notepad-plus.sourceforge.net">Notepad++ (NPP)</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=189927">Function List plugin</a></li>
</ul>
<p>Once you have installed the Function List plugin as the instructions say, open up Notepad++ and follow the instructions below.</p>
<ol>
<li>Navigate in the File Menu to Plugins > Function List > Language Parsing Rules</li>
<li>Select PHP from the left hand column</li>
<li>Under the Group section click Add (You will now see newGroup listed below the Add / Delete buttons)</li>
<li>Click on newGroup and change the Group Properties Name to Class</li>
<li>Now under the Group Rules section make these changes (without the quotes):
<ul>
<li>Function Begin: &#8220;class &#8221; <-- Notice the space after class</li>
<li>Function List Name: &#8220;[\w]*&#8221;</li>
<li>Body Begin: &#8220;{&#8220;</li>
<li>Body End: &#8220;}&#8221;</li>
</ul>
</li>
<li>Now under the Keyword Forwarding of Group section make these changes (without the quotes):
<ul>
<li>Body Begin to Body End: &#8220;{&#8220;</li>
</ul>
</li>
<li>Now click Add under the group section again to add another rule</li>
<li>Click on newGroup and change the Group Properties Name to Functions</li>
<li>Change the Subgroup of drop down to Class</li>
<li>Now under the Group Rules section make these changes (without the quotes):
<ul>
<li>Function Begin: &#8220;[\t]*function &#8221; <-- Notice the space after function</li>
<li>Function List Name: &#8220;[\w]*&#8221;</li>
<li>Function End: &#8220;\(&#8220;</li>
<li>Body Begin: &#8220;{&#8220;</li>
<li>Body End: &#8220;}&#8221;</li>
</ul>
</li>
</ol>
<p>If you have a PHP file open that has functions and/or classes you can click the Try! button at the bottom of the window and you will see your classes and functions show up in the Function List. Once completed just click OK and you are done! Enjoy listing your classes and functions in Notepad++.</p>
<p>**You will need to make sure that in the File Menu under Plugins > Function List > View List as Tree is checked for this to look correct.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/53/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Date Check/Validation</title>
		<link>http://www.wlscripting.com/tutorial/52</link>
		<comments>http://www.wlscripting.com/tutorial/52#comments</comments>
		<pubDate>Thu, 16 Oct 2008 18:17:38 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Time/Date]]></category>

		<guid isPermaLink="false">http://www.wlscripting.com/tutorial/52</guid>
		<description><![CDATA[A date checking/validation function to make sure your date is correct format.]]></description>
			<content:encoded><![CDATA[<p>If you have ever tried to create some kind of script that requires dates to be inserted into a database or used for a calculation, proper formatting is usually required for these activities. Below is code that will strip out all extra characters, check if in correct pattern(mm/dd/yy, mm/dd/yyyy, yyyy/mm/dd), then check if the date actually exists. If your date actually exists it will then output the date in whatever format you wish it to be in.</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php

</span><span class="hl-reserved">function </span><span class="hl-identifier">MyDateCheck</span><span class="hl-brackets">(</span><span class="hl-var">$Date</span><span class="hl-code">, </span><span class="hl-var">$ReturnFormat</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">m/d/Y</span><span class="hl-quotes">'</span><span class="hl-brackets">) {
	</span><span class="hl-comment">// Clean date to make sure it has legal characters
	</span><span class="hl-var">$Date</span><span class="hl-code"> = </span><span class="hl-identifier">preg_replace</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">/[^0-9._\/</span><span class="hl-special">\\</span><span class="hl-string">\-]/</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">''</span><span class="hl-code">, </span><span class="hl-var">$Date</span><span class="hl-brackets">)</span><span class="hl-code">;
	
	</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-var">$Date</span><span class="hl-brackets">) </span><span class="hl-reserved">OR empty</span><span class="hl-brackets">(</span><span class="hl-var">$ReturnFormat</span><span class="hl-brackets">)) {
		</span><span class="hl-comment">// We do not have everything that we need to complete the function, return false
		</span><span class="hl-reserved">return false</span><span class="hl-code">;
	</span><span class="hl-brackets">}
	</span><span class="hl-comment">// Replace a variety of date separators with one common separator
	</span><span class="hl-var">$Date</span><span class="hl-code"> = </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">.</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-special">\'</span><span class="hl-string">, </span><span class="hl-quotes">'</span><span class="hl-code">-</span><span class="hl-quotes">'</span><span class="hl-string">), </span><span class="hl-quotes">'</span><span class="hl-code">/</span><span class="hl-quotes">'</span><span class="hl-string">, $Date);
	// Start the date checking
	//Matches mm/dd/yy, mm/dd/yyyy and only allows days from 1 to 31
	if (preg_match(&quot;/^([0-1][0-2]|[0]?[0-9])\/([0-2][0-9]|3[01]|[0-9])\/([0-9]{2,4})$/&quot;, $Date, $parts)) {
		// Using the $parts array parse out the month, day and year for further date calculations
		// We convert them into Integers so there is no possible way of any stray characters missed from the replace above
		$Month = (INT) $parts[1];
		$Day = (INT) $parts[2];
		$Year = (INT) $parts[3];
	// Matches yyyy/mm/dd and only allows days from 1 to 31
	} elseif (preg_match(&quot;/^([0-9]{4})\/([0-1][0-2]|[0]?[0-9])\/([0-2][0-9]|3[01]|[0-9])$/&quot;, $Date, $parts)) {
		$Year = (INT) $parts[1];
		$Month = (INT) $parts[2];
		$Day = (INT) $parts[3];
	} else {
		return false;
	}
	// If the date gets past the matching we confirm the date with checkdate
	// This function also works to detect any bad dates due to leap year
	if (checkdate($Month, $Day, $Year)) {
		// Using PHP5</span><span class="hl-quotes">'</span><span class="hl-identifier">s DateTime object to format the date
		</span><span class="hl-var">$NewDate</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">DateTime</span><span class="hl-brackets">(</span><span class="hl-var">$Date</span><span class="hl-brackets">)</span><span class="hl-code">;
		</span><span class="hl-comment">// Return date in a new format, defaulted to m/d/Y
		</span><span class="hl-reserved">return </span><span class="hl-var">$NewDate</span><span class="hl-code">-&gt;</span><span class="hl-identifier">format</span><span class="hl-brackets">(</span><span class="hl-var">$ReturnFormat</span><span class="hl-brackets">)</span><span class="hl-code">;
	}
	</span><span class="hl-comment">// Return false by default if something happens above that is not expected
	</span><span class="hl-reserved">return false</span><span class="hl-code">;
}

?&gt;</span></pre></div></div>
<p>You would then use the code like:</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$Date</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">10-16-2008</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$MyDate</span><span class="hl-code"> = </span><span class="hl-identifier">MyDateCheck</span><span class="hl-brackets">(</span><span class="hl-var">$Date</span><span class="hl-brackets">)) {
       </span><span class="hl-comment">// Use your value from $MyDate as it is now safe and in correct format
	</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">A correct date was passed through: </span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$MyDate</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
	</span><span class="hl-reserved">echo </span><span class="hl-var">$Date</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string"> is not a valid date</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
<p>OR</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-inlinetags">&lt;?php
</span><span class="hl-var">$Date</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">10-16-2008</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-var">$MyDate</span><span class="hl-code"> = </span><span class="hl-identifier">MyDateCheck</span><span class="hl-brackets">(</span><span class="hl-var">$Date</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">mm-dd-yy</span><span class="hl-quotes">'</span><span class="hl-brackets">)) {
       </span><span class="hl-comment">// Use your value from $MyDate as it is now safe and in correct format
	</span><span class="hl-reserved">echo </span><span class="hl-quotes">'</span><span class="hl-string">A correct date was passed through: </span><span class="hl-quotes">'</span><span class="hl-code">.</span><span class="hl-var">$MyDate</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
	</span><span class="hl-reserved">echo </span><span class="hl-var">$Date</span><span class="hl-code">.</span><span class="hl-quotes">'</span><span class="hl-string"> is not a valid date</span><span class="hl-quotes">'</span><span class="hl-code">;
</span><span class="hl-brackets">}
</span><span class="hl-inlinetags">?&gt;</span></pre></div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.wlscripting.com/tutorial/52/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

