<?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>John Ciacia &#187; PHP</title>
	<atom:link href="http://www.johnciacia.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.johnciacia.com</link>
	<description>Science, Technology, and Beyond</description>
	<lastBuildDate>Fri, 04 Jun 2010 02:44:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Basic OCR</title>
		<link>http://www.johnciacia.com/2010/01/04/basic-ocr/</link>
		<comments>http://www.johnciacia.com/2010/01/04/basic-ocr/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 03:40:11 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[gd]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=454</guid>
		<description><![CDATA[This is a very basic optical character recognition script written in PHP. This is untested and serves merely a proof of concept. As noted in the comments, adjusting the sample size can improve results, since with a large sample size on a small image there can be many collisions. A database is needed to compare [...]]]></description>
			<content:encoded><![CDATA[<p>This is a very basic optical character recognition script written in PHP. This is untested and serves merely a proof of concept. As noted in the comments, adjusting the sample size can improve results, since with a large sample size on a small image there can be many collisions. A database is needed to compare output results of this script with known values.</p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">

</span><span class="hl-comment">/*</span><span class="hl-comment"> create a test image </span><span class="hl-comment">*/</span><span class="hl-code">
</span><span class="hl-var">$im</span><span class="hl-code"> = @</span><span class="hl-identifier">imagecreate</span><span class="hl-brackets">(</span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">20</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-reserved">or</span><span class="hl-code"> </span><span class="hl-reserved">die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Cannot Initialize new GD image stream</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$background_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$text_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">imagestring</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">,  </span><span class="hl-quotes">&quot;</span><span class="hl-string">Hello, World!</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$text_color</span><span class="hl-brackets">)</span><span class="hl-code">;

</span><span class="hl-comment">/*</span><span class="hl-comment">**
 * Assumptions:
 *   A monochrome image where characters are black
 *   A single character is connected
 *   Characters are disjointed by white space
 </span><span class="hl-comment">*/</span><span class="hl-code">

</span><span class="hl-var">$width</span><span class="hl-code"> = </span><span class="hl-identifier">imagesx</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$height</span><span class="hl-code"> = </span><span class="hl-identifier">imagesy</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-brackets">)</span><span class="hl-code">;

</span><span class="hl-comment">/*</span><span class="hl-comment">**
 * Notes:
 *   The smaller the sample size the more accurate it will be,
 *   however, it will take longer. Larger images can use a larger
 *   sample size wihtout compromizing much accuracy.
 </span><span class="hl-comment">*/</span><span class="hl-code">
</span><span class="hl-var">$x_sample</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">;
</span><span class="hl-var">$y_sample</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">;

</span><span class="hl-var">$last</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-var">$width</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-var">$col</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$j</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$j</span><span class="hl-code"> &lt; </span><span class="hl-var">$height</span><span class="hl-code">; </span><span class="hl-var">$j</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$col</span><span class="hl-brackets">[</span><span class="hl-var">$j</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorat</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-var">$i</span><span class="hl-code">, </span><span class="hl-var">$j</span><span class="hl-brackets">)</span><span class="hl-code">;
    </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-brackets">(</span><span class="hl-var">$current</span><span class="hl-code"> = </span><span class="hl-identifier">array_sum</span><span class="hl-brackets">(</span><span class="hl-var">$col</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> &gt; </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> </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">$last</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$l</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$k</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$k</span><span class="hl-code"> &lt; </span><span class="hl-var">$height</span><span class="hl-code">; </span><span class="hl-var">$k</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </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-brackets">(</span><span class="hl-var">$l</span><span class="hl-code"> % </span><span class="hl-var">$x_sample</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> </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-brackets">(</span><span class="hl-var">$k</span><span class="hl-code"> % </span><span class="hl-var">$y_sample</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
                    </span><span class="hl-var">$sample</span><span class="hl-code"> .= </span><span class="hl-var">$col</span><span class="hl-brackets">[</span><span class="hl-var">$k</span><span class="hl-brackets">]</span><span class="hl-code">;
                </span><span class="hl-brackets">}</span><span class="hl-code">
            </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-var">$l</span><span class="hl-code">++;
        </span><span class="hl-var">$last</span><span class="hl-code"> = </span><span class="hl-var">$current</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$last</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
    </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-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-var">$sample</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; </span><span class="hl-var">$last</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-var">$sample</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
        </span><span class="hl-var">$sample</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">
</span><span class="hl-brackets">}</span><span class="hl-code">
</span><span class="hl-inlinetags">?&gt;</span></pre>
</div>
</div>
<p>Output (each line represents a character)</p>
<div class="quote">00000011111100000000000000001000000000000000000010000000000000000011111100000000<br />
00000000011000000000000000001011000000000000000011010000000000000000010100000000<br />
000000100001000000000000001111110000000000000000000100000000<br />
000000100001000000000000001111110000000000000000000100000000<br />
00000000011000000000000000001001000000000000000010010000000000000000011000000000<br />
000000000001000000000000000001100000000000000000010000000000<br />
00000011111100000000000000000110000000000000000001100000000000000011111100000000<br />
00000000011000000000000000001001000000000000000010010000000000000000011000000000<br />
00000000111100000000000000000100000000000000000010000000000000000000010000000000<br />
000000100001000000000000001111110000000000000000000100000000<br />
00000000011000000000000000001001000000000000000010100000000000000011111100000000<br />
00000001110100000000</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2010/01/04/basic-ocr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using PHP and GD to add border to text</title>
		<link>http://www.johnciacia.com/2010/01/04/using-php-and-gd-to-add-border-to-text/</link>
		<comments>http://www.johnciacia.com/2010/01/04/using-php-and-gd-to-add-border-to-text/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 23:41:03 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[border]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[stroke]]></category>
		<category><![CDATA[text]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=449</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
</span><span class="hl-comment">/*</span><span class="hl-comment">*
 * Writes the given text with a border into the image using TrueType fonts.
 *</span><span class="hl-inlinedoc"> @author </span><span class="hl-comment">John Ciacia
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">image An image resource
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">size The font size
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">angle The angle in degrees to rotate the text
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">x Upper left corner of the text
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">y Lower left corner of the text
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">textcolor This is the color of the main text
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">strokecolor This is the color of the text border
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">fontfile The path to the TrueType font you wish to use
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">text The text string in UTF-8 encoding
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">px Number of pixels the text border will be
 *</span><span class="hl-inlinedoc"> @see </span><span class="hl-url">http://us.php.net/manual/en/function.imagettftext.php</span><span class="hl-comment">
 </span><span class="hl-comment">*/</span><span class="hl-code">
</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">imagettfstroketext</span><span class="hl-brackets">(</span><span class="hl-code">&amp;</span><span class="hl-var">$image</span><span class="hl-code">, </span><span class="hl-var">$size</span><span class="hl-code">, </span><span class="hl-var">$angle</span><span class="hl-code">, </span><span class="hl-var">$x</span><span class="hl-code">, </span><span class="hl-var">$y</span><span class="hl-code">, &amp;</span><span class="hl-var">$textcolor</span><span class="hl-code">, &amp;</span><span class="hl-var">$strokecolor</span><span class="hl-code">, </span><span class="hl-var">$fontfile</span><span class="hl-code">, </span><span class="hl-var">$text</span><span class="hl-code">, </span><span class="hl-var">$px</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$c1</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-var">$x</span><span class="hl-code">-</span><span class="hl-identifier">abs</span><span class="hl-brackets">(</span><span class="hl-var">$px</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$c1</span><span class="hl-code"> &lt;= </span><span class="hl-brackets">(</span><span class="hl-var">$x</span><span class="hl-code">+</span><span class="hl-identifier">abs</span><span class="hl-brackets">(</span><span class="hl-var">$px</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$c1</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$c2</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-var">$y</span><span class="hl-code">-</span><span class="hl-identifier">abs</span><span class="hl-brackets">(</span><span class="hl-var">$px</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$c2</span><span class="hl-code"> &lt;= </span><span class="hl-brackets">(</span><span class="hl-var">$y</span><span class="hl-code">+</span><span class="hl-identifier">abs</span><span class="hl-brackets">(</span><span class="hl-var">$px</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$c2</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
            </span><span class="hl-var">$bg</span><span class="hl-code"> = </span><span class="hl-identifier">imagettftext</span><span class="hl-brackets">(</span><span class="hl-var">$image</span><span class="hl-code">, </span><span class="hl-var">$size</span><span class="hl-code">, </span><span class="hl-var">$angle</span><span class="hl-code">, </span><span class="hl-var">$c1</span><span class="hl-code">, </span><span class="hl-var">$c2</span><span class="hl-code">, </span><span class="hl-var">$strokecolor</span><span class="hl-code">, </span><span class="hl-var">$fontfile</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-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">imagettftext</span><span class="hl-brackets">(</span><span class="hl-var">$image</span><span class="hl-code">, </span><span class="hl-var">$size</span><span class="hl-code">, </span><span class="hl-var">$angle</span><span class="hl-code">, </span><span class="hl-var">$x</span><span class="hl-code">, </span><span class="hl-var">$y</span><span class="hl-code">, </span><span class="hl-var">$textcolor</span><span class="hl-code">, </span><span class="hl-var">$fontfile</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></pre>
</div>
</div>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
</span><span class="hl-var">$img</span><span class="hl-code"> = </span><span class="hl-identifier">imagecreatefrompng</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">/home/john/Desktop/test.png</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$font_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$img</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$stroke_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$img</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">imagettfstroketext</span><span class="hl-brackets">(</span><span class="hl-var">$img</span><span class="hl-code">, </span><span class="hl-number">10</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">10</span><span class="hl-code">, </span><span class="hl-number">50</span><span class="hl-code">, </span><span class="hl-var">$font_color</span><span class="hl-code">, </span><span class="hl-var">$stroke_color</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">abstract.ttf</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">Hello, World!</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-number">2</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.johnciacia.com/2010/01/04/using-php-and-gd-to-add-border-to-text/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Basic CAPTCHA</title>
		<link>http://www.johnciacia.com/2010/01/04/basic-captcha/</link>
		<comments>http://www.johnciacia.com/2010/01/04/basic-captcha/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 23:01:18 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[gd]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=443</guid>
		<description><![CDATA[Very basic code demonstrating the use of the GD library by creating a simple CAPTCHA.]]></description>
			<content:encoded><![CDATA[<p>Very basic code demonstrating the use of the GD library by creating a simple CAPTCHA.</p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">randomString</span><span class="hl-brackets">(</span><span class="hl-var">$length</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-var">$pattern</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890</span><span class="hl-quotes">&quot;</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">$length</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$length</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">10</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code">=</span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">&lt;</span><span class="hl-var">$length</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$string</span><span class="hl-code"> .= </span><span class="hl-var">$pattern</span><span class="hl-brackets">{</span><span class="hl-identifier">rand</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">,</span><span class="hl-number">61</span><span class="hl-brackets">)</span><span class="hl-brackets">}</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-var">$string</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">captcha</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Content-type: image/png</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$im</span><span class="hl-code"> = @</span><span class="hl-identifier">imagecreate</span><span class="hl-brackets">(</span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">50</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-reserved">or</span><span class="hl-code"> </span><span class="hl-reserved">die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Cannot Initialize new GD image stream</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$background_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$text_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$string</span><span class="hl-code"> = </span><span class="hl-identifier">randomString</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-identifier">imagestring</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">10</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">,  </span><span class="hl-var">$string</span><span class="hl-code">, </span><span class="hl-var">$text_color</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-identifier">imagepng</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-identifier">imagedestroy</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-identifier">captcha</span><span class="hl-brackets">(</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.johnciacia.com/2010/01/04/basic-captcha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Illogical PHP Logic</title>
		<link>http://www.johnciacia.com/2009/07/17/illogical-php-logic/</link>
		<comments>http://www.johnciacia.com/2009/07/17/illogical-php-logic/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 22:50:31 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[logic]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=218</guid>
		<description><![CDATA[In algebra, after we learn the basic distributive, commutative, and associative properties, the transitive property of equality is usually next in the curriculum. For those of you who do not recall the terminology, the transitive property of equality says if $a == $b and $b == $n then $a == $n. Using this age old [...]]]></description>
			<content:encoded><![CDATA[<p>In algebra, after we learn the basic distributive, commutative, and associative properties, the transitive property of equality is usually next in the curriculum. For those of you who do not recall the terminology, the transitive property of equality says if $a == $b and $b == $n then $a == $n. Using this age old logic, you can prove FALSE == TRUE and 0 == 1 in PHP. Here is how:</p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">
$a = 0;
$b = &quot;Hooray for PHP logic and dynamic type casting?&quot;;
var_dump(((FALSE == $a) == ($a == $b)) == ($b == TRUE));
var_dump((((0 == $a) == ($a == $b)) == ($b == TRUE) == (TRUE == 1));</span></pre>
</div>
</div>
<p>Returns<br />
<code>bool(true)<br />
bool(true)<br />
</code><br />
Q.E.D</p>
<p>Note: I am comparing values not types. That being said, forgive me when I flame you for using PHP inappropriately. A string is NOT an integer and an integer is NOT a boolean. They should not be used as such.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/07/17/illogical-php-logic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up a LAMP server with Ubuntu</title>
		<link>http://www.johnciacia.com/2009/07/05/setting-up-a-lamp-server-with-ubuntu/</link>
		<comments>http://www.johnciacia.com/2009/07/05/setting-up-a-lamp-server-with-ubuntu/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 03:03:16 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=199</guid>
		<description><![CDATA[Ubuntu, known for its ease of use, makes no exception for setting up an apache, mysql, and php stack. Since the release of Feisty Fawn, Ubuntu has come packed with tasksel &#8211; a user interface for installing tasks. 1. At your command prompt, run tasksel as root. john@earth:~$ sudo tasksel 2. Select LAMP server 3. [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu, known for its ease of use, makes no exception for setting up an apache, mysql, and php stack. Since the release of Feisty Fawn, Ubuntu has come packed with <strong>tasksel</strong> &#8211; a user interface for installing tasks. </p>
<p>1. At your command prompt, run tasksel as root.</p>
<blockquote><p>john@earth:~$ sudo tasksel</p></blockquote>
<p>2. Select LAMP server<br />
<a href="http://www.johnciacia.com/wp-content/uploads/2009/07/1.png"><img src="http://www.johnciacia.com/wp-content/uploads/2009/07/1-300x198.png" alt="1" title="1" width="300" height="198" class="aligncenter size-medium wp-image-200" /></a></p>
<p>3. Continue the installation by following the prompts.</p>
<p>It works!<br />
<a href="http://www.johnciacia.com/wp-content/uploads/2009/07/4.png"><img src="http://www.johnciacia.com/wp-content/uploads/2009/07/4-300x206.png" alt="4" title="4" width="300" height="206" class="aligncenter size-medium wp-image-201" /></a></p>
<p>One tool I have difficulty living without is phpMyAdmin. From the command prompt type<br />
<blockquote>sudo apt-get install phpmyadmin</p></blockquote>
<p> Continue the installation by following the prompts. If you are using a version of Ubuntu older than 9.04 (Jaunty) you will need to add the following line to /etc/apache2/apache2.conf Continue the installation by following the prompts. Version 9.04 does this automatically. You will be able to access phpMyAdmin by browsing directly to http://<hostname>/phpmyadmin </p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/07/05/setting-up-a-lamp-server-with-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tic Tac Toe</title>
		<link>http://www.johnciacia.com/2009/05/22/tic-tac-toe/</link>
		<comments>http://www.johnciacia.com/2009/05/22/tic-tac-toe/#comments</comments>
		<pubDate>Sat, 23 May 2009 00:34:31 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[tic tac toe]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=163</guid>
		<description><![CDATA[A graphical Tic Tac Toe board using PHP-Gtk]]></description>
			<content:encoded><![CDATA[<p>A graphical Tic Tac Toe board using PHP-Gtk</p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">#!/usr/local/bin/php -q
</span><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
</span><span class="hl-reserved">class</span><span class="hl-code"> </span><span class="hl-identifier">TicTacToe</span><span class="hl-code"> </span><span class="hl-reserved">extends</span><span class="hl-code"> </span><span class="hl-identifier">GtkWindow</span><span class="hl-brackets">{</span><span class="hl-code">

    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$_buttons</span><span class="hl-code">;
    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$_dialog</span><span class="hl-code">;
    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$_count</span><span class="hl-code">;
    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$_menu</span><span class="hl-code">;
    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$_lbl</span><span class="hl-code">;

    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">__construct</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-identifier">parent</span><span class="hl-code">::</span><span class="hl-identifier">__construct</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_title</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Tic-Tac-Toe</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_size_request</span><span class="hl-brackets">(</span><span class="hl-number">250</span><span class="hl-code">, </span><span class="hl-number">250</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_position</span><span class="hl-brackets">(</span><span class="hl-identifier">Gtk</span><span class="hl-code">::</span><span class="hl-identifier">WIN_POS_CENTER</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">destroy</span><span class="hl-quotes">'</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">gtk</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">main_quit</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-comment">#</span><span class="hl-comment">Create the Buttons and add them to the table</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-number">9</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkButton</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
            </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">clicked</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">clicked</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-var">$i</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-comment">#</span><span class="hl-comment">Create a GtkTable</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$tbl</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkTable</span><span class="hl-brackets">(</span><span class="hl-number">3</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-comment">#</span><span class="hl-comment">Add nine buttons to the table</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-number">9</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$tbl</span><span class="hl-code">-&gt;</span><span class="hl-identifier">attach</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-var">$i</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-brackets">(</span><span class="hl-var">$i</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-number">1</span><span class="hl-code">, </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">3</span><span class="hl-brackets">)</span><span class="hl-code">, </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">3</span><span class="hl-brackets">)</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">buildMenu</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-comment">#</span><span class="hl-comment">GtkStatusBar</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$status</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkStatusbar</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$context</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">Not Connected</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Connected</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$status</span><span class="hl-code">-&gt;</span><span class="hl-identifier">push</span><span class="hl-brackets">(</span><span class="hl-var">$status</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_context_id</span><span class="hl-brackets">(</span><span class="hl-var">$context</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-var">$context</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-comment">#</span><span class="hl-comment">GtkVBox</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$vbox</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkVBox</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-comment">#</span><span class="hl-comment">Add the GtkVBox to the main window</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">add</span><span class="hl-brackets">(</span><span class="hl-var">$vbox</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-comment">#</span><span class="hl-comment">Add the GtkMenu to the GtkVBox</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$vbox</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_menu</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-comment">#</span><span class="hl-comment">Add the GtkTable to the GtkVBox</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$vbox</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$tbl</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-comment">#</span><span class="hl-comment">Add the GtkStatusBar to the GtkVBox</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$vbox</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$status</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">show_all</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">server</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">server</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-comment">#</span><span class="hl-comment">Not implemented</span><span class="hl-comment"></span><span class="hl-code">
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">buildMenu</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-comment">#</span><span class="hl-comment">GtkMenu</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_menu</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuBar</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$file_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_File</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$help_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_Help</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$file_item</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_submenu</span><span class="hl-brackets">(</span><span class="hl-var">$file_menu</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code">  </span><span class="hl-identifier">GtkMenu</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$file_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$file_new_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_New</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$file_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$file_connect_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_Connect</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$file_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$file_quit_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_Quit</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

         </span><span class="hl-var">$help_item</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_submenu</span><span class="hl-brackets">(</span><span class="hl-var">$help_menu</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code">  </span><span class="hl-identifier">GtkMenu</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$help_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$help_about_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_About</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$file_new_item</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activate</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">restart</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$help_about_item</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activate</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">about</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$file_quit_item</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activate</span><span class="hl-quotes">'</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">Gtk</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">main_quit</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">about</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$about</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkAboutDialog</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_authors</span><span class="hl-brackets">(</span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">John Ciacia</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_comments</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Tic-Tac-Toe created using the PHP-Gtk extension.</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_copyright</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Copyright (C) 2008 John Ciacia</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_license</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">This software is released under the GNU GPL</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_version</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">1.0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_website</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://www.codecall.net</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_website_label</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://www.codecall.net</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">show_all</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">clicked</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        !</span><span class="hl-reserved">isset</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> : </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-code">++;
        </span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-code"> % </span><span class="hl-number">2</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_lbl</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">X</span><span class="hl-quotes">'</span><span class="hl-code"> : </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_lbl</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">O</span><span class="hl-quotes">'</span><span class="hl-code">;

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_label</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_lbl</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_sensitive</span><span class="hl-brackets">(</span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_check</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">_check</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$win</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;

        </span><span class="hl-var">$combinations</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-code">
            </span><span class="hl-number">0</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2</span><span class="hl-brackets">)</span><span class="hl-code">,
            </span><span class="hl-number">1</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">3</span><span class="hl-code">, </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-brackets">)</span><span class="hl-code">,
            </span><span class="hl-number">2</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">6</span><span class="hl-code">, </span><span class="hl-number">7</span><span class="hl-code">, </span><span class="hl-number">8</span><span class="hl-brackets">)</span><span class="hl-code">,

            </span><span class="hl-number">3</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">3</span><span class="hl-code">, </span><span class="hl-number">6</span><span class="hl-brackets">)</span><span class="hl-code">,
            </span><span class="hl-number">4</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-number">7</span><span class="hl-brackets">)</span><span class="hl-code">,
            </span><span class="hl-number">5</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">2</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">, </span><span class="hl-number">8</span><span class="hl-brackets">)</span><span class="hl-code">,

            </span><span class="hl-number">6</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-number">8</span><span class="hl-brackets">)</span><span class="hl-code">,
            </span><span class="hl-number">7</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">2</span><span class="hl-code">, </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-number">6</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-number">8</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
        </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-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$combinations</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_label</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> ==
                    </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$combinations</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_label</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; 

                </span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$combinations</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_label</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> ==
                    </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$combinations</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-number">2</span><span class="hl-brackets">]</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_label</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; 

                </span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$combinations</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_label</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> != </span><span class="hl-quotes">&quot;</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code">

                </span><span class="hl-var">$win</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
            </span><span class="hl-brackets">}</span><span class="hl-code">
        </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">$win</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">end_dialog</span><span class="hl-brackets">(</span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-reserved">else</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-var">$win</span><span class="hl-code"> &amp;&amp; </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-code"> == </span><span class="hl-number">8</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">end_dialog</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            ;
        </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">end_dialog</span><span class="hl-brackets">(</span><span class="hl-var">$win</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code">

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkDialog</span><span class="hl-brackets">(</span><span class="hl-reserved">null</span><span class="hl-code">, </span><span class="hl-var">$this</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_title</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Play Again?</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_default_size</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">100</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">100</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_modal</span><span class="hl-brackets">(</span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_transient_for</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_resizable</span><span class="hl-brackets">(</span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">destroy</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">destroy</span><span class="hl-quotes">'</span><span class="hl-brackets">)</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">$win</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$label</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkLabel</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_lbl</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> has won the game. Play again?</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$label</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkLabel</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">It's a tie! Play again?</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-var">$button_yes</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkButton</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_Yes</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$button_yes</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">clicked</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">restart</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$button_no</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkButton</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_No</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$button_no</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">clicked</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">destroy</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$vbox1</span><span class="hl-code"> = </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">vbox</span><span class="hl-code">;
        </span><span class="hl-var">$vbox2</span><span class="hl-code"> = </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">action_area</span><span class="hl-code">;
        </span><span class="hl-var">$vbox1</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$label</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$vbox2</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$button_yes</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$vbox2</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$button_no</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">show_all</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">restart</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </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">isset</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">hide_all</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-reserved">unset</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</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">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-code"> </span><span class="hl-reserved">as</span><span class="hl-code"> </span><span class="hl-var">$button</span><span class="hl-brackets">)</span><span class="hl-code">:
            </span><span class="hl-var">$button</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_label</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
            </span><span class="hl-var">$button</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_sensitive</span><span class="hl-brackets">(</span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-reserved">endforeach</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">destroy</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">Good Bye!</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
        </span><span class="hl-identifier">Gtk</span><span class="hl-code">::</span><span class="hl-identifier">main_quit</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">TicTacToe</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">Gtk</span><span class="hl-code">::</span><span class="hl-identifier">main</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

</span><span class="hl-inlinetags">?&gt;</span></pre>
</div>
</div>
<p><a href="http://www.johnciacia.com/wp-content/uploads/2009/05/tictactoe.png"><img src="http://www.johnciacia.com/wp-content/uploads/2009/05/tictactoe-300x187.png" alt="tictactoe" title="tictactoe" width="300" height="187" class="aligncenter size-medium wp-image-164" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/22/tic-tac-toe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Email Obfuscator</title>
		<link>http://www.johnciacia.com/2009/05/22/email-obfuscator/</link>
		<comments>http://www.johnciacia.com/2009/05/22/email-obfuscator/#comments</comments>
		<pubDate>Sat, 23 May 2009 00:25:21 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[obfuscator]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=156</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">&lt;!</span><span class="hl-identifier">DOCTYPE</span><span class="hl-code"> </span><span class="hl-identifier">html</span><span class="hl-code"> </span><span class="hl-identifier">PUBLIC</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">-//W3C//DTD XHTML 1.0 Transitional//EN</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</span><span class="hl-quotes">&quot;</span><span class="hl-code">&gt;
&lt;</span><span class="hl-identifier">html</span><span class="hl-code"> </span><span class="hl-identifier">xmlns</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://www.w3.org/1999/xhtml</span><span class="hl-quotes">&quot;</span><span class="hl-code">&gt;
&lt;</span><span class="hl-identifier">head</span><span class="hl-code">&gt;
&lt;</span><span class="hl-identifier">meta</span><span class="hl-code"> </span><span class="hl-identifier">http</span><span class="hl-code">-</span><span class="hl-identifier">equiv</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">Content-Type</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-identifier">content</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">text/html; charset=utf-8</span><span class="hl-quotes">&quot;</span><span class="hl-code"> /&gt;
&lt;</span><span class="hl-identifier">title</span><span class="hl-code">&gt;</span><span class="hl-identifier">GEO</span><span class="hl-code">&lt;/</span><span class="hl-identifier">title</span><span class="hl-code">&gt;
&lt;</span><span class="hl-identifier">script</span><span class="hl-code"> </span><span class="hl-identifier">type</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">text/javascript</span><span class="hl-quotes">&quot;</span><span class="hl-code">&gt;
</span><span class="hl-comment">//</span><span class="hl-comment">&lt;![CDATA[</span><span class="hl-comment"></span><span class="hl-code">
</span><span class="hl-builtin">window</span><span class="hl-code">.</span><span class="hl-identifier">onload</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-identifier">geo</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">geo</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-comment">//</span><span class="hl-comment"> Check for browser support</span><span class="hl-comment"></span><span class="hl-code">
            </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-reserved">false</span><span class="hl-code">;
    </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">rot13</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-identifier">rot13init</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">; 

    </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">links</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">a</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">geo_decode</span><span class="hl-brackets">(</span><span class="hl-identifier">anchor</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">href</span><span class="hl-code"> = </span><span class="hl-identifier">anchor</span><span class="hl-code">.</span><span class="hl-identifier">getAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">href</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">address</span><span class="hl-code"> = </span><span class="hl-identifier">href</span><span class="hl-code">.</span><span class="hl-identifier">replace</span><span class="hl-brackets">(</span><span class="hl-code">/.*</span><span class="hl-identifier">contact</span><span class="hl-code">\/</span><span class="hl-brackets">(</span><span class="hl-brackets">[</span><span class="hl-identifier">a</span><span class="hl-code">-</span><span class="hl-identifier">z0</span><span class="hl-code">-</span><span class="hl-number">9</span><span class="hl-code">.</span><span class="hl-identifier">_</span><span class="hl-code">%-</span><span class="hl-brackets">]</span><span class="hl-code">+</span><span class="hl-brackets">)</span><span class="hl-code">\+</span><span class="hl-brackets">(</span><span class="hl-brackets">[</span><span class="hl-identifier">a</span><span class="hl-code">-</span><span class="hl-identifier">z0</span><span class="hl-code">-</span><span class="hl-number">9</span><span class="hl-code">.</span><span class="hl-identifier">_</span><span class="hl-code">%-</span><span class="hl-brackets">]</span><span class="hl-code">+</span><span class="hl-brackets">)</span><span class="hl-code">\+</span><span class="hl-brackets">(</span><span class="hl-brackets">[</span><span class="hl-identifier">a</span><span class="hl-code">-</span><span class="hl-identifier">z</span><span class="hl-code">.</span><span class="hl-brackets">]</span><span class="hl-code">+</span><span class="hl-brackets">)</span><span class="hl-code">/</span><span class="hl-identifier">i</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-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">$2</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">$3</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">linktext</span><span class="hl-code"> = </span><span class="hl-identifier">anchor</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code">;
            </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">href</span><span class="hl-code"> != </span><span class="hl-identifier">address</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
                </span><span class="hl-identifier">anchor</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">href</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">mailto:</span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-brackets">(</span><span class="hl-identifier">rot13</span><span class="hl-code"> ? </span><span class="hl-identifier">str_rot13</span><span class="hl-brackets">(</span><span class="hl-identifier">address</span><span class="hl-code">,</span><span class="hl-identifier">map</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">address</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">//</span><span class="hl-comment"> Add mailto link    </span><span class="hl-comment"></span><span class="hl-code">
                </span><span class="hl-identifier">anchor</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code"> = </span><span class="hl-identifier">linktext</span><span class="hl-code">; </span><span class="hl-comment">//</span><span class="hl-comment"> IE Fix</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">for</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">l</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> ; </span><span class="hl-identifier">l</span><span class="hl-code"> &lt; </span><span class="hl-identifier">links</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> ; </span><span class="hl-identifier">l</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-identifier">links</span><span class="hl-brackets">[</span><span class="hl-identifier">l</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">onclick</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-identifier">geo_decode</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-identifier">links</span><span class="hl-brackets">[</span><span class="hl-identifier">l</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">onmouseover</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-brackets">{</span><span class="hl-code">
                </span><span class="hl-identifier">geo_decode</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-brackets">}</span><span class="hl-code">
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">rot13</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">;

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">rot13init</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-builtin">Array</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">s</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">abcdefghijklmnopqrstuvwxyz</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-identifier">map</span><span class="hl-brackets">[</span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code">+</span><span class="hl-number">13</span><span class="hl-brackets">)</span><span class="hl-code">%</span><span class="hl-number">26</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-identifier">map</span><span class="hl-brackets">[</span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code">+</span><span class="hl-number">13</span><span class="hl-brackets">)</span><span class="hl-code">%</span><span class="hl-number">26</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">map</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">str_rot13</span><span class="hl-brackets">(</span><span class="hl-identifier">a</span><span class="hl-code">,</span><span class="hl-identifier">map</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">s</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">a</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">b</span><span class="hl-code"> = </span><span class="hl-identifier">a</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-identifier">s</span><span class="hl-code"> += </span><span class="hl-brackets">(</span><span class="hl-identifier">b</span><span class="hl-code">&gt;=</span><span class="hl-quotes">'</span><span class="hl-string">A</span><span class="hl-quotes">'</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">b</span><span class="hl-code">&lt;=</span><span class="hl-quotes">'</span><span class="hl-string">Z</span><span class="hl-quotes">'</span><span class="hl-code"> || </span><span class="hl-identifier">b</span><span class="hl-code">&gt;=</span><span class="hl-quotes">'</span><span class="hl-string">a</span><span class="hl-quotes">'</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">b</span><span class="hl-code">&lt;=</span><span class="hl-quotes">'</span><span class="hl-string">z</span><span class="hl-quotes">'</span><span class="hl-code"> ? </span><span class="hl-identifier">map</span><span class="hl-brackets">[</span><span class="hl-identifier">b</span><span class="hl-brackets">]</span><span class="hl-code"> : </span><span class="hl-identifier">b</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">s</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">
</span><span class="hl-comment">//</span><span class="hl-comment">]]&gt;</span><span class="hl-comment"></span><span class="hl-code">
&lt;/</span><span class="hl-identifier">script</span><span class="hl-code">&gt;
&lt;/</span><span class="hl-identifier">head</span><span class="hl-code">&gt;

&lt;</span><span class="hl-identifier">body</span><span class="hl-code">&gt;
&lt;?</span><span class="hl-identifier">php</span><span class="hl-code">

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">cloakmail</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">content</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">

    </span><span class="hl-identifier">preg_match_all</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">^[-a-z-A-Z-0-9\._]+@[-a-z-A-Z-0-9\._]+\.[a-z]{2,4}^</span><span class="hl-quotes">&quot;</span><span class="hl-code">, $</span><span class="hl-identifier">content</span><span class="hl-code">, $</span><span class="hl-identifier">emails</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; $</span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">count</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">emails</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">; $</span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        $</span><span class="hl-identifier">username</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">@</span><span class="hl-quotes">&quot;</span><span class="hl-code">, $</span><span class="hl-identifier">emails</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">;
        $</span><span class="hl-identifier">domain</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">.</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-identifier">str_rot13</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">username</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-brackets">)</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-identifier">count</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">domain</span><span class="hl-brackets">)</span><span class="hl-code"> &gt; </span><span class="hl-number">2</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            $</span><span class="hl-identifier">replace</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">&lt;a href=&quot;contact/</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-identifier">str_rot13</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">username</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</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-identifier">domain</span><span class="hl-brackets">[</span><span class="hl-number">0</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-identifier">domain</span><span class="hl-brackets">[</span><span class="hl-number">1</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-identifier">domain</span><span class="hl-brackets">[</span><span class="hl-number">2</span><span class="hl-brackets">]</span><span class="hl-code"> .</span><span class="hl-quotes">'</span><span class="hl-string">&quot; rel=&quot;nofollow&quot;&gt;</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-identifier">asc2html</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">emails</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">&lt;/a&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            $</span><span class="hl-identifier">replace</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">&lt;a href=&quot;contact/</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-identifier">str_rot13</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">username</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</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-identifier">domain</span><span class="hl-brackets">[</span><span class="hl-number">0</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-identifier">domain</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code"> .</span><span class="hl-quotes">'</span><span class="hl-string">&quot; rel=&quot;nofollow&quot;&gt;</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-identifier">asc2html</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">emails</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">&lt;/a&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">

        $</span><span class="hl-identifier">content</span><span class="hl-code"> = </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">emails</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">, $</span><span class="hl-identifier">replace</span><span class="hl-code">, $</span><span class="hl-identifier">content</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">return</span><span class="hl-code"> $</span><span class="hl-identifier">content</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">asc2html</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">email</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    $</span><span class="hl-identifier">html</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    $</span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">email</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; $</span><span class="hl-identifier">i</span><span class="hl-code"> &lt; $</span><span class="hl-identifier">len</span><span class="hl-code">; $</span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        $</span><span class="hl-identifier">html</span><span class="hl-code"> .= </span><span class="hl-quotes">&quot;</span><span class="hl-string">&amp;#</span><span class="hl-quotes">&quot;</span><span class="hl-code"> . </span><span class="hl-identifier">ord</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">email</span><span class="hl-brackets">[</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-reserved">return</span><span class="hl-code"> $</span><span class="hl-identifier">html</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

$</span><span class="hl-identifier">content</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">Sidewinder@anything.extreme-hq.com&lt;br /&gt;</span><span class="hl-special">\n</span><span class="hl-string">
Sidewinder@extreme-hq.com</span><span class="hl-quotes">&quot;</span><span class="hl-code">;

</span><span class="hl-identifier">echo</span><span class="hl-code"> </span><span class="hl-identifier">cloakmail</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">content</span><span class="hl-brackets">)</span><span class="hl-code">;
?&gt;
&lt;/</span><span class="hl-identifier">body</span><span class="hl-code">&gt;
&lt;/</span><span class="hl-identifier">html</span><span class="hl-code">&gt;</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/22/email-obfuscator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Binary to Decimal Conversion</title>
		<link>http://www.johnciacia.com/2009/05/21/133/</link>
		<comments>http://www.johnciacia.com/2009/05/21/133/#comments</comments>
		<pubDate>Thu, 21 May 2009 05:08:00 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[binary]]></category>
		<category><![CDATA[decimal]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=133</guid>
		<description><![CDATA[Converts a binary number to its decimal equivalent. However unlike the bindec function, this will preserve the binary/radix point. Code Usage Output Usage Output]]></description>
			<content:encoded><![CDATA[<p>Converts a binary number to its decimal equivalent. However unlike the <a href="http://us3.php.net/manual/en/function.bindec.php">bindec </a>function, this will preserve the <a href="http://en.wikipedia.org/wiki/Binary_point">binary/radix point</a>.</p>
<p><strong>Code</strong></p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">

</span><span class="hl-comment">/*</span><span class="hl-comment">*
 * Convert a binary number with our without
 * a radix point to its decimal equivalent.
 *
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">$binary The binary number to convert.
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">$output Show the calculations.
 *</span><span class="hl-inlinedoc"> @return </span><span class="hl-comment">The decimal conversion
 </span><span class="hl-comment">*/</span><span class="hl-code">
</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">bin2dec</span><span class="hl-brackets">(</span><span class="hl-var">$binary</span><span class="hl-code">, </span><span class="hl-var">$output</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-var">$N</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
    </span><span class="hl-var">$o</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-reserved">list</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$rhs</span><span class="hl-code">, </span><span class="hl-var">$lhs</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">.</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$binary</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$rhs</span><span class="hl-code"> = </span><span class="hl-identifier">strrev</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$rhs</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">strlen</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$rhs</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> ++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$d</span><span class="hl-code"> = </span><span class="hl-var">$rhs</span><span class="hl-code"> </span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code"> * </span><span class="hl-identifier">pow</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-number">2</span><span class="hl-code">, </span><span class="hl-var">$i</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$N</span><span class="hl-code"> = </span><span class="hl-var">$d</span><span class="hl-code"> + </span><span class="hl-var">$N</span><span class="hl-code">;
        </span><span class="hl-var">$o</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-var">$d</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-var">$o</span><span class="hl-code"> : </span><span class="hl-var">$o</span><span class="hl-code"> . </span><span class="hl-var">$d</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> + </span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">strlen</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$lhs</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> ++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$d</span><span class="hl-code"> = </span><span class="hl-var">$lhs</span><span class="hl-code"> </span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code"> * </span><span class="hl-identifier">pow</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-number">2</span><span class="hl-code">, - </span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> + </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$N</span><span class="hl-code"> = </span><span class="hl-var">$d</span><span class="hl-code"> + </span><span class="hl-var">$N</span><span class="hl-code">;
        </span><span class="hl-var">$o</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-var">$d</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-var">$o</span><span class="hl-code"> : </span><span class="hl-var">$o</span><span class="hl-code"> . </span><span class="hl-var">$d</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> + </span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-var">$output</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-identifier">substr</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$o</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, - </span><span class="hl-number">3</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> = </span><span class="hl-quotes">&quot;</span><span class="hl-code"> . </span><span class="hl-var">$N</span><span class="hl-code"> : </span><span class="hl-var">$N</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-inlinetags">?&gt;</span></pre>
</div>
</div>
<p><strong>Usage</strong></p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">echo bin2dec ( &quot;1011101.1000101&quot;, true );</span></pre>
</div>
</div>
<p><strong>Output</strong></p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">1 + 4 + 8 + 16 + 64 + 0.5 + 0.03125 + 0.0078125 = 93.5390625</span></pre>
</div>
</div>
<p><strong>Usage</strong></p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">echo bin2dec ( &quot;1011101.1000101&quot;);</span></pre>
</div>
</div>
<p><strong>Output</strong></p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">93.5390625</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/21/133/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Note that the MySQL client library is not bundled anymore!</title>
		<link>http://www.johnciacia.com/2009/05/09/note-that-the-mysql-client-library-is-not-bundled-anymore/</link>
		<comments>http://www.johnciacia.com/2009/05/09/note-that-the-mysql-client-library-is-not-bundled-anymore/#comments</comments>
		<pubDate>Sun, 10 May 2009 03:29:11 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=82</guid>
		<description><![CDATA[Unable to get PHP configured to my specifications using the Ubuntu repositories, I decided to install it from source. However, I kept getting the error: Note that the MySQL client library is not bundled anymore! Not wanting to install MySQL from source, I found a package in the Ubuntu repositories that installed the necessary library [...]]]></description>
			<content:encoded><![CDATA[<p>Unable to get PHP configured to my specifications using the Ubuntu repositories, I decided to install it from source. However, I kept getting the error: </p>
<blockquote><p>Note that the MySQL client library is not bundled anymore!</p></blockquote>
<p>Not wanting to install MySQL from source, I found a package in the Ubuntu repositories that installed the necessary library files.</p>
<blockquote><p>sudo apt-get install libmysqlclient15-dev</p></blockquote>
<p>After I installed that package, PHP was able to install successfully. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/09/note-that-the-mysql-client-library-is-not-bundled-anymore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>imagettftext only displays yellow text</title>
		<link>http://www.johnciacia.com/2009/05/09/imagettftext-only-displays-yellow-text/</link>
		<comments>http://www.johnciacia.com/2009/05/09/imagettftext-only-displays-yellow-text/#comments</comments>
		<pubDate>Sat, 09 May 2009 23:44:42 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[imagettftext]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[yellow]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=73</guid>
		<description><![CDATA[Lately I have been doing some work with the PHP GD library. I wanted to put text on an image so I naturally used imagettftext(). I started by copying the example code provided by the manual and intended on modifying the code to fit my needs. When I executed the code my my browser, the [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I have been doing some work with the PHP GD library. I wanted to put text on an image so I naturally used <a href="http://us2.php.net/manual/en/function.imagettftext.php">imagettftext()</a>. I started by copying the example code provided by the manual and intended on modifying the code to fit my needs. When I executed the code my my browser, the text was yellow. I took a look at the code, and the results did not match. The text should have been black. I tried adjusting the imagecolorallocate parameters to reflect a different color. However, this time with I executed the code, no text showed up. It turns out I needed configure PHP &#8211;with-freetype-dir. After a recompile with the new configuration it worked fine.</p>
<blockquote><p>./configure \<br />
&#8211;disable-magic-quotes \<br />
&#8211;enable-bcmath \<br />
&#8211;enable-sockets \<br />
&#8211;with-mysq=/usr/local \<br />
&#8211;with-apxs2=/usr/local/apache2/bin/apxs \<br />
&#8211;with-curl \<br />
&#8211;with-gd \<br />
&#8211;with-freetype-dir=/usr<br />
&#8211;with-png \<br />
&#8211;with-jpeg \<br />
&#8211;with-ttf</p></blockquote>
<p><a href="http://www.johnciacia.com/wp-content/uploads/2009/05/text1.png"><img src="http://www.johnciacia.com/wp-content/uploads/2009/05/text1-300x22.png" alt="text1" title="text1" width="300" height="22" class="alignleft size-medium wp-image-75" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/09/imagettftext-only-displays-yellow-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
