<?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>spechal.com &#187; PHP</title>
	<atom:link href="http://spechal.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://spechal.com</link>
	<description>[spesh-uhl]</description>
	<lastBuildDate>Thu, 21 Jan 2010 11:50:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>phpize not found</title>
		<link>http://spechal.com/2009/12/06/phpize-not-found/</link>
		<comments>http://spechal.com/2009/12/06/phpize-not-found/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 02:12:57 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[phpize]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=106</guid>
		<description><![CDATA[This error is typically generated when you don&#8217;t have the PHP development libraries installed.
Installing the libraries via repository is the easiest and quickest fix.
For Fedora/Red Hat:
yum install php5-dev
For Ubuntu/Debian:
apt-get install php5-dev
]]></description>
			<content:encoded><![CDATA[<p>This error is typically generated when you don&#8217;t have the PHP development libraries installed.</p>
<p>Installing the libraries via repository is the easiest and quickest fix.</p>
<p>For Fedora/Red Hat:<br />
yum install php5-dev</p>
<p>For Ubuntu/Debian:<br />
apt-get install php5-dev</p>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/12/06/phpize-not-found/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python MySQL Associative Array</title>
		<link>http://spechal.com/2009/11/27/python-mysql-associative-array/</link>
		<comments>http://spechal.com/2009/11/27/python-mysql-associative-array/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 23:26:04 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=87</guid>
		<description><![CDATA[By default, the MySQLdb module to access a MySQL database returns the data as an integer indexed array.  Sometimes this is not desirable and an associative array is preferred, such as the mysql_fetch_assoc function in PHP.  In addition, we will be using the pprint module which is similar PHP&#8217;s print_r
Here is the Python [...]]]></description>
			<content:encoded><![CDATA[<p>By default, the MySQLdb module to access a MySQL database returns the data as an integer indexed array.  Sometimes this is not desirable and an associative array is preferred, such as the mysql_fetch_assoc function in PHP.  In addition, we will be using the pprint module which is similar PHP&#8217;s print_r</p>
<p>Here is the Python equivalent:</p>
<pre class="python" name="code">
import MySQLdb
import pprint
# connect to the database here
db = MySQLdb.connect(...)
c = db.cursor(cursorclass=MySQLdb.cursors.DictCursor)
query = "SELECT `name`, `address` FROM `table`"
c.execute(query)
rows = c.fetchall()
c.close()
pprint.pprint(rows) # i.e. print_r($rows)
</pre>
<p>Hope that helps someone.</p>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/27/python-mysql-associative-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP function to validate MySQL UUID or GUID</title>
		<link>http://spechal.com/2009/11/15/php-function-to-validate-mysql-uuid-or-guid/</link>
		<comments>http://spechal.com/2009/11/15/php-function-to-validate-mysql-uuid-or-guid/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 23:59:51 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=30</guid>
		<description><![CDATA[
/**
   *  Function to validate a generated GUID / UUID
   *  @param string $guid GUID
   *  @return bool
   */
  function validGUID($guid){
    return preg_match('#^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$#', $guid);
  }

]]></description>
			<content:encoded><![CDATA[<pre class="php" name="code">
/**
   *  Function to validate a generated GUID / UUID
   *  @param string $guid GUID
   *  @return bool
   */
  function validGUID($guid){
    return preg_match('#^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$#', $guid);
  }
</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/15/php-function-to-validate-mysql-uuid-or-guid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP function to emulate MySQL UUID</title>
		<link>http://spechal.com/2009/11/15/php-function-to-emulate-mysql-uuid/</link>
		<comments>http://spechal.com/2009/11/15/php-function-to-emulate-mysql-uuid/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 23:58:15 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=28</guid>
		<description><![CDATA[
/**
   *  uuid
   *
   *  uuid() simply replicates MySQL's UUID function, which returns a 36
   *  character &#34;random&#34; hash (32 alphanumeric, 4 dashes).
   *  @return string
   */
  function uuid(){
    return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
     [...]]]></description>
			<content:encoded><![CDATA[<pre class="php" name="code">
/**
   *  uuid
   *
   *  uuid() simply replicates MySQL's UUID function, which returns a 36
   *  character &quot;random&quot; hash (32 alphanumeric, 4 dashes).
   *  @return string
   */
  function uuid(){
    return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
      mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff),
      mt_rand(0, 0x0fff) | 0x4000,
      mt_rand(0, 0x3fff) | 0x8000,
      mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff));
  }
</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/15/php-function-to-emulate-mysql-uuid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP function to emulate Excel NormSInv</title>
		<link>http://spechal.com/2009/11/15/php-function-to-emulate-excel-normsinv/</link>
		<comments>http://spechal.com/2009/11/15/php-function-to-emulate-excel-normsinv/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 15:58:56 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[emulator]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=14</guid>
		<description><![CDATA[
&#60;?php

function NormSInv($p){
   $a1 = -39.6968302866538; $a2 = 220.946098424521; $a3 = -275.928510446969;
   $a4 = 138.357751867269; $a5 = -30.6647980661472; $a6 = 2.50662827745924;
   $b1 = -54.4760987982241; $b2 = 161.585836858041; $b3 = -155.698979859887;
   $b4 = 66.8013118877197; $b5 = -13.2806815528857; $c1 = -7.78489400243029E-03;
   $c2 = -0.322396458041136; $c3 = -2.40075827716184, $c4 [...]]]></description>
			<content:encoded><![CDATA[<pre class="php" name="code">
&lt;?php

function NormSInv($p){
   $a1 = -39.6968302866538; $a2 = 220.946098424521; $a3 = -275.928510446969;
   $a4 = 138.357751867269; $a5 = -30.6647980661472; $a6 = 2.50662827745924;
   $b1 = -54.4760987982241; $b2 = 161.585836858041; $b3 = -155.698979859887;
   $b4 = 66.8013118877197; $b5 = -13.2806815528857; $c1 = -7.78489400243029E-03;
   $c2 = -0.322396458041136; $c3 = -2.40075827716184, $c4 = -2.54973253934373;
   $c5 = 4.37466414146497; $c6 = 2.93816398269878; $d1 = 7.78469570904146E-03
   $d2 = 0.32246712907004; $d3 = 2.445134137143; $d4 = 3.75440866190742;
   $p_low = 0.02425; $p_high = 1 - $p_low;
   $q = 0.0; $r = 0.0;
   if($p &lt; 0 || $p &gt; 1){
      throw new Exception(&quot;NormSInv: Argument out of range.&quot;);
   } else if($p &lt; $p_low){
      $q = pow(-2 * log($p), 2);
      $NormSInv = ((((($c1 * $q + $c2) * $q + $c3) * $q + $c4) * $q + $c5) * $q + $c6) /
         (((($d1 * $q + $d2) * $q + $d3) * $q + $d4) * $q + 1);
    } else if($p &lt;= $p_high){
      $q = $p - 0.5; $r = $q * $q;
      $NormSInv = ((((($a1 * $r + $a2) * $r + $a3) * $r + $a4) * $r + $a5) * $r + $a6) * $q /
         ((((($b1 * $r + $b2) * $r + $b3) * $r + $b4) * $r + $b5) * $r + 1);
    } else {
      $q = pow(-2 * log(1 - $p), 2);
      $NormSInv = -((((($c1 * $q + $c2) * $q + $c3) * $q + $c4) * $q + $c5) * $q + $c6) /
         (((($d1 * $q + $d2) * $q + $d3) * $q + $d4) * $q + 1);
    }
    return $NormSInv;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/15/php-function-to-emulate-excel-normsinv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Beale Cipher Decoder</title>
		<link>http://spechal.com/2009/11/14/php-beale-cipher-decoder/</link>
		<comments>http://spechal.com/2009/11/14/php-beale-cipher-decoder/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 23:00:17 +0000</pubDate>
		<dc:creator>Spechal</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Treasure Hunting]]></category>
		<category><![CDATA[cipher]]></category>
		<category><![CDATA[decoder]]></category>

		<guid isPermaLink="false">http://spechal.com/?p=10</guid>
		<description><![CDATA[Treasure hunting has always been somewhat of an interest of mine and with my programming skills I decided to create a Beale cipher decoder using PHP.  If you aren&#8217;t aware of the Beale cipher or the Beale story, head on over to Wikipedia and check it out.  It&#8217;s pretty interesting stuff.  Who [...]]]></description>
			<content:encoded><![CDATA[<p>Treasure hunting has always been somewhat of an interest of mine and with my programming skills I decided to create a Beale cipher decoder using PHP.  If you aren&#8217;t aware of the Beale cipher or the Beale story, head on over to <a href="http://en.wikipedia.org/wiki/Beale_ciphers">Wikipedia</a> and check it out.  It&#8217;s pretty interesting stuff.  Who knows if it has every really been found.</p>
<p>You can use the code below to input text and get the possible decoded instructions of where the treasure can be found!</p>
<pre class="php" name="code">&lt;?php
    class Beale {
        /**
        * @copyright 2009 Travis Crowder
        * @license Published under the MIT License
        * @uses
        * $class = new Beale(&quot;They're over here!&quot;, true, true);
        * echo $class=&gt;decipher(1);
        * The above code would remove all punctuation and whitespace
        * characters and use the 2nd cipher in the list
        *
        * $class = new Beale(&quot;They're over here!&quot;, false, true);
        * echo $class=&gt;decipher(0);
        * The above code would remove all punctuation, leaving whitespace
        * characters and use the 1st cipher in the list
        *
        * $class = new Beale(&quot;They're over here!&quot;);
        * echo $class=&gt;decipher(0);
        * The above code would use the 1st cipher in the list,
        * while leaving all whitespace and punctuation characters in place
        */

        /**
        * Ciphers
        *
        * @access protected
        * @var array $_ciphers
        * Contains the ciphers in an array
        */
		protected $_ciphers = array(
            array(
                71, 194, 38, 1701, 89, 76, 11, 83, 1629, 48, 94, 63, 132, 16, 111,
                95, 84, 341, 975,14, 40, 64, 27, 81, 139, 213, 63, 90, 1120, 8, 15,
                3, 126, 2018, 40, 74, 758, 485,604, 230, 436, 664, 582, 150, 251,
                284, 308, 231, 124, 211, 486, 225, 401, 370,11, 101, 305, 139, 189,
                17, 33, 88, 208, 193, 145, 1, 94, 73, 416, 918, 263, 28, 500,538,
                356, 117, 136, 219, 27, 176, 130, 10, 460, 25, 485, 18, 436, 65,
                84, 200, 283,118, 320, 138, 36, 416, 280, 15, 71, 224, 961, 44, 16,
                401, 39, 88, 61, 304, 12, 21,24, 283, 134, 92, 63, 246, 486, 682,
                7, 219, 184, 360, 780, 18, 64, 463, 474, 131,160, 79, 73, 440, 95,
                18, 64, 581, 34, 69, 128, 367, 460, 17, 81, 12, 103, 820, 62,116,
                97, 103, 862, 70, 60, 1317, 471, 540, 208, 121, 890, 346, 36, 150,
                59, 568,614, 13, 120, 63, 219, 812, 2160, 1780, 99, 35, 18, 21,
                136, 872, 15, 28, 170, 88, 4,30, 44, 112, 18, 147, 436, 195, 320,
                37, 122, 113, 6, 140, 8, 120, 305, 42, 58, 461,44, 106, 301, 13,
                408, 680, 93, 86, 116, 530, 82, 568, 9, 102, 38, 416, 89, 71, 216,
                728, 965, 818, 2, 38, 121, 195, 14, 326, 148, 234, 18, 55, 131,
                234, 361, 824, 5,81, 623, 48, 961, 19, 26, 33, 10, 1101, 365, 92,
                88, 181, 275, 346, 201, 206, 86,36, 219, 324, 829, 840, 64, 326,
                19, 48, 122, 85, 216, 284, 919, 861, 326, 985,233, 64, 68, 232,
                431, 960, 50, 29, 81, 216, 321, 603, 14, 612, 81, 360, 36, 51, 62,
                194, 78, 60, 200, 314, 676, 112, 4, 28, 18, 61, 136, 247, 819, 921,
                1060, 464, 895,10, 6, 66, 119, 38, 41, 49, 602, 423, 962, 302, 294,
                875, 78, 14, 23, 111, 109, 62,31, 501, 823, 216, 280, 34, 24, 150,
                1000, 162, 286, 19, 21, 17, 340, 19, 242, 31,86, 234, 140, 607,
                115, 33, 191, 67, 104, 86, 52, 88, 16, 80, 121, 67, 95, 122, 216,
                548, 96, 11, 201, 77, 364, 218, 65, 667, 890, 236, 154, 211, 10,
                98, 34, 119, 56,216, 119, 71, 218, 1164, 1496, 1817, 51, 39, 210,
                36, 3, 19, 540, 232, 22, 141, 617,84, 290, 80, 46, 207, 411, 150,
                29, 38, 46, 172, 85, 194, 39, 261, 543, 897, 624, 18,212, 416, 127,
                931, 19, 4, 63, 96, 12, 101, 418, 16, 140, 230, 460, 538, 19, 27,
                88,612, 1431, 90, 716, 275, 74, 83, 11, 426, 89, 72, 84, 1300,
                1706, 814, 221, 132,40, 102, 34, 868, 975, 1101, 84, 16, 79, 23,
                16, 81, 122, 324, 403, 912, 227, 936,447, 55, 86, 34, 43, 212, 107,
                96, 314, 264, 1065, 323, 428, 601, 203, 124, 95, 216,814, 2906,
                654, 820, 2, 301, 112, 176, 213, 71, 87, 96, 202, 35, 10, 2, 41,
                17, 84,221, 736, 820, 214, 11, 60, 760
            ),
            array(
               115, 73, 24, 807, 37, 52, 49, 17, 31, 62, 647, 22, 7, 15, 140, 47,
               29, 107, 79, 84, 56, 239, 10, 26, 811, 5, 196, 308, 85, 52, 160,
               136, 59, 211, 36, 9, 46, 316, 554, 122, 106, 95, 53, 58, 2, 42, 7,
               35, 122, 53, 31, 82, 77, 250, 196, 56, 96, 118, 71, 140, 287, 28,
               353, 37, 1005, 65, 147, 807, 24, 3, 8, 12, 47, 43, 59, 807, 45, 316,
               101, 41, 78, 154, 1005, 122, 138, 191, 16, 77, 49, 102, 57, 72, 34,
               73, 85, 35, 371, 59, 196, 81, 92, 191, 106, 273, 60, 394, 620, 270,
               220, 106, 388, 287, 63, 3, 191, 122, 43,  234, 400, 106, 290, 314,
               47, 48, 81, 96, 26, 115, 92, 158, 191, 110, 77, 85, 197, 46, 10,
               113, 140, 353, 48, 120, 106, 2, 607, 61, 420, 811, 29, 125, 14, 20,
               37, 105, 28, 248, 16, 159, 7, 35, 19, 301, 125, 110, 486, 287, 98,
               117, 511, 62, 51, 220, 37, 113, 140, 807, 138, 540, 8, 44, 287, 388,
               117, 18, 79, 344, 34, 20, 59, 511, 548, 107, 603, 220, 7, 66, 154,
               41, 20, 50, 6, 575, 122, 154, 248, 110, 61, 52, 33, 30, 5, 38, 8,
               14, 84, 57, 540, 217, 115, 71, 29, 84, 63, 43, 131, 29, 138, 47, 73,
               239, 540, 52, 53, 79, 118, 51, 44, 63, 196, 12, 239, 112, 3, 49, 79,
               353, 105, 56, 371, 557, 211, 515, 125, 360, 133, 143, 101, 15, 284,
               540, 252, 14, 205, 140, 344, 26, 811, 138, 115, 48, 73, 34, 205,
               316, 607, 63, 220, 7, 52, 150, 44, 52, 16, 40, 37, 158, 807, 37,
               121, 12, 95, 10, 15, 35, 12, 131, 62, 115, 102, 807, 49, 53, 135,
               138, 30, 31, 62, 67, 41,  85, 63, 10, 106, 807, 138, 8, 113, 20, 32,
               33, 37, 353, 287, 140, 47, 85, 50, 37, 49, 47, 64, 6, 7, 71, 33, 4,
               43, 47, 63, 1, 27, 600, 208, 230, 15, 191, 246, 85, 94, 511, 2270,
               20, 39, 7, 33, 44, 22, 40, 7, 10, 3, 811, 106, 44, 486, 230, 353,
               211, 200, 31, 10, 38, 140, 297, 61, 603, 320, 302, 666, 287, 2, 44,
               33, 32, 511, 548, 10, 6, 250, 557, 246, 53, 37, 52, 83, 47, 320, 38,
               33, 807, 7, 44, 30, 31, 250, 10, 15, 35, 106, 160, 113, 31, 102,
               406, 230, 540, 320, 29, 66, 33, 101, 807, 138, 301, 316, 353, 320,
               220, 37, 52, 28, 540, 320, 33, 8, 48, 107, 50, 811, 7, 2, 113, 73,
               16, 125, 11, 110, 67, 102, 807, 33, 59, 81, 158, 38, 43, 581, 138,
               19, 85, 400, 38, 43, 77, 14, 27, 8, 47, 138, 63, 140, 44, 35, 22,
               177, 106, 250, 314, 217, 2, 10, 7, 1005, 4, 20, 25, 44, 48, 7, 26,
               46, 110, 230, 807, 191, 34, 112, 147, 44, 110, 121, 125, 96, 41, 51,
               50, 140, 56, 47, 152, 540, 63, 807, 28, 42, 250, 138, 582, 98, 643,
               32, 107, 140, 112, 26, 85, 138, 540, 53, 20, 125, 371, 38, 36, 10,
               52, 118, 136, 102, 420, 150, 112, 71, 14, 20, 7, 24, 18, 12, 807,
               37, 67, 110, 62, 33, 21, 95, 220, 511, 102, 811, 30, 83, 84, 305,
               620, 15, 2, 108, 220, 106, 353, 105, 106, 60, 275, 72, 8, 50, 205,
               185, 112, 125, 540, 65, 106, 807, 188, 96, 110, 16, 73, 33, 807,
               150, 409, 400, 50, 154, 285, 96, 106, 316, 270, 205, 101, 811, 400,
               8, 44, 37, 52, 40, 241, 34, 205, 38, 16, 46, 47, 85, 24, 44, 15, 64,
               73, 138, 807, 85, 78, 110, 33, 420, 505, 53, 37, 38, 22, 31, 10,
               110, 106, 101, 140, 15, 38, 3, 5, 44, 7, 98, 287, 135, 150, 96, 33,
               84, 125, 807, 191, 96, 511, 118, 440, 370, 643, 466, 106, 41, 107,
               603, 220, 275, 30, 150, 105, 49, 53, 287, 250, 208, 134, 7, 53, 12,
               47, 85, 63, 138, 110, 21, 112, 140, 485, 486, 505, 14, 73, 84, 575,
               1005, 150, 200, 16, 42, 5, 4, 25, 42, 8, 16, 811, 125, 160, 32, 205,
               603, 807, 81, 96, 405, 41, 600, 136, 14, 20, 28, 26, 353, 302, 246,
               8, 131, 160, 140, 84, 440, 42, 16, 811, 40, 67, 101, 102, 194, 138,
               205, 51, 63, 241, 540, 122, 8, 10, 63, 140, 47, 48, 140, 288
              ),
            array(
                317, 8, 92, 73, 112, 89, 67, 318, 28, 96, 107, 41, 631, 78, 146,
                397, 118, 98, 114, 246, 348, 116, 74, 88, 12, 65, 32, 14, 81, 19,
                76, 121, 216, 85, 33, 66, 15, 108, 68, 77, 43, 24, 122, 96, 117, 36,
                211, 301, 15, 44, 11, 46, 89, 18, 136, 68, 317, 28, 90, 82, 304, 71,
                43, 221, 198, 176, 310, 319, 81, 99, 264, 380, 56, 37, 319, 2, 44,
                53, 28, 44, 75, 98, 102, 37, 85, 107, 117, 64, 88, 136, 48, 154, 99,
                175, 89, 315, 326, 78, 96, 214, 218, 311, 43, 89, 51, 90, 75, 128,
                96, 33, 28, 103, 84, 65, 26, 41, 246, 84, 270, 98, 116, 32, 59, 74,
                66, 69, 240, 15, 8, 121, 20, 77, 89, 31, 11, 106, 81, 191, 224, 328,
                18, 75, 52, 82, 117, 201, 39, 23, 217, 27, 21, 84, 35, 54, 109, 128,
                49, 77, 88, 1, 81, 217, 64, 55, 83, 116, 251, 269, 311, 96, 54, 32,
                120, 18, 132, 102, 219, 211, 84, 150, 219, 275, 312, 64, 10, 106,
                87, 75, 47, 21, 29, 37, 81, 44, 18, 126, 115, 132, 160, 181, 203,
                76, 81, 299, 314, 337, 351, 96, 11, 28, 97, 318, 238, 106, 24, 93,
                3, 19, 17, 26, 60, 73, 88, 14, 126, 138, 234, 286, 297, 321, 365,
                264, 19, 22, 84, 56, 107, 98, 123, 111, 214, 136, 7, 33, 45, 40, 13,
                28, 46, 42, 107, 196, 227, 344, 198, 203, 247, 116, 19, 8, 212, 230,
                31, 6, 328, 65, 48, 52, 59, 41, 122, 33, 117, 11, 18, 25, 71, 36,
                45, 83, 76, 89, 92, 31, 65, 70, 83, 96, 27, 33, 44, 50, 61, 24, 112,
                136, 149, 176, 180, 194, 143, 171, 205, 296, 87, 12, 44, 51, 89, 98,
                34, 41, 208, 173, 66, 9, 35, 16, 95, 8, 113, 175, 90, 56, 203, 19,
                177, 183, 206, 157, 200, 218, 260, 291, 305, 618, 951, 320, 18, 124,
                78, 65, 19, 32, 124, 48, 53, 57, 84, 96, 207, 244, 66, 82, 119, 71,
                11, 86, 77, 213, 54, 82, 316, 245, 303, 86, 97, 106, 212, 18, 37,
                15, 81, 89, 16, 7, 81, 39, 96, 14, 43, 216, 118, 29, 55, 109, 136,
                172, 213, 64, 8, 227, 304, 611, 221, 364, 819, 375, 128, 296, 1, 18,
                53, 76, 10, 15, 23, 19, 71, 84, 120, 134, 66, 73, 89, 96, 230, 48,
                77, 26, 101, 127, 936, 218, 439, 178, 171, 61, 226, 313, 215, 102,
                18, 167, 262, 114, 218, 66, 59, 48, 27, 19, 13, 82, 48, 162, 119,
                34, 127, 139, 34, 128, 129, 74, 63, 120, 11, 54, 61, 73, 92, 180,
                66, 75, 101, 124, 265, 89, 96, 126, 274, 896, 917, 434, 461, 235,
                890, 312, 413, 328, 381, 96, 105, 217, 66, 118, 22, 77, 64, 42, 12,
                7, 55, 24, 83, 67, 97, 109, 121, 135, 181, 203, 219, 228, 256, 21,
                34, 77, 319, 374, 382, 675, 684, 717, 864, 203, 4, 18, 92, 16, 63,
                82, 22, 46, 55, 69, 74, 112, 134, 186, 175, 119, 213, 416, 312, 343,
                264, 119, 186, 218, 343, 417, 845, 951, 124, 209, 49, 617, 856, 924,
                936, 72, 19, 28, 11, 35, 42, 40, 66, 85, 94, 112, 65, 82, 115, 119,
                236, 244, 186, 172, 112, 85, 6, 56, 38, 44, 85, 72, 32, 47, 73, 96,
                124, 217, 314, 319, 221, 644, 817, 821, 934, 922, 416, 975, 10, 22,
                18, 46, 137, 181, 101, 39, 86, 103, 116, 138, 164, 212, 218, 296,
                815, 380, 412, 460, 495, 675, 820, 952
            )
        );

		protected $_input = NULL;
		protected $_whitespace = FALSE;

		/**
        * Constructor
        *
        * @var string $Input Input to decipher
        * @var bool $whitespace Remove whitespace characters (\n, \t, \x20)
        * @var bool $parse Whether or not to run the character stripper ... must be True for whitespace to matter
        */
        public function __construct($input = NULL, $whitespace = FALSE, $parse = FALSE){
			$this-&gt;setWhitespace($whitespace);
			$this-&gt;setInput($input, $parse);
			$this-&gt;tokentize();
		}

		public function __destruct(){ }

		public function __clone(){ }

		/**
		 * Method to return the number of cipher elements in a cipher
		 *
		 * @param int $index
		 * @return count
		 */
		public function cipherSize($index){
			return count($this-&gt;_ciphers[$index]);
		}

		/**
		 * Method to return the largest element in a cipher
		 *
		 * @param int $index
		 * @return int
		 */
		public function maxCipher($index){
		  $max = 0;
		  foreach($this-&gt;_ciphers[$index] as $v)
		    if($v &gt; $max) $max = $v;
		  return $max;
		}

		/**
		 * Method to return the number of input elements
		 *
		 * @return int
		 */
		protected function inputSize(){
			return count($this-&gt;_input);
		}

		/**
		 * Method to remove punctuation and other elements
		 *
		 * @return void
		 */
		protected function inputClean(){
			$tokens = array(&quot;'&quot;, '&quot;', ',', '.', '!', '.', '(', ')', '*', '&amp;', '^', '%',
						'$', '#', '@', '`', '~', '-', '_', '=', '+', ';', '&lt;', '&gt;',
						'/', '?', '\\', '|', '[', ']', '{', '}'
					);
            // if whitespace, add whitespace characters to the tokens
			if($this-&gt;_whitespace){ $tokens[] = &quot; &quot;; $tokens[] = &quot;\t&quot;; $tokens[] = &quot;\n&quot;; }

			return str_replace($tokens,
					'',
					$this-&gt;_input
				);
		}

		/**
		 * Method to convert string to array
		 *
		 * @return void
		 */
		protected function tokentize(){
		  $this-&gt;_input = explode(&quot; &quot;, $this-&gt;inputClean($this-&gt;_input));
		}

		/**
		 * Method to set if to strip whitespace or not
		 *
		 * @param unknown_type $bool
		 */
		public function setWhitespace($bool){
			$this-&gt;_whitespace = ($bool) ? TRUE : FALSE;
		}

		/**
		 * Method to put the input into a variable
		 *
		 * @param string $input
		 * @param bool $parse
		 * @return void
		 */
		public function setInput($input, $parse = FALSE){
			$this-&gt;_input = ($parse) ? $this-&gt;inputClean($input) : $input;
		}

		/**
		 * Method to run the decryption
		 *
		 * @param int $key
		 * @return string
		 */
		public function decipher($key){
		  $return = NULL;
		  foreach($this-&gt;_ciphers[$key] as $k =&gt; $v){
		    $return .= $this-&gt;_input[$v][0];
		  }
		  return $return;
		}
	}</pre>
]]></content:encoded>
			<wfw:commentRss>http://spechal.com/2009/11/14/php-beale-cipher-decoder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
