<?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>For the Love of Geeks &#187; Programming</title>
	<atom:link href="http://www.fortheloveofgeeks.com/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fortheloveofgeeks.com</link>
	<description>I am a geek, and I&#039;m OK!</description>
	<lastBuildDate>Sun, 12 Jun 2011 20:39:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Geeks On PHP OOP Update</title>
		<link>http://www.fortheloveofgeeks.com/2010/07/16/geeks-on-php-oop-update/</link>
		<comments>http://www.fortheloveofgeeks.com/2010/07/16/geeks-on-php-oop-update/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 18:26:01 +0000</pubDate>
		<dc:creator>Nicholas Kreidberg</dc:creator>
				<category><![CDATA[Geeks On PHP]]></category>
		<category><![CDATA[darthweef]]></category>
		<category><![CDATA[kreidberg]]></category>
		<category><![CDATA[mitchell hislop]]></category>
		<category><![CDATA[nicholas kreidberg]]></category>
		<category><![CDATA[niczak]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Stephen Johnson]]></category>

		<guid isPermaLink="false">http://www.fortheloveofgeeks.com/?p=1677</guid>
		<description><![CDATA[I want to give everybody a quick update on what is going on with Geeks On PHP and what to expect in the near future. As we talked about on our last episode we are putting together a series of podcasts focused on OOP in PHP. Unfortunately due to time constraints, work overload and other [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.fortheloveofgeeks.com/wp-content/uploads/2009/07/geeksOnPHPsmall.png" alt="" title="Geeks On PHP" width="144" height="144" class="alignleft size-full wp-image-1189" /></p>
<p>I want to give everybody a quick update on what is going on with Geeks On PHP and what to expect in the near future.  As we talked about on our last episode we are putting together a series of podcasts focused on OOP in PHP.  Unfortunately due to time constraints, work overload and other things out of our control we have had to push things back a bit.  The series is still going to happen and we are excited to have <a href="http://twitter.com/mitchellhislop" target="_blank">Mitchell Hislop</a> who is a friend of mine and a very talented developer / social media expert joining us for the series.  </p>
<p>As soon as we are able to settle on dates to record I will provide updates via Twitter and our Facebook page letting people know what to expect.  Thank you for your patience and we look forward to releasing a great series on OOP!</p>
<p>Follow both <a href="http://twitter.com/darthweef" target="_blank">Stephen</a> &#038; <a href="http://twitter.com/niczak" target="_blank">Myself</a> on <a href="http://twitter.com/niczak" target="_blank">Twitter</a> and also <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=325498336" target="_blank">subscribe via Tunes.</a></p>
<p>- <a href="mailto:niczak@gmail.com">Nicholas</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.fortheloveofgeeks.com%2F2010%2F07%2F16%2Fgeeks-on-php-oop-update%2F&amp;title=Geeks%20On%20PHP%20OOP%20Update" id="wpa2a_2"><img src="http://www.fortheloveofgeeks.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.fortheloveofgeeks.com/2010/07/16/geeks-on-php-oop-update/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Geeks On PHP Episode 13</title>
		<link>http://www.fortheloveofgeeks.com/2010/06/05/geeks-on-php-episode-13/</link>
		<comments>http://www.fortheloveofgeeks.com/2010/06/05/geeks-on-php-episode-13/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 20:17:05 +0000</pubDate>
		<dc:creator>Nicholas Kreidberg</dc:creator>
				<category><![CDATA[Geeks On PHP]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[darthweef]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[kreidberg]]></category>
		<category><![CDATA[nicholas]]></category>
		<category><![CDATA[niczak]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Stephen Johnson]]></category>
		<category><![CDATA[strings]]></category>

		<guid isPermaLink="false">http://www.fortheloveofgeeks.com/?p=1599</guid>
		<description><![CDATA[This week Stephen and I talk about strings and how they are accessed, manipulated and used in PHP. We kick off the discussion talking about some differences between echo() and printf(). Below is an example of using both functions to populate a text field on a web form. We will start off with using echo(): [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.fortheloveofgeeks.com/wp-content/uploads/2009/07/geeksOnPHPsmall.png" alt="" title="Geeks On PHP" width="144" height="144" class="alignleft size-full wp-image-1189" /></p>
<p>This week <a href="http://twitter.com/darthweef" target="_blank">Stephen</a> <a href="http://twitter.com/niczak" target="_blank">and I</a> talk about strings and how they are accessed, manipulated and used in PHP.</p>
<p>We kick off the discussion talking about some differences between echo() and printf().  Below is an example of using both functions to populate a text field on a web form.  We will start off with using echo():</p>
<p><code><br />
.. input type="text" name="foo" id="foo"<br />
[Inside PHP Block]<br />
     if(!empty($dbresult['foo']))<br />
          echo ' value="'.$dbresult['foo'].'" />';<br />
     else<br />
          echo ' value="" />';<br />
?><br />
</code></p>
<p>Here is the same end-result using printf():</p>
<p><code><br />
... input type="text" name="foo" id="foo"<br />
[Inside PHP Block]<br />
  printf(" value=\"%s\" ", !empty($dbresult['foo']) ? $aResults['foo'] : "");<br />
?><br />
</code></p>
<p>I tried to make the &#8220;argument&#8221; during the show that printf() allows for a lot more flexibility as well as resulting in slightly more compact code.  Notice the usage of <a href="http://php.net/manual/en/language.operators.comparison.php" target="_blank">PHP&#8217;s ternary operator</a> in the printf() example.  It allows for a great deal of flexibility and power directly in-line w/ your output statement.</p>
<p>Regular Expressions were also a big topic of discussion this week and as promised here are some examples of commonly used RegEx&#8217;s in web application development:</p>
<p><code><br />
$pattern_date = '#(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d#';<br />
$pattern_email = '#^[a-zA-Z._]+@[a-zA-Z_]+?\.[a-zA-Z]{2,4}$#';<br />
$pattern_email2 = '#^\w+([\.%-]\w+)*@\w+([\.-]\w+)*(\.\w{2,})+$#';<br />
$pattern_phone = '#^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$#';<br />
$pattern_time = '#(1[0-2]|[1-9]):([0-5][0-9])#';<br />
$pattern_url = '#(http|https)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4}(/\S*)?$#';<br />
$pattern_alphanum = "#^[a-zA-Z0-9\s]+$#";<br />
</code></p>
<p>To test matching on these patterns you can simply use the <a href="http://us2.php.net/preg_match" target="_blank">preg_match()</a> function:</p>
<pre>
preg_match($pattern, $string, $matches);
if(!empty($matches))
    print_r($matches);
</pre>
<p>A couple of my favorite resources for regular expressions are:<br />
<a href="http://www.gskinner.com/RegExr/" target="_blank">The Online Regular Expression Testing Tool</a><br />
<a href="http://regexlib.com/" target="_blank">The Regular Expression Library</a></p>
<p>Regular Expressions provide so much power and versatility when it comes to pattern matching and replacements that they just can&#8217;t be ignored.  If you have questions about any of the above please let us know.</p>
<p>Follow both <a href="http://twitter.com/darthweef" target="_blank">Stephen</a> and <a href="http://twitter.com/niczak" target="_blank">Myself</a> on <a href="http://twitter.com/niczak" target="_blank">Twitter</a> and also <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=325498336" target="_blank">subscribe via Tunes</a>!</p>
<p>Enjoy the show and as always, stay geeky!</p>
<p>- <a href="mailto:niczak@gmail.com">Nicholas</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.fortheloveofgeeks.com%2F2010%2F06%2F05%2Fgeeks-on-php-episode-13%2F&amp;title=Geeks%20On%20PHP%20Episode%2013" id="wpa2a_4"><img src="http://www.fortheloveofgeeks.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.fortheloveofgeeks.com/2010/06/05/geeks-on-php-episode-13/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://m.podshow.com/download_media/22614/episodes/234632/phpgeeks-234632-06-05-2010.mp3" length="35126887" type="audio/mpeg" />
		</item>
		<item>
		<title>Geeks On PHP Episode 10</title>
		<link>http://www.fortheloveofgeeks.com/2010/05/08/geeks-on-php-episode-10/</link>
		<comments>http://www.fortheloveofgeeks.com/2010/05/08/geeks-on-php-episode-10/#comments</comments>
		<pubDate>Sun, 09 May 2010 00:24:30 +0000</pubDate>
		<dc:creator>Nicholas Kreidberg</dc:creator>
				<category><![CDATA[Geeks On PHP]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[darthweef]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[kreidberg]]></category>
		<category><![CDATA[niczak]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Stephen Johnson]]></category>

		<guid isPermaLink="false">http://www.fortheloveofgeeks.com/?p=1534</guid>
		<description><![CDATA[We are happy to bring you episode 10 of the Geeks On PHP Podcast!  This week we talk about API programming, specific API&#8217;s that we have worked with, some great development tips and even alcohol.  This episode has it all. The Authorize.net API comes up a bit in discussion and I mention the article I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.fortheloveofgeeks.com/wp-content/uploads/2009/07/geeksOnPHPsmall.png"><img class="alignleft size-full wp-image-1189" title="Geeks On PHP" src="http://www.fortheloveofgeeks.com/wp-content/uploads/2009/07/geeksOnPHPsmall.png" alt="" width="144" height="144" /></a></p>
<p>We are happy to bring you episode 10 of the Geeks On PHP Podcast!  This week we talk about API programming, specific API&#8217;s that we have worked with, some great development tips and even alcohol.  This episode has it all.</p>
<p>The <a href="http://www.authorize.net" target="_blank">Authorize.net</a> API comes up a bit in discussion and I mention <a href="http://www.fortheloveofgeeks.com/2010/05/06/new-mastercard-discover-processing-requirements/" target="_blank">the article I wrote</a> a couple of days ago regarding some changes to online debt card processing as it pertains to the Authorize.net API.</p>
<p>We invite you to follow both <a href="http://twitter.com/darthweef" target="_blank">Stephen</a> and <a href="http://twitter.com/niczak" target="_blank">I</a> on <a href="http://twitter.com/niczak" target="_blank">Twitter</a> and also <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=325498336" target="_blank">subscribe</a> to us on <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=325498336" target="_self">iTunes</a>!</p>
<p>Enjoy the show and as always, stay geeky!</p>
<p>- <a href="mailto:niczak@gmail.com">Nicholas</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.fortheloveofgeeks.com%2F2010%2F05%2F08%2Fgeeks-on-php-episode-10%2F&amp;title=Geeks%20On%20PHP%20Episode%2010" id="wpa2a_6"><img src="http://www.fortheloveofgeeks.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.fortheloveofgeeks.com/2010/05/08/geeks-on-php-episode-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://m.podshow.com/download_media/22614/episodes/230217/phpgeeks-230217-05-08-2010.mp3" length="31055633" type="audio/mpeg" />
		</item>
		<item>
		<title>New MasterCard &amp; Discover Processing Requirements</title>
		<link>http://www.fortheloveofgeeks.com/2010/05/06/new-mastercard-discover-processing-requirements/</link>
		<comments>http://www.fortheloveofgeeks.com/2010/05/06/new-mastercard-discover-processing-requirements/#comments</comments>
		<pubDate>Thu, 06 May 2010 23:47:55 +0000</pubDate>
		<dc:creator>Nicholas Kreidberg</dc:creator>
				<category><![CDATA[Geek Banter]]></category>
		<category><![CDATA[Geeks On PHP]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[authorize]]></category>
		<category><![CDATA[credit processing]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[kreidberg]]></category>
		<category><![CDATA[nicholas]]></category>
		<category><![CDATA[niczak]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.fortheloveofgeeks.com/?p=1507</guid>
		<description><![CDATA[MasterCard and Discover are modifying their rules concerning processing of debit, prepaid and gift cards. MasterCard&#8217;s rule changes went into effect 5/1/2010 and Discover&#8217;s rule changes went into effect on 4/16/2010. Merchants using Authorize.Net have until 6/30/2011 to comply with the new standards but since I am compliance hound I wanted to make these changes [...]]]></description>
			<content:encoded><![CDATA[<p>MasterCard and Discover are modifying their rules concerning processing of debit, prepaid and gift cards.  MasterCard&#8217;s rule changes went into effect 5/1/2010 and Discover&#8217;s rule changes went into effect on 4/16/2010.  Merchants using Authorize.Net have until 6/30/2011 to comply with the new standards but since I am compliance hound I wanted to make these changes immediately.</p>
<p>Since I was reading up on all of the documentation and re-working my API code accordingly I figured I would share the changes with everyone in hopes of saving people a bit of time when they sit down to modify their own code.</p>
<p><span style="text-decoration: underline;">So what&#8217;s new?</span><br />
 &#8211; Balance response transactions<br />
 &#8211; Partial authorization transactions<br />
 &#8211; Authorization reversals</p>
<p><span style="text-decoration: underline;">So what does all that mean?</span><br />
Transactions made on a gift/debt/etc card can now be split among multiple cards using partial authorization and the splitTenderId value.  This value &#8220;links&#8221; the authorization request to subsequent transactions.</p>
<p>The new API request fields to pay attention to are <strong>['x_allow_partial_Auth']</strong> which is either true or false and <strong>['x_split_tender_id']</strong> which gets set to the original authorization request value.</p>
<p>The new relay response reply fields are as follows:<br />
<strong>['x_account_number']</strong> = last 4 digits of card<br />
<strong>['x_card_type']</strong> = string value indicating the type of card used<br />
<strong>['x_split_tender_id']</strong> = original authorization value<br />
<strong>['x_prepaid_requested_amount']</strong> = amount requested in original auto<br />
<strong>['x_prepaid_balance_on_card']</strong> = balance on the debit/prepaid card</p>
<p>The obvious things to note here (aside from the tender id) are the card balance and the requested amount.  With these two values you can easily determine if the transaction can go through or if a subsequent transaction (w/ the sane tender id) has been requested.</p>
<p>New response codes to take note of are the following:<br />
<strong>Reason: 295 Code: 4</strong> &#8212; Amount was only partially approved<br />
<strong>Reason: 296 Code: 3</strong> &#8212; The splitTenderId is invalid.<br />
<strong>Reason: 297 Code: 3</strong> &#8212; A trans ID and a Split Tender ID can&#8217;t both be used in a single transaction request.<br />
<strong>Reason: 298 Code: 3</strong> &#8212; The splitTenderId has been completed (released or voided) and can not be associated with new transactions.</p>
<p>Here is what a sample relay repines looks like: (Taken from official documentation)</p>
<p><img class="alignleft size-full wp-image-1509" title="Authnet Relay Response" src="http://www.fortheloveofgeeks.com/wp-content/uploads/2010/05/Screen-shot-2010-05-06-at-3.13.30-PM1.png" alt="" width="450" height="364" /></p>
<p>Hopefully this summary helps identify the changes that need to be made and why.  All of this information can be found in the official documentation which is available at: <a href="http://www.authorize.net/support/pafaqs/" target="_blank">http://www.authorize.net/support/pafaqs/</a></p>
<h3>- <a href="mailto:niczak@gmail.com">Nicholas</a></h3>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.fortheloveofgeeks.com%2F2010%2F05%2F06%2Fnew-mastercard-discover-processing-requirements%2F&amp;title=New%20MasterCard%20%26%23038%3B%20Discover%20Processing%20Requirements" id="wpa2a_8"><img src="http://www.fortheloveofgeeks.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.fortheloveofgeeks.com/2010/05/06/new-mastercard-discover-processing-requirements/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Essential tools for PHP development</title>
		<link>http://www.fortheloveofgeeks.com/2009/03/08/essential-tools-for-php-development/</link>
		<comments>http://www.fortheloveofgeeks.com/2009/03/08/essential-tools-for-php-development/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 23:17:36 +0000</pubDate>
		<dc:creator>Nicholas Kreidberg</dc:creator>
				<category><![CDATA[Geek Banter]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[kreidberg]]></category>
		<category><![CDATA[nicholas kreidberg]]></category>
		<category><![CDATA[niczak]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.fortheloveofgeeks.com/?p=990</guid>
		<description><![CDATA[As sort of a &#8220;follow-up&#8221; to my post from last week I am here to bring you what I think is a very solid list of tools for developing web applications with PHP. 1) Editor: TextMate (Mac Only), I really love this editor. On the PC I use PsPad. 2) Debug: A combination of writing [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.fortheloveofgeeks.com/wp-content/uploads/2009/03/programming-300x225.jpg" alt="b1nary" title="b1nary" width="300" height="225" class="aligncenter size-medium wp-image-991" /></center></p>
<p>As sort of a &#8220;follow-up&#8221; to my post from last week I am here to bring you what I think is a very solid list of tools for developing web applications with PHP.</p>
<p>1) Editor: <a href="http://macromates.com/" target="_blank">TextMate</a> (Mac Only), I really love this editor.  On the PC I use <a href="http://www.pspad.com/" target="_blank">PsPad</a>.</p>
<p>2) Debug: A combination of writing robust error reporting in software, <a href="http://getfirebug.com/" target="_blank">Firebug</a> &#038; <a href="http://chrispederick.com/work/web-developer/" target="_blank">Web Developer</a> (firefox plug-ins) and apache weblog parsing</p>
<p>3) Tools: <a href="http://jquery.com" target="_blank">jQuery</a> is my favorite toy right now, I am doing a lot of neat stuff with it and really bringing some database driven web applications &#8220;to life.&#8221;</p>
<p>4) Framework: <a href="http://codeigniter.com/" target="_blank">CodeIgniter</a> is a great, lightweight <a href="http://en.wikipedia.org/wiki/Model-view-controller" target="_blank">MVC (Model-View-Controller)</a> framework for rapid PHP development.</p>
<p>5) Cross-browser testing: Honestly, I just use live machines.. I have heard very mixed things about <a href="http://browsershots.org/" target="_blank">Browsershots</a> and haven&#8217;t looked into the other options. We just test all our stuff on multiple platforms/browsers to ensure compatibility across the board.</p>
<p><strong style="font-size:large;">- <a href="mailto:niczak@gmail.com">Nicholas</a></strong></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.fortheloveofgeeks.com%2F2009%2F03%2F08%2Fessential-tools-for-php-development%2F&amp;title=Essential%20tools%20for%20PHP%20development" id="wpa2a_10"><img src="http://www.fortheloveofgeeks.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.fortheloveofgeeks.com/2009/03/08/essential-tools-for-php-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Essential browser plugins for web application developement</title>
		<link>http://www.fortheloveofgeeks.com/2009/03/05/essential-browser-plugins-for-web-application-developement/</link>
		<comments>http://www.fortheloveofgeeks.com/2009/03/05/essential-browser-plugins-for-web-application-developement/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 23:58:57 +0000</pubDate>
		<dc:creator>Nicholas Kreidberg</dc:creator>
				<category><![CDATA[Geek Banter]]></category>
		<category><![CDATA[addons]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[nicholas kreidberg]]></category>
		<category><![CDATA[niczak]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[web application]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.fortheloveofgeeks.com/?p=981</guid>
		<description><![CDATA[The topic of browser extensions and web application development has come up a bit lately so here is a short list of my &#8220;mission critical&#8221; extensions pertaining to developing/debugging web applications: Firebug (Debugging / Monitoring) FirePHP (Enables logging of Firebug Console using a simple PHP method call) HTML Validator (Exactly what it sounds like, integrates [...]]]></description>
			<content:encoded><![CDATA[<p>The topic of browser extensions and web application development has come up a bit lately so here is a short list of my &#8220;mission critical&#8221; extensions pertaining to developing/debugging web applications:</p>
<p><a href="http://getfirebug.com/">Firebug</a> (Debugging / Monitoring)</p>
<p><a href="http://www.firephp.org/">FirePHP</a> (Enables logging of Firebug Console using a simple PHP method call)</p>
<p><a href="http://users.skynet.be/mgueury/mozilla/">HTML Validator</a> (Exactly what it sounds like, integrates nicely to firefox status bar)</p>
<p><a href="http://chrispederick.com/work/web-developer/">Web Developer</a> (CSS/DOM/HTML/JavaScript tools)</p>
<p><strong style="font-size:large;">- <a href="mailto:niczak@gmail.com">Nicholas</a></strong></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.fortheloveofgeeks.com%2F2009%2F03%2F05%2Fessential-browser-plugins-for-web-application-developement%2F&amp;title=Essential%20browser%20plugins%20for%20web%20application%20developement" id="wpa2a_12"><img src="http://www.fortheloveofgeeks.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.fortheloveofgeeks.com/2009/03/05/essential-browser-plugins-for-web-application-developement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy &amp; Dynamic Keyword Highlighting With PHP</title>
		<link>http://www.fortheloveofgeeks.com/2009/02/05/easy-dynamic-keyword-highlighting-with-php/</link>
		<comments>http://www.fortheloveofgeeks.com/2009/02/05/easy-dynamic-keyword-highlighting-with-php/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 19:47:42 +0000</pubDate>
		<dc:creator>Nicholas Kreidberg</dc:creator>
				<category><![CDATA[Geek Banter]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[loops]]></category>
		<category><![CDATA[nicholas kreidberg]]></category>
		<category><![CDATA[niczak]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[while]]></category>

		<guid isPermaLink="false">http://www.fortheloveofgeeks.com/?p=929</guid>
		<description><![CDATA[Say you are fetching news article data from a database and want to &#8220;highilight&#8221; (or in this example make bold) specific keywords in the article abstract. Once we have our news article data we need to fetch our keyword data which can also come from a database (recommended) or it could be stored locally in [...]]]></description>
			<content:encoded><![CDATA[<p>Say you are fetching news article data from a database and want to &#8220;highilight&#8221; (or in this example make bold) specific keywords in the article abstract.  Once we have our news article data we need to fetch our keyword data which can also come from a database (recommended) or it could be stored locally in an array.</p>
<p><code><br />
while($array = pg_fetch_assoc($result))<br />
{<br />
&nbsp;&nbsp;while($array_key = pg_fetch_assoc($result_key))<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;foreach($akeywords as $sphrase)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$sbody = str_replace($sphrase, "&lt;strong&gt;" . $sphrase . "&lt; /strong &gt;", $soverview);<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;pg_result_seek($result_key, 0);<br />
}<br />
</code></p>
<p>Assuming $akeywords is your array of keywords and $sbody is the body of text you want to &#8220;highlight&#8221;. For each keyword you have the body of text is parsed and if a match is found, a starting &lt;strong&gt; tag is added before the keyword and a closing &lt;/strong&gt; tag is added after.</p>
<p>This is a very simple piece of code but it can really come in handy in a number of projects.</p>
<p>- <a href="mailto:niczak@gmail.com">Nicholas</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.fortheloveofgeeks.com%2F2009%2F02%2F05%2Feasy-dynamic-keyword-highlighting-with-php%2F&amp;title=Easy%20%26%23038%3B%20Dynamic%20Keyword%20Highlighting%20With%20PHP" id="wpa2a_14"><img src="http://www.fortheloveofgeeks.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.fortheloveofgeeks.com/2009/02/05/easy-dynamic-keyword-highlighting-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

