<?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>javier arturo rodríguez &#187; PHP</title>
	<atom:link href="http://javier.rodriguez.org.mx/index.php/category/code/php/feed" rel="self" type="application/rss+xml" />
	<link>http://javier.rodriguez.org.mx</link>
	<description>random musings</description>
	<lastBuildDate>Sat, 22 Oct 2011 19:23:50 +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>Demo for Luhn algorithm in PHP</title>
		<link>http://javier.rodriguez.org.mx/index.php/2006/02/24/demo-for-luhn-algorithm-in-php?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=demo-for-luhn-algorithm-in-php</link>
		<comments>http://javier.rodriguez.org.mx/index.php/2006/02/24/demo-for-luhn-algorithm-in-php#comments</comments>
		<pubDate>Fri, 24 Feb 2006 18:30:26 +0000</pubDate>
		<dc:creator>javier</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://javier.rodriguez.org.mx/?p=53</guid>
		<description><![CDATA[If you have a number that adheres to the Luhn algorithm for validation, you may check it easily with this short PHP snippet. (Download) You may test this script at http://javier.rodriguez.org.mx/code/luhn-test.php. Please consider that this is a demo, so please do not use this to check credit card numbers unless you send me an expiry [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a number that adheres to the Luhn algorithm for validation, you may check it easily with this short PHP snippet.</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">&lt;?php</span><br />
<span class="kw2">function</span> luhn<span class="br0">&#40;</span><span class="re0">$str</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$odd</span> <span class="sy0">=</span> <span class="sy0">!</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$str</span><span class="br0">&#41;</span><span class="sy0">%</span><span class="nu19">2</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sum</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$i</span><span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span><span class="re0">$i</span><span class="sy0">&lt;</span>strlen<span class="br0">&#40;</span><span class="re0">$str</span><span class="br0">&#41;</span><span class="sy0">;++</span><span class="re0">$i</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$n</span><span class="sy0">=</span>0<span class="sy0">+</span><span class="re0">$str</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$odd</span><span class="sy0">=!</span><span class="re0">$odd</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$odd</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sum</span><span class="sy0">+=</span><span class="re0">$n</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$x</span><span class="sy0">=</span>2<span class="sy0">*</span><span class="re0">$n</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sum</span><span class="sy0">+=</span><span class="re0">$x</span><span class="sy0">&gt;</span>9?<span class="re0">$x</span><span class="sy0">-</span>9<span class="sy0">:</span><span class="re0">$x</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$sum</span><span class="sy0">%</span>10<span class="br0">&#41;</span><span class="sy0">==</span>0<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<span class="re0">$num</span> <span class="sy0">=</span> <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">&#8216;number&#8217;</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
<span class="sy1">?&gt;</span><br />
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;Online Luhn algorithm test&lt;/title&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot;&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
<span class="kw2">&lt;?php</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$num</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="sy1">?&gt;</span><br />
<span class="kw2">&lt;?php</span> &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>luhn<span class="br0">&#40;</span><span class="re0">$num</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="sy1">?&gt;</span><br />
&lt;div style=&quot;background:#ddffdd;border:1px solid #004400;&quot;&gt;<br />
<span class="sy1">&lt;?=</span><a href="http://www.php.net/htmlspecialchars"><span class="kw3">htmlspecialchars</span></a><span class="br0">&#40;</span><span class="re0">$num</span><span class="br0">&#41;</span><span class="sy1">?&gt;</span> is valid<br />
&lt;/div&gt;<br />
<span class="kw2">&lt;?php</span> &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> <span class="sy1">?&gt;</span><br />
&lt;div style=&quot;background:#ffdddd;border:1px solid #880000;&quot;&gt;<br />
<span class="sy1">&lt;?=</span><a href="http://www.php.net/htmlspecialchars"><span class="kw3">htmlspecialchars</span></a><span class="br0">&#40;</span><span class="re0">$num</span><span class="br0">&#41;</span><span class="sy1">?&gt;</span> is NOT valid<br />
&lt;/div&gt;<br />
<span class="kw2">&lt;?php</span> &nbsp; <span class="br0">&#125;</span> <span class="sy1">?&gt;</span><br />
<span class="kw2">&lt;?php</span> <span class="br0">&#125;</span> <span class="sy1">?&gt;</span><br />
&lt;form action=&quot;luhn.php&quot; method=&quot;GET&quot;&gt;<br />
&lt;div&gt;<br />
Number: &lt;input type=&quot;text&quot; name=&quot;number&quot; value=&quot;<span class="sy1">&lt;?=</span><a href="http://www.php.net/urlencode"><span class="kw3">urlencode</span></a><span class="br0">&#40;</span><span class="re0">$num</span><span class="br0">&#41;</span><span class="sy1">?&gt;</span>&quot; size=&quot;40&quot;/&gt;<br />
&lt;input type=&quot;button&quot; name=&quot;btSend&quot; value=&quot;Check&quot;/&gt;<br />
&lt;/div&gt;<br />
&lt;/form&gt;<br />
&lt;/body&gt;</div>
</div>
<p>(<a href="http://javier.rodriguez.org.mx/code/luhn-test-php.txt">Download</a>)<br />
You may test this script at <a href="http://javier.rodriguez.org.mx/code/luhn-test.php">http://javier.rodriguez.org.mx/code/luhn-test.php</a>.<br />
Please consider that this is a demo, so please do not use this to check credit card numbers <a href="#" title="Yes, this is a joke. Laugh.">unless you send me an expiry date</a>. <a href="http://en.wikipedia.org/wiki/CVV2">CCV2</a> has taken over as the preferred method for credit card number validation anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://javier.rodriguez.org.mx/index.php/2006/02/24/demo-for-luhn-algorithm-in-php/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Luhn algorithm in PHP</title>
		<link>http://javier.rodriguez.org.mx/index.php/2005/12/26/luhn-algorithm-in-php?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=luhn-algorithm-in-php</link>
		<comments>http://javier.rodriguez.org.mx/index.php/2005/12/26/luhn-algorithm-in-php#comments</comments>
		<pubDate>Mon, 26 Dec 2005 14:53:03 +0000</pubDate>
		<dc:creator>javier</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://javier.rodriguez.org.mx/?p=42</guid>
		<description><![CDATA[As I mentioned before, the Luhn algorithm is used to validate some interesting numbers, most notably GSM IMEIs and credit card numbers. Here&#8217;s another implementation I wrote, this time in PHP. (Download)]]></description>
			<content:encoded><![CDATA[<p>As I mentioned <a href="http://javier.rodriguez.org.mx/index.php/2005/12/23/luhn-algorithm-in-perl/">before</a>, the <a href="http://en.wikipedia.org/wiki/Luhn_algorithm">Luhn algorithm</a> is used to validate some interesting numbers, most notably GSM IMEIs and credit card numbers. Here&#8217;s another implementation I wrote, this time in PHP.</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">function</span> luhn<span class="br0">&#40;</span><span class="re0">$str</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$odd</span> <span class="sy0">=</span> <span class="sy0">!</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$str</span><span class="br0">&#41;</span><span class="sy0">%</span><span class="nu19">2</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sum</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$i</span><span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span><span class="re0">$i</span><span class="sy0">&lt;</span>strlen<span class="br0">&#40;</span><span class="re0">$str</span><span class="br0">&#41;</span><span class="sy0">;++</span><span class="re0">$i</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$n</span><span class="sy0">=</span>0<span class="sy0">+</span><span class="re0">$str</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$odd</span><span class="sy0">=!</span><span class="re0">$odd</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$odd</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sum</span><span class="sy0">+=</span><span class="re0">$n</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$x</span><span class="sy0">=</span>2<span class="sy0">*</span><span class="re0">$n</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sum</span><span class="sy0">+=</span><span class="re0">$x</span><span class="sy0">&gt;</span>9?<span class="re0">$x</span><span class="sy0">-</span>9<span class="sy0">:</span><span class="re0">$x</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$sum</span><span class="sy0">%</span>10<span class="br0">&#41;</span><span class="sy0">==</span>0<span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</div>
<p>(<a href="http://javier.rodriguez.org.mx/code/luhn-php.txt">Download</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://javier.rodriguez.org.mx/index.php/2005/12/26/luhn-algorithm-in-php/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

