<?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>macouno.com &#187; Php</title>
	<atom:link href="http://www.macouno.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.macouno.com</link>
	<description>The shenanigans of Dolf J. Veenvliet</description>
	<lastBuildDate>Tue, 31 Jan 2012 13:37:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Making a category based menu with posts in wordpress 2.9.2</title>
		<link>http://www.macouno.com/2010/05/23/making-a-category-based-menu-with-posts-in-wordpress-2-9-2/</link>
		<comments>http://www.macouno.com/2010/05/23/making-a-category-based-menu-with-posts-in-wordpress-2-9-2/#comments</comments>
		<pubDate>Sun, 23 May 2010 09:07:32 +0000</pubDate>
		<dc:creator>macouno</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.macouno.com/?p=800</guid>
		<description><![CDATA[I was not entirely happy with the way wordpress handles menus for this (my own) website. I like the idea of making all the content posts so they&#8217;re bound to a date and such. Then I&#8217;d like to see them in the menu based on the category they&#8217;re in. There are category menus, and even [...]]]></description>
			<content:encoded><![CDATA[<p>I was not entirely happy with the way wordpress handles menus for this (my own) website. I like the idea of making all the content posts so they&#8217;re bound to a date and such. Then I&#8217;d like to see them in the menu based on the category they&#8217;re in. There are category menus, and even nice folding ones, but I couldn&#8217;t find one that displays all the posts per category in a nice way.</p>
<p>So I decided to hack one in myself. It&#8217;s a very nasty hack&#8230; and I just put a bunch of code in the sidebar.php of my template. But that said&#8230; it works and I now have a menu that does what I want.</p>
<p><strong>If you&#8217;d like to use this&#8230; just remember it&#8217;s a great big bad hack and very inefficient!</strong></p>
<p>Here&#8217;s the html/php code I added to my template&#8217;s sidebar.php:</p>
<div class="code"><pre class="php"><ol><li class="li1"><div class="de1"><span class="co1">// Get the id of the current post so we can give it a &quot;current&quot; class later.</span></div></li><li class="li1"><div class="de1"><span class="re0">$postid</span> = <span class="re0">$post</span>-&gt;<span class="me1">ID</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Arguments for getting all the categories</span></div></li><li class="li1"><div class="de1"><span class="re0">$args</span> = <span class="kw3">array</span><span class="br0">&#40;</span></div></li><li class="li1"><div class="de1"><span class="st0">'show_option_all'</span> &nbsp; &nbsp;=&gt; <span class="st0">''</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'orderby'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <span class="st0">'name'</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'order'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <span class="st0">'ASC'</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'show_last_update'</span> &nbsp; =&gt; <span class="nu0">0</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'style'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <span class="st0">'list'</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'show_count'</span> &nbsp; &nbsp; &nbsp; &nbsp; =&gt; <span class="nu0">0</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'hide_empty'</span> &nbsp; &nbsp; &nbsp; &nbsp; =&gt; <span class="nu0">1</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'use_desc_for_title'</span> =&gt; <span class="nu0">0</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'child_of'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&gt; <span class="nu0">0</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'feed'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&gt; <span class="st0">''</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'feed_type'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <span class="st0">''</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'feed_image'</span> &nbsp; &nbsp; &nbsp; &nbsp; =&gt; <span class="st0">''</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'exclude'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <span class="st0">''</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'exclude_tree'</span> &nbsp; &nbsp; &nbsp; =&gt; <span class="st0">''</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'include'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <span class="st0">''</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'hierarchical'</span> &nbsp; &nbsp; &nbsp; =&gt; <span class="kw2">true</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'title_li'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&gt; <span class="st0">''</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'number'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&gt; <span class="kw2">NULL</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'echo'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&gt; <span class="nu0">0</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'depth'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=&gt; <span class="nu0">0</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'current_category'</span> &nbsp; =&gt; <span class="nu0">1</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'pad_counts'</span> &nbsp; &nbsp; &nbsp; &nbsp; =&gt; <span class="nu0">0</span>,</div></li><li class="li1"><div class="de1"><span class="st0">'taxonomy'</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&gt; <span class="st0">'category'</span> <span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Get all categories (in a silly html menu)</span></div></li><li class="li1"><div class="de1"><span class="re0">$catmenu</span> = wp_list_categories<span class="br0">&#40;</span> <span class="re0">$args</span> <span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Split the menu to get all categories sepparately</span></div></li><li class="li1"><div class="de1"><span class="re0">$cats</span> = <span class="kw3">split</span><span class="br0">&#40;</span><span class="st0">'</span></div></li><li class="li1"><div class="de1"><span class="st0">&lt;li class=&quot;cat-item cat-item-'</span>, <span class="re0">$catmenu</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="re0">$catmenu</span> = <span class="st0">''</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Loop through the categories.</span></div></li><li class="li1"><div class="de1"><span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$cats</span> <span class="kw1">as</span> <span class="re0">$key</span> =&gt; <span class="re0">$cat</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$current</span> = <span class="st0">''</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Get the code and html sepparately</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">list</span><span class="br0">&#40;</span><span class="re0">$id</span>, <span class="re0">$code</span><span class="br0">&#41;</span> = <span class="kw3">split</span><span class="br0">&#40;</span><span class="st0">'&quot;&gt;&lt;a'</span>, <span class="re0">$cat</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Make sure they're there.</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$id</span> &amp;&amp; <span class="re0">$code</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// If this is the current category, then remove that text and remember for later</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">strpos</span><span class="br0">&#40;</span><span class="re0">$id</span>, <span class="st0">' current-cat'</span><span class="br0">&#41;</span> !== <span class="kw2">False</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$current</span> = <span class="st0">' current-cat'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$id</span> = <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">' current-cat'</span>, <span class="st0">''</span>, <span class="re0">$id</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// In case we got an id... and this category doesn't have sub categories.</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">is_numeric</span><span class="br0">&#40;</span><span class="re0">$id</span><span class="br0">&#41;</span> &amp;&amp; <span class="kw3">strpos</span><span class="br0">&#40;</span><span class="re0">$code</span>, <span class="st0">&quot;</span></div></li><li class="li1"><div class="de1"><span class="st0">&lt;ul class='children'&gt;&quot;</span><span class="br0">&#41;</span> === <span class="kw2">False</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Arguments for getting the categorie's posts</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$args</span> = <span class="kw3">array</span><span class="br0">&#40;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">'post_type'</span> =&gt; <span class="st0">'post'</span>,</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">'post_status'</span> =&gt; <span class="st0">'published'</span>,</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">'numberposts'</span> =&gt; <span class="nu0">-1</span>,</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">'category'</span> =&gt; <span class="re0">$id</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>; </div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Get the posts</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$myposts</span> = get_posts<span class="br0">&#40;</span><span class="re0">$args</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// If we got any posts returned</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">count</span><span class="br0">&#40;</span><span class="re0">$myposts</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Start a nice html post list</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$postlist</span> = <span class="st0">&quot;<span class="es0">\n</span>&quot;</span>.<span class="st0">'</span></div></li><li class="li1"><div class="de1"><span class="st0">&lt;ul class=&quot;posts&quot;&gt;'</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Check east post to see if it's current and add to the html</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$myposts</span> <span class="kw1">as</span> <span class="re0">$post</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$current_post</span> = <span class="st0">''</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$postid</span> == <span class="re0">$post</span>-&gt;<span class="me1">ID</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$current_post</span> = <span class="st0">' class=&quot;current-post&quot;'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$current</span> = <span class="st0">' current-cat'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$postlist</span> .= <span class="st0">&quot;<span class="es0">\n</span>&quot;</span>.<span class="st0">'</span></div></li><li class="li1"><div class="de1"><span class="st0">&lt;li'</span>.<span class="re0">$current_post</span>.<span class="st0">'&gt;&lt;a href=&quot;'</span>.get_permalink<span class="br0">&#40;</span><span class="re0">$post</span>-&gt;<span class="me1">ID</span><span class="br0">&#41;</span>.<span class="st0">'&quot;&gt;'</span>.<span class="re0">$post</span>-&gt;<span class="me1">post_title</span>.<span class="st0">'&lt;/a&gt;&lt;/li&gt;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="st0">'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$postlist</span> .= <span class="st0">&quot;<span class="es0">\n</span>&quot;</span>.<span class="st0">'&lt;/ul&gt;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="st0">'</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Add the post list to the code of the current category</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$code</span> = <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">'&lt;/a&gt;'</span>, <span class="st0">'&lt;/a&gt;'</span>.<span class="re0">$postlist</span>, <span class="re0">$code</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Put everything that was split before back together</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$cat</span> = <span class="st0">'</span></div></li><li class="li1"><div class="de1"><span class="st0">&lt;li class=&quot;cat-item cat-item-'</span>.<span class="re0">$id</span>.<span class="re0">$current</span>.<span class="st0">'&quot;&gt;&lt;a'</span>.<span class="re0">$code</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Add back into the complete category menu</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$catmenu</span> .= <span class="re0">$cat</span>;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Print out the category menu</span></div></li><li class="li1"><div class="de1"><span class="kw3">echo</span> <span class="st0">'</span></div></li><li class="li1"><div class="de1"><span class="st0">&lt;li id=&quot;menu&quot;&gt;</span></div></li><li class="li1"><div class="de1"><span class="st0">&lt;ul&gt;'</span>.<span class="re0">$catmenu</span>.<span class="st0">'&lt;/ul&gt;</span></div></li><li class="li1"><div class="de1"><span class="st0">&lt;/li&gt;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="st0">'</span>;</div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean php code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;">// Get the id of the current post so we can give it a "current" class later.
$postid = $post->ID;

// Arguments for getting all the categories
$args = array(
'show_option_all'    => '',
'orderby'            => 'name',
'order'              => 'ASC',
'show_last_update'   => 0,
'style'              => 'list',
'show_count'         => 0,
'hide_empty'         => 1,
'use_desc_for_title' => 0,
'child_of'           => 0,
'feed'               => '',
'feed_type'          => '',
'feed_image'         => '',
'exclude'            => '',
'exclude_tree'       => '',
'include'            => '',
'hierarchical'       => true,
'title_li'           => '',
'number'             => NULL,
'echo'               => 0,
'depth'              => 0,
'current_category'   => 1,
'pad_counts'         => 0,
'taxonomy'           => 'category' );

// Get all categories (in a silly html menu)
$catmenu = wp_list_categories( $args );

// Split the menu to get all categories sepparately
$cats = split('
<li class="cat-item cat-item-', $catmenu);

$catmenu = '';

// Loop through the categories.
foreach($cats as $key => $cat){

	$current = '';

	// Get the code and html sepparately
	list($id, $code) = split('"><a', $cat);

	// Make sure they're there.
	if($id &#038;&#038; $code){

		// If this is the current category, then remove that text and remember for later
		if(strpos($id, ' current-cat') !== False){
			$current = ' current-cat';
			$id = str_replace(' current-cat', '', $id);
		}

		// In case we got an id... and this category doesn't have sub categories.
		if(is_numeric($id) &#038;&#038; strpos($code, "
<ul class='children'>") === False){

			// Arguments for getting the categorie's posts
			$args = array(
				'post_type' => 'post',
				'post_status' => 'published',
				'numberposts' => -1,
				'category' => $id
				); 

			// Get the posts
			 $myposts = get_posts($args);

			 // If we got any posts returned
			 if(count($myposts)){

				// Start a nice html post list
				$postlist = "\n".'
<ul class="posts">';

				// Check east post to see if it's current and add to the html
				 foreach($myposts as $post) {
					$current_post = '';
					if($postid == $post->ID){
						$current_post = ' class="current-post"';
						$current = ' current-cat';
					}
					$postlist .= "\n".'
<li'.$current_post.'><a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a></li>

';
				 }

				 $postlist .= "\n".'</ul>

';

				// Add the post list to the code of the current category
				$code = str_replace('</a>', '</a>'.$postlist, $code);

			}

		}

		// Put everything that was split before back together
		$cat = '
<li class="cat-item cat-item-'.$id.$current.'"><a'.$code;

	}

	// Add back into the complete category menu
	$catmenu .= $cat;
}

// Print out the category menu
echo '
<li id="menu">
<ul>'.$catmenu.'</ul>
</li>

';</textarea><pre class="php">// Get the id of the current post so we can give it a "current" class later.
$postid = $post->ID;

// Arguments for getting all the categories
$args = array(
'show_option_all'    => '',
'orderby'            => 'name',
'order'              => 'ASC',
'show_last_update'   => 0,
'style'              => 'list',
'show_count'         => 0,
'hide_empty'         => 1,
'use_desc_for_title' => 0,
'child_of'           => 0,
'feed'               => '',
'feed_type'          => '',
'feed_image'         => '',
'exclude'            => '',
'exclude_tree'       => '',
'include'            => '',
'hierarchical'       => true,
'title_li'           => '',
'number'             => NULL,
'echo'               => 0,
'depth'              => 0,
'current_category'   => 1,
'pad_counts'         => 0,
'taxonomy'           => 'category' );

// Get all categories (in a silly html menu)
$catmenu = wp_list_categories( $args );

// Split the menu to get all categories sepparately
$cats = split('
<li class="cat-item cat-item-', $catmenu);

$catmenu = '';

// Loop through the categories.
foreach($cats as $key => $cat){

	$current = '';

	// Get the code and html sepparately
	list($id, $code) = split('"><a', $cat);

	// Make sure they're there.
	if($id &#038;&#038; $code){

		// If this is the current category, then remove that text and remember for later
		if(strpos($id, ' current-cat') !== False){
			$current = ' current-cat';
			$id = str_replace(' current-cat', '', $id);
		}

		// In case we got an id... and this category doesn't have sub categories.
		if(is_numeric($id) &#038;&#038; strpos($code, "
<ul class='children'>") === False){

			// Arguments for getting the categorie's posts
			$args = array(
				'post_type' => 'post',
				'post_status' => 'published',
				'numberposts' => -1,
				'category' => $id
				); 

			// Get the posts
			 $myposts = get_posts($args);

			 // If we got any posts returned
			 if(count($myposts)){

				// Start a nice html post list
				$postlist = "\n".'
<ul class="posts">';

				// Check east post to see if it's current and add to the html
				 foreach($myposts as $post) {
					$current_post = '';
					if($postid == $post->ID){
						$current_post = ' class="current-post"';
						$current = ' current-cat';
					}
					$postlist .= "\n".'
<li'.$current_post.'><a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a></li>

';
				 }

				 $postlist .= "\n".'</ul>

';

				// Add the post list to the code of the current category
				$code = str_replace('</a>', '</a>'.$postlist, $code);

			}

		}

		// Put everything that was split before back together
		$cat = '
<li class="cat-item cat-item-'.$id.$current.'"><a'.$code;

	}

	// Add back into the complete category menu
	$catmenu .= $cat;
}

// Print out the category menu
echo '
<li id="menu">
<ul>'.$catmenu.'</ul>
</li>

';</pre>
<p>And here is the javascript code I added to my template&#8217;s header.php:</p>
<div class="code"><pre class="javascript"><ol><li class="li1"><div class="de1"><span class="co1">// Initialise javascript functions using jquery</span></div></li><li class="li1"><div class="de1">jQuery<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; initMenu<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1"><span class="co1">// Start the menu functionality</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> initMenu<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Hide all the submenus by default</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; jQuery<span class="br0">&#40;</span><span class="st0">'#menu ul ul'</span><span class="br0">&#41;</span>.<span class="me1">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Find the current post and make sure all the categories it's in are also &quot;current&quot;, then show their kids.</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; jQuery<span class="br0">&#40;</span><span class="st0">'#menu .current-post'</span><span class="br0">&#41;</span>.<span class="me1">parents</span><span class="br0">&#40;</span><span class="st0">'li[id!=menu]'</span><span class="br0">&#41;</span>.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">'current-cat'</span><span class="br0">&#41;</span>.<span class="me1">children</span><span class="br0">&#40;</span><span class="st0">'ul'</span><span class="br0">&#41;</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Replace the click event of all category menu items except for &quot;news&quot;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// In stead make them fold down and up the sub menu</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; jQuery<span class="br0">&#40;</span><span class="st0">'#menu a'</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>event<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; thisItem = jQuery<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; childList = thisItem.<span class="me1">siblings</span><span class="br0">&#40;</span><span class="st0">'ul'</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>childList.<span class="me1">length</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<span class="br0">&#40;</span>thisItem.<span class="me1">html</span><span class="br0">&#40;</span><span class="br0">&#41;</span> == <span class="st0">'News'</span> &amp;&amp; childList.<span class="kw1">is</span><span class="br0">&#40;</span><span class="st0">':hidden'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; event.<span class="me1">preventDefault</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>childList.<span class="kw1">is</span><span class="br0">&#40;</span><span class="st0">':hidden'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; thisItem.<span class="me1">addClass</span><span class="br0">&#40;</span><span class="st0">'clicked'</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; childList.<span class="me1">slideDown</span><span class="br0">&#40;</span><span class="st0">'fast'</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jQuery<span class="br0">&#40;</span><span class="st0">'#menu ul:visible'</span><span class="br0">&#41;</span>.<span class="me1">each</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<span class="br0">&#40;</span>jQuery<span class="br0">&#40;</span><span class="st0">'.clicked'</span>, <span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">length</span> || jQuery<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">siblings</span><span class="br0">&#40;</span><span class="st0">'.clicked'</span><span class="br0">&#41;</span>.<span class="me1">length</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jQuery<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">slideUp</span><span class="br0">&#40;</span><span class="st0">'fast'</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; thisItem.<span class="me1">removeClass</span><span class="br0">&#40;</span><span class="st0">'clicked'</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; childList.<span class="me1">slideUp</span><span class="br0">&#40;</span><span class="st0">'fast'</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean javascript code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;">// Initialise javascript functions using jquery
jQuery(document).ready(function(){

	initMenu();

});

// Start the menu functionality
function initMenu(){
	// Hide all the submenus by default
	jQuery('#menu ul ul').hide();

	// Find the current post and make sure all the categories it's in are also "current", then show their kids.
	jQuery('#menu .current-post').parents('li[id!=menu]').addClass('current-cat').children('ul').show();

	// Replace the click event of all category menu items except for "news"
	// In stead make them fold down and up the sub menu
	jQuery('#menu a').click(function(event){

		thisItem = jQuery(this);

		childList = thisItem.siblings('ul');

		if(childList.length){

			if(!(thisItem.html() == 'News' &#038;&#038; childList.is(':hidden'))){

				event.preventDefault();

				if(childList.is(':hidden')){

					thisItem.addClass('clicked');

					childList.slideDown('fast');

					jQuery('#menu ul:visible').each(function(){

						if(!(jQuery('.clicked', this).length || jQuery(this).siblings('.clicked').length)){
							jQuery(this).slideUp('fast');
						}

					});

					thisItem.removeClass('clicked');

				}else{
					childList.slideUp('fast');
				}
			}

		}

	});
}</textarea><pre class="javascript">// Initialise javascript functions using jquery
jQuery(document).ready(function(){

	initMenu();

});

// Start the menu functionality
function initMenu(){
	// Hide all the submenus by default
	jQuery('#menu ul ul').hide();

	// Find the current post and make sure all the categories it's in are also "current", then show their kids.
	jQuery('#menu .current-post').parents('li[id!=menu]').addClass('current-cat').children('ul').show();

	// Replace the click event of all category menu items except for "news"
	// In stead make them fold down and up the sub menu
	jQuery('#menu a').click(function(event){

		thisItem = jQuery(this);

		childList = thisItem.siblings('ul');

		if(childList.length){

			if(!(thisItem.html() == 'News' &#038;&#038; childList.is(':hidden'))){

				event.preventDefault();

				if(childList.is(':hidden')){

					thisItem.addClass('clicked');

					childList.slideDown('fast');

					jQuery('#menu ul:visible').each(function(){

						if(!(jQuery('.clicked', this).length || jQuery(this).siblings('.clicked').length)){
							jQuery(this).slideUp('fast');
						}

					});

					thisItem.removeClass('clicked');

				}else{
					childList.slideUp('fast');
				}
			}

		}

	});
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.macouno.com/2010/05/23/making-a-category-based-menu-with-posts-in-wordpress-2-9-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shorten text</title>
		<link>http://www.macouno.com/2010/03/17/shorten-text/</link>
		<comments>http://www.macouno.com/2010/03/17/shorten-text/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 19:44:10 +0000</pubDate>
		<dc:creator>macouno</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.macouno.com/?p=523</guid>
		<description><![CDATA[This is a small function that shortens a string.It looks if the string is longer than a preset length, and if so cuts the text there.Then it removes the last word from the string (so your string ends neatly at a space), and adds three dots. // Shorten a text if nessecaryfunction shortenText&#40;$txt='', $len=0&#41;&#123;&#160;&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>This is a small function that shortens a string.<br />It looks if the string is longer than a preset length, and if so cuts the text there.<br />Then it removes the last word from the string (so your string ends neatly at a space), and adds three dots.</p>
<div class="code"><pre class="php"><ol><li class="li1"><div class="de1"><span class="co1">// Shorten a text if nessecary</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> shortenText<span class="br0">&#40;</span><span class="re0">$txt</span>=<span class="st0">''</span>, <span class="re0">$len</span>=<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">strlen</span><span class="br0">&#40;</span><span class="re0">$txt</span><span class="br0">&#41;</span> &gt; <span class="re0">$len</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$txt</span> = <span class="kw3">substr</span><span class="br0">&#40;</span><span class="re0">$txt</span>, <span class="nu0">0</span>, <span class="re0">$len</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$t</span> = <span class="kw3">split</span><span class="br0">&#40;</span><span class="st0">&quot;[<span class="es0">\n</span><span class="es0">\r</span><span class="es0">\t</span> ]+&quot;</span>, <span class="re0">$txt</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$t</span> = <span class="kw3">array_slice</span><span class="br0">&#40;</span><span class="re0">$t</span>, <span class="nu0">0</span>, <span class="nu0">-1</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$txt</span> = <span class="kw3">join</span><span class="br0">&#40;</span><span class="st0">' '</span>, <span class="re0">$t</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$txt</span> .= <span class="st0">'...'</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$txt</span>;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean php code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;">// Shorten a text if nessecary
function shortenText($txt='', $len=0){

	if(strlen($txt) &gt; $len){

		$txt = substr($txt, 0, $len);

		$t = split(&quot;[&#92;n&#92;r&#92;t ]+&quot;, $txt);
		$t = array_slice($t, 0, -1);
		$txt = join(' ', $t);

		$txt .= '...';

	}

	return $txt;
}</textarea><pre class="php">// Shorten a text if nessecary
function shortenText($txt='', $len=0){

	if(strlen($txt) &gt; $len){

		$txt = substr($txt, 0, $len);

		$t = split(&quot;[&#92;n&#92;r&#92;t ]+&quot;, $txt);
		$t = array_slice($t, 0, -1);
		$txt = join(' ', $t);

		$txt .= '...';

	}

	return $txt;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.macouno.com/2010/03/17/shorten-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rot13</title>
		<link>http://www.macouno.com/2010/03/17/rot13/</link>
		<comments>http://www.macouno.com/2010/03/17/rot13/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 19:42:58 +0000</pubDate>
		<dc:creator>macouno</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.macouno.com/?p=521</guid>
		<description><![CDATA[Basic rot13 function for PHP (remember that this is NOT secure encryption!).It&#8217;s built into php nowadays, but if you have an old version you may not. // Rot 13 function for older php versionsfunction rot13&#40;$text&#41;&#123;&#160; &#160; &#160; &#160; $length = strlen&#40;$text&#41;;&#160; &#160; &#160; &#160; $newtext = '';&#160; &#160; &#160; &#160; &#160;for&#40;$i = 0; $i &#60; [...]]]></description>
			<content:encoded><![CDATA[<p>Basic rot13 function for PHP (remember that this is NOT secure encryption!).<br />It&#8217;s built into php nowadays, but if you have an old version you may not.</p>
<div class="code"><pre class="php"><ol><li class="li1"><div class="de1"><span class="co1">// Rot 13 function for older php versions</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> rot13<span class="br0">&#40;</span><span class="re0">$text</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$length</span> = <span class="kw3">strlen</span><span class="br0">&#40;</span><span class="re0">$text</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$newtext</span> = <span class="st0">''</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$i</span> = <span class="nu0">0</span>; <span class="re0">$i</span> &lt; <span class="re0">$length</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$index</span> = <span class="kw3">ord</span><span class="br0">&#40;</span><span class="re0">$text</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// Rotate upper case.</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$index</span> &gt; <span class="nu0">64</span> &amp;&amp; <span class="re0">$index</span> &lt; <span class="nu0">91</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$index</span> += <span class="nu0">13</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$index</span> &gt; <span class="nu0">90</span><span class="br0">&#41;</span> <span class="re0">$index</span> -= <span class="nu0">26</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$newtext</span> .= <span class="kw3">chr</span><span class="br0">&#40;</span><span class="re0">$index</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Rotate lower case.</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re0">$index</span> &gt; <span class="nu0">96</span> &amp;&amp; <span class="re0">$index</span> &lt; <span class="nu0">123</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$index</span> += <span class="nu0">13</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$index</span> &gt; <span class="nu0">122</span><span class="br0">&#41;</span> <span class="re0">$index</span> -= <span class="nu0">26</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$newtext</span> .= <span class="kw3">chr</span><span class="br0">&#40;</span><span class="re0">$index</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span> <span class="re0">$newtext</span> .= <span class="re0">$text</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">return</span> <span class="re0">$newtext</span>;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean php code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;">// Rot 13 function for older php versions
function rot13($text){
	$length = strlen($text);
	$newtext = '';
	 for($i = 0; $i &lt; $length; $i++){
		 $index = ord($text[$i]);
		 // Rotate upper case.
		 if($index &gt; 64 &amp;&amp; $index &lt; 91){
			 $index += 13;
			 if($index &gt; 90) $index -= 26;
			 $newtext .= chr($index);
		// Rotate lower case.
		}elseif($index &gt; 96 &amp;&amp; $index &lt; 123){
			$index += 13;
			if($index &gt; 122) $index -= 26;
			$newtext .= chr($index);
		 }else{ $newtext .= $text[$i]; }
	 }
	 return $newtext;
}</textarea><pre class="php">// Rot 13 function for older php versions
function rot13($text){
	$length = strlen($text);
	$newtext = '';
	 for($i = 0; $i &lt; $length; $i++){
		 $index = ord($text[$i]);
		 // Rotate upper case.
		 if($index &gt; 64 &amp;&amp; $index &lt; 91){
			 $index += 13;
			 if($index &gt; 90) $index -= 26;
			 $newtext .= chr($index);
		// Rotate lower case.
		}elseif($index &gt; 96 &amp;&amp; $index &lt; 123){
			$index += 13;
			if($index &gt; 122) $index -= 26;
			$newtext .= chr($index);
		 }else{ $newtext .= $text[$i]; }
	 }
	 return $newtext;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.macouno.com/2010/03/17/rot13/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make a random string</title>
		<link>http://www.macouno.com/2010/03/17/make-a-random-string/</link>
		<comments>http://www.macouno.com/2010/03/17/make-a-random-string/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 19:41:56 +0000</pubDate>
		<dc:creator>macouno</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.macouno.com/?p=519</guid>
		<description><![CDATA[This is a tiny function that makes a random string of predefined length.It does not use letters and numbers that could be confusing, like O and 0. // Make a random stringfunction makeRandomString&#40;$length&#41;&#123;&#160; &#160; &#160; &#160; $str = array&#40;'a', 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'w', [...]]]></description>
			<content:encoded><![CDATA[<p>This is a tiny function that makes a random string of predefined length.<br />It does not use letters and numbers that could be confusing, like O and 0.</p>
<div class="code"><pre class="php"><ol><li class="li1"><div class="de1"><span class="co1">// Make a random string</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> makeRandomString<span class="br0">&#40;</span><span class="re0">$length</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$str</span> = <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">'a'</span>, <span class="st0">'b'</span>, <span class="st0">'c'</span>, <span class="st0">'d'</span>, <span class="st0">'f'</span>, <span class="st0">'g'</span>, <span class="st0">'h'</span>, <span class="st0">'j'</span>, <span class="st0">'k'</span>, <span class="st0">'m'</span>, <span class="st0">'n'</span>, <span class="st0">'p'</span>, <span class="st0">'q'</span>, <span class="st0">'r'</span>, <span class="st0">'s'</span>, <span class="st0">'t'</span>, <span class="st0">'w'</span>, <span class="st0">'x'</span>, <span class="st0">'y'</span>, <span class="st0">'z'</span>, <span class="st0">'A'</span>, <span class="st0">'B'</span>, <span class="st0">'C'</span>, <span class="st0">'D'</span>, <span class="st0">'E'</span>, <span class="st0">'F'</span>, <span class="st0">'G'</span>, <span class="st0">'H'</span>, <span class="st0">'J'</span>, <span class="st0">'K'</span>, <span class="st0">'M'</span>, <span class="st0">'N'</span>, <span class="st0">'P'</span>, <span class="st0">'Q'</span>, <span class="st0">'R'</span>, <span class="st0">'S'</span>, <span class="st0">'T'</span>, <span class="st0">'W'</span>, <span class="st0">'X'</span>, <span class="st0">'Y'</span>, <span class="st0">'Z'</span>, <span class="st0">'2'</span>, <span class="st0">'4'</span>, <span class="st0">'5'</span>, <span class="st0">'6'</span>, <span class="st0">'7'</span>, <span class="st0">'8'</span>, <span class="st0">'9'</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$nkeys</span> = <span class="kw3">array_rand</span><span class="br0">&#40;</span><span class="re0">$str</span>, <span class="re0">$length</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$nstr</span> = <span class="st0">''</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$nkeys</span> <span class="kw1">as</span> <span class="re0">$key</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="re0">$nstr</span> .= <span class="re0">$str</span><span class="br0">&#91;</span><span class="re0">$key</span><span class="br0">&#93;</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$nstr</span>;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean php code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;">// Make a random string
function makeRandomString($length){
	$str = array('a', 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'W', 'X', 'Y', 'Z', '2', '4', '5', '6', '7', '8', '9');
	$nkeys = array_rand($str, $length);
	$nstr = '';
	foreach($nkeys as $key){ $nstr .= $str[$key]; }
	return $nstr;
}</textarea><pre class="php">// Make a random string
function makeRandomString($length){
	$str = array('a', 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'W', 'X', 'Y', 'Z', '2', '4', '5', '6', '7', '8', '9');
	$nkeys = array_rand($str, $length);
	$nstr = '';
	foreach($nkeys as $key){ $nstr .= $str[$key]; }
	return $nstr;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.macouno.com/2010/03/17/make-a-random-string/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make image version</title>
		<link>http://www.macouno.com/2010/03/17/make-image-version/</link>
		<comments>http://www.macouno.com/2010/03/17/make-image-version/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 19:40:02 +0000</pubDate>
		<dc:creator>macouno</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.macouno.com/?p=517</guid>
		<description><![CDATA[This is a function I use to make multiple versions such as thumbnails of uploaded images.There&#8217;s three methods for resizing available in it (mask, fit &#38; limit). // Function for making a new resized copy of a file// mask makes the shortest edge match the mask, so it will be bigger than the mask, always [...]]]></description>
			<content:encoded><![CDATA[<p>This is a function I use to make multiple versions such as thumbnails of uploaded images.<br />There&#8217;s three methods for resizing available in it (mask, fit &amp; limit).</p>
<div class="code"><pre class="php"><ol><li class="li1"><div class="de1"><span class="co1">// Function for making a new resized copy of a file</span></div></li><li class="li1"><div class="de1"><span class="co1">// mask makes the shortest edge match the mask, so it will be bigger than the mask, always resizes!</span></div></li><li class="li1"><div class="de1"><span class="co1">// fit makes the longest edge match, always resizes!</span></div></li><li class="li1"><div class="de1"><span class="co1">// limit makes the image fit, but won't stretch if it's smaller.</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> makeImageVersion<span class="br0">&#40;</span><span class="re0">$newWidth</span>, <span class="re0">$newHeight</span>, <span class="re0">$filePath</span>, <span class="re0">$newName</span>, <span class="re0">$fileExtension</span>, <span class="re0">$method</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Find out the original size of the image</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">list</span><span class="br0">&#40;</span><span class="re0">$wO</span>, <span class="re0">$hO</span><span class="br0">&#41;</span> = <span class="kw3">getimagesize</span><span class="br0">&#40;</span><span class="re0">$filePath</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Get the ratios it would take to resize</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$wR</span> = <span class="re0">$newWidth</span> / <span class="re0">$wO</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$hR</span> = <span class="re0">$newHeight</span> / <span class="re0">$hO</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Figure out which ratio we need</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">switch</span><span class="br0">&#40;</span><span class="re0">$method</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">'mask'</span>:</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$wR</span> &gt; <span class="re0">$hR</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="re0">$ratio</span> = <span class="re0">$wR</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><span class="br0">&#123;</span> <span class="re0">$ratio</span> = <span class="re0">$hR</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">'limit'</span>:</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$wR</span> &lt; <span class="nu0">1</span> &amp;&amp; <span class="re0">$wR</span> &lt; <span class="re0">$hR</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="re0">$ratio</span> = <span class="re0">$wR</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re0">$hR</span> &lt; <span class="nu0">1</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="re0">$ratio</span> = <span class="re0">$hR</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><span class="br0">&#123;</span> <span class="re0">$ratio</span> = <span class="nu0">1</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">case</span> <span class="st0">'fit'</span>:</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">default</span>:</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$wR</span> &gt; <span class="re0">$hR</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="re0">$ratio</span> = <span class="re0">$hR</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><span class="br0">&#123;</span> <span class="re0">$ratio</span> = <span class="re0">$wR</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$wN</span> = <span class="kw3">round</span><span class="br0">&#40;</span><span class="re0">$wO</span> * <span class="re0">$ratio</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$hN</span> = <span class="kw3">round</span><span class="br0">&#40;</span><span class="re0">$hO</span> * <span class="re0">$ratio</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$iP</span> = imagecreatetruecolor<span class="br0">&#40;</span><span class="re0">$wN</span>, <span class="re0">$hN</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; imageAlphaBlending<span class="br0">&#40;</span><span class="re0">$iP</span>, <span class="kw2">false</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; imageSaveAlpha<span class="br0">&#40;</span><span class="re0">$iP</span>, <span class="kw2">true</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$fileExtension</span> == <span class="st0">'jpg'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> <span class="re0">$iI</span> = imagecreatefromjpeg<span class="br0">&#40;</span><span class="re0">$filePath</span><span class="br0">&#41;</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re0">$fileExtension</span> == <span class="st0">'png'</span><span class="br0">&#41;</span><span class="br0">&#123;</span>&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$iI</span> = imagecreatefrompng<span class="br0">&#40;</span><span class="re0">$filePath</span><span class="br0">&#41;</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><span class="br0">&#123;</span> <span class="re0">$iI</span> = imagecreatefromgif<span class="br0">&#40;</span><span class="re0">$filePath</span><span class="br0">&#41;</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; imagecopyresampled<span class="br0">&#40;</span><span class="re0">$iP</span>, <span class="re0">$iI</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="re0">$wN</span>, <span class="re0">$hN</span>, <span class="re0">$wO</span>, <span class="re0">$hO</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$fileExtension</span> == <span class="st0">'jpg'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> imagejpeg<span class="br0">&#40;</span><span class="re0">$iP</span>, <span class="re0">$newName</span>, <span class="nu0">90</span><span class="br0">&#41;</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re0">$fileExtension</span> == <span class="st0">'png'</span><span class="br0">&#41;</span><span class="br0">&#123;</span> imagepng<span class="br0">&#40;</span><span class="re0">$iP</span>, <span class="re0">$newName</span><span class="br0">&#41;</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><span class="br0">&#123;</span> imagegif<span class="br0">&#40;</span><span class="re0">$iP</span>, <span class="re0">$newName</span><span class="br0">&#41;</span>; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean php code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;">// Function for making a new resized copy of a file
// mask makes the shortest edge match the mask, so it will be bigger than the mask, always resizes!
// fit makes the longest edge match, always resizes!
// limit makes the image fit, but won't stretch if it's smaller.
function makeImageVersion($newWidth, $newHeight, $filePath, $newName, $fileExtension, $method){

	// Find out the original size of the image
	list($wO, $hO) = getimagesize($filePath);

	// Get the ratios it would take to resize
	$wR = $newWidth / $wO;
	$hR = $newHeight / $hO;

	// Figure out which ratio we need
	switch($method){
		case 'mask':
			if($wR &gt; $hR){ $ratio = $wR; }
			else{ $ratio = $hR; }
			break;
		case 'limit':
			if($wR &lt; 1 &amp;&amp; $wR &lt; $hR){ $ratio = $wR; }
			elseif($hR &lt; 1){ $ratio = $hR; }
			else{ $ratio = 1; }
			break;
		case 'fit':
		default:
			if($wR &gt; $hR){ $ratio = $hR; }
			else{ $ratio = $wR; }
			break;
	}

	$wN = round($wO * $ratio);
	$hN = round($hO * $ratio);

	$iP = imagecreatetruecolor($wN, $hN);
	imageAlphaBlending($iP, false);
	imageSaveAlpha($iP, true);

	if($fileExtension == 'jpg'){ $iI = imagecreatefromjpeg($filePath); }
	elseif($fileExtension == 'png'){	$iI = imagecreatefrompng($filePath); }
	else{ $iI = imagecreatefromgif($filePath); }

	imagecopyresampled($iP, $iI, 0, 0, 0, 0, $wN, $hN, $wO, $hO);

	if($fileExtension == 'jpg'){ imagejpeg($iP, $newName, 90); }
	elseif($fileExtension == 'png'){ imagepng($iP, $newName); }
	else{ imagegif($iP, $newName); }
}</textarea><pre class="php">// Function for making a new resized copy of a file
// mask makes the shortest edge match the mask, so it will be bigger than the mask, always resizes!
// fit makes the longest edge match, always resizes!
// limit makes the image fit, but won't stretch if it's smaller.
function makeImageVersion($newWidth, $newHeight, $filePath, $newName, $fileExtension, $method){

	// Find out the original size of the image
	list($wO, $hO) = getimagesize($filePath);

	// Get the ratios it would take to resize
	$wR = $newWidth / $wO;
	$hR = $newHeight / $hO;

	// Figure out which ratio we need
	switch($method){
		case 'mask':
			if($wR &gt; $hR){ $ratio = $wR; }
			else{ $ratio = $hR; }
			break;
		case 'limit':
			if($wR &lt; 1 &amp;&amp; $wR &lt; $hR){ $ratio = $wR; }
			elseif($hR &lt; 1){ $ratio = $hR; }
			else{ $ratio = 1; }
			break;
		case 'fit':
		default:
			if($wR &gt; $hR){ $ratio = $hR; }
			else{ $ratio = $wR; }
			break;
	}

	$wN = round($wO * $ratio);
	$hN = round($hO * $ratio);

	$iP = imagecreatetruecolor($wN, $hN);
	imageAlphaBlending($iP, false);
	imageSaveAlpha($iP, true);

	if($fileExtension == 'jpg'){ $iI = imagecreatefromjpeg($filePath); }
	elseif($fileExtension == 'png'){	$iI = imagecreatefrompng($filePath); }
	else{ $iI = imagecreatefromgif($filePath); }

	imagecopyresampled($iP, $iI, 0, 0, 0, 0, $wN, $hN, $wO, $hO);

	if($fileExtension == 'jpg'){ imagejpeg($iP, $newName, 90); }
	elseif($fileExtension == 'png'){ imagepng($iP, $newName); }
	else{ imagegif($iP, $newName); }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.macouno.com/2010/03/17/make-image-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>File put contents</title>
		<link>http://www.macouno.com/2010/03/17/file-put-contents/</link>
		<comments>http://www.macouno.com/2010/03/17/file-put-contents/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 19:38:27 +0000</pubDate>
		<dc:creator>macouno</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.macouno.com/?p=515</guid>
		<description><![CDATA[file_put_contents() is in php nowadays, but if you&#8217;re on an old server you may need your own.This simply checks if the function&#8217;s there, and if not it makes the function. // Replacement for file_put_contents if it doesn't existif&#40;!function_exists&#40;'file_put_contents'&#41;&#41;&#123;&#160; &#160; &#160; &#160; function file_put_contents&#40;$file, $data&#41;&#123;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $fp = fopen&#40;$file, 'w'&#41;;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>file_put_contents() is in php nowadays, but if you&#8217;re on an old server you may need your own.<br />This simply checks if the function&#8217;s there, and if not it makes the function.</p>
<div class="code"><pre class="php"><ol><li class="li1"><div class="de1"><span class="co1">// Replacement for file_put_contents if it doesn't exist</span></div></li><li class="li1"><div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span>!<span class="kw3">function_exists</span><span class="br0">&#40;</span><span class="st0">'file_put_contents'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> file_put_contents<span class="br0">&#40;</span><span class="re0">$file</span>, <span class="re0">$data</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$fp</span> = <span class="kw3">fopen</span><span class="br0">&#40;</span><span class="re0">$file</span>, <span class="st0">'w'</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">fwrite</span><span class="br0">&#40;</span><span class="re0">$fp</span>, <span class="re0">$data</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">fclose</span><span class="br0">&#40;</span><span class="re0">$fp</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean php code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;">// Replacement for file_put_contents if it doesn't exist
if(!function_exists('file_put_contents')){
	function file_put_contents($file, $data){
		$fp = fopen($file, 'w');
		fwrite($fp, $data);
		fclose($fp);
	}
}</textarea><pre class="php">// Replacement for file_put_contents if it doesn't exist
if(!function_exists('file_put_contents')){
	function file_put_contents($file, $data){
		$fp = fopen($file, 'w');
		fwrite($fp, $data);
		fclose($fp);
	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.macouno.com/2010/03/17/file-put-contents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Check url</title>
		<link>http://www.macouno.com/2010/03/17/check-url/</link>
		<comments>http://www.macouno.com/2010/03/17/check-url/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 19:36:48 +0000</pubDate>
		<dc:creator>macouno</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.macouno.com/?p=513</guid>
		<description><![CDATA[This is a function that checks to see if a url exists.Not mine btw, but for the life of me I can&#8217;t remember where I got it. // Check if a url existsfunction isValidUrl&#40;$url&#41;&#123;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $url = @parse_url&#40;$url&#41;;&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; if &#40; ! $url&#41; [...]]]></description>
			<content:encoded><![CDATA[<p>This is a function that checks to see if a url exists.<br />Not mine btw, but for the life of me I can&#8217;t remember where I got it.</p>
<div class="code"><pre class="php"><ol><li class="li1"><div class="de1"><span class="co1">// Check if a url exists</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> isValidUrl<span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$url</span> = @<span class="kw3">parse_url</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> ! <span class="re0">$url</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$url</span> = <span class="kw3">array_map</span><span class="br0">&#40;</span><span class="st0">'trim'</span>, <span class="re0">$url</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'port'</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span>!<span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'port'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> ? <span class="nu0">80</span> : <span class="br0">&#40;</span>int<span class="br0">&#41;</span><span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'port'</span><span class="br0">&#93;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$path</span> = <span class="br0">&#40;</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'path'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> ? <span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'path'</span><span class="br0">&#93;</span> : <span class="st0">''</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$path</span> == <span class="st0">''</span><span class="br0">&#41;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$path</span> = <span class="st0">'/'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$path</span> .= <span class="br0">&#40;</span> <span class="kw3">isset</span> <span class="br0">&#40;</span> <span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'query'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="st0">&quot;?$url[query]&quot;</span> : <span class="st0">''</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="kw3">isset</span> <span class="br0">&#40;</span> <span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'host'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span> AND <span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'host'</span><span class="br0">&#93;</span> != <span class="kw3">gethostbyname</span> <span class="br0">&#40;</span> <span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'host'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="kw2">PHP_VERSION</span> &gt;= <span class="nu0">5</span> <span class="br0">&#41;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$headers</span> = get_headers<span class="br0">&#40;</span><span class="st0">&quot;$url[scheme]://$url[host]:$url[port]$path&quot;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$fp</span> = <span class="kw3">fsockopen</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'host'</span><span class="br0">&#93;</span>, <span class="re0">$url</span><span class="br0">&#91;</span><span class="st0">'port'</span><span class="br0">&#93;</span>, <span class="re0">$errno</span>, <span class="re0">$errstr</span>, <span class="nu0">30</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> ! <span class="re0">$fp</span> <span class="br0">&#41;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">fputs</span><span class="br0">&#40;</span><span class="re0">$fp</span>, <span class="st0">&quot;HEAD $path HTTP/1.1<span class="es0">\r</span><span class="es0">\n</span>Host: $url[host]<span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$headers</span> = <span class="kw3">fread</span> <span class="br0">&#40;</span> <span class="re0">$fp</span>, <span class="nu0">128</span> <span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">fclose</span> <span class="br0">&#40;</span> <span class="re0">$fp</span> <span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$headers</span> = <span class="br0">&#40;</span> <span class="kw3">is_array</span> <span class="br0">&#40;</span> <span class="re0">$headers</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">implode</span> <span class="br0">&#40;</span> <span class="st0">&quot;<span class="es0">\n</span>&quot;</span>, <span class="re0">$headers</span> <span class="br0">&#41;</span> : <span class="re0">$headers</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="br0">&#40;</span> bool <span class="br0">&#41;</span> <span class="kw3">preg_match</span> <span class="br0">&#40;</span> <span class="st0">'#^HTTP/.*<span class="es0">\s</span>+[(200|301|302)]+<span class="es0">\s</span>#i'</span>, <span class="re0">$headers</span> <span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean php code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;">// Check if a url exists
function isValidUrl($url){
		$url = @parse_url($url);

		if ( ! $url) {
			return false;
		}

		$url = array_map('trim', $url);
		$url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port'];
		$path = (isset($url['path'])) ? $url['path'] : '';

		if ($path == '')
		{
			$path = '/';
		}

		$path .= ( isset ( $url['query'] ) ) ? "?$url[query]" : '';

		if ( isset ( $url['host'] ) AND $url['host'] != gethostbyname ( $url['host'] ) )
		{
			if ( PHP_VERSION >= 5 )
			{
				$headers = get_headers("$url[scheme]://$url[host]:$url[port]$path");
			}
			else
			{
				$fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30);

				if ( ! $fp )
				{
					return false;
				}
				fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n");
				$headers = fread ( $fp, 128 );
				fclose ( $fp );
			}
			$headers = ( is_array ( $headers ) ) ? implode ( "\n", $headers ) : $headers;
			return ( bool ) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers );
		}
		return false;
}</textarea><pre class="php">// Check if a url exists
function isValidUrl($url){
		$url = @parse_url($url);

		if ( ! $url) {
			return false;
		}

		$url = array_map('trim', $url);
		$url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port'];
		$path = (isset($url['path'])) ? $url['path'] : '';

		if ($path == '')
		{
			$path = '/';
		}

		$path .= ( isset ( $url['query'] ) ) ? "?$url[query]" : '';

		if ( isset ( $url['host'] ) AND $url['host'] != gethostbyname ( $url['host'] ) )
		{
			if ( PHP_VERSION >= 5 )
			{
				$headers = get_headers("$url[scheme]://$url[host]:$url[port]$path");
			}
			else
			{
				$fp = fsockopen($url['host'], $url['port'], $errno, $errstr, 30);

				if ( ! $fp )
				{
					return false;
				}
				fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n");
				$headers = fread ( $fp, 128 );
				fclose ( $fp );
			}
			$headers = ( is_array ( $headers ) ) ? implode ( "\n", $headers ) : $headers;
			return ( bool ) preg_match ( '#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers );
		}
		return false;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.macouno.com/2010/03/17/check-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make a safe url</title>
		<link>http://www.macouno.com/2010/03/17/make-a-safe-url-2/</link>
		<comments>http://www.macouno.com/2010/03/17/make-a-safe-url-2/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 19:21:42 +0000</pubDate>
		<dc:creator>macouno</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.macouno.com/?p=484</guid>
		<description><![CDATA[This is a function that checks a string and makes it work nicely for friendly urls // Make sure a url string is nicely formattedfunction makeSafeUrl&#40;$myUrl, $allowSpace=0, $allowCase=0, $allowDot=0&#41;&#123;&#160; &#160; &#160; &#160; $sSafe = 'abcdefghijklmnopqrstuvwxyz1234567890-_';&#160; &#160; &#160; &#160; $disallowed = array&#40;&#41;;&#160; &#160; &#160; &#160; $disallowed&#91;'c'&#93; = 'ç';&#160; &#160; &#160; &#160; $disallowed&#91;'n'&#93; = 'ñ';&#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>This is a function that checks a string and makes it work nicely for friendly urls</p>
<div class="code"><pre class="php"><ol><li class="li1"><div class="de1"> <span class="co1">// Make sure a url string is nicely formatted</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> makeSafeUrl<span class="br0">&#40;</span><span class="re0">$myUrl</span>, <span class="re0">$allowSpace</span>=<span class="nu0">0</span>, <span class="re0">$allowCase</span>=<span class="nu0">0</span>, <span class="re0">$allowDot</span>=<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sSafe</span> = <span class="st0">'abcdefghijklmnopqrstuvwxyz1234567890-_'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span> = <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'c'</span><span class="br0">&#93;</span> = <span class="st0">'ç'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'n'</span><span class="br0">&#93;</span> = <span class="st0">'ñ'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'y'</span><span class="br0">&#93;</span> = <span class="st0">'ýÿ'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'e'</span><span class="br0">&#93;</span> = <span class="st0">'èéêë'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'a'</span><span class="br0">&#93;</span> = <span class="st0">'àáâãäå'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'o'</span><span class="br0">&#93;</span> = <span class="st0">'ðóòôõöø'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'u'</span><span class="br0">&#93;</span> = <span class="st0">'ùúûü'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'i'</span><span class="br0">&#93;</span> = <span class="st0">'ìíîï'</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<span class="re0">$allowSpace</span><span class="br0">&#41;</span> <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'-'</span><span class="br0">&#93;</span> = <span class="st0">' '</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$allowSpace</span><span class="br0">&#41;</span> <span class="re0">$sSafe</span> .= <span class="st0">' '</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<span class="re0">$allowDot</span><span class="br0">&#41;</span> <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'-'</span><span class="br0">&#93;</span> = <span class="st0">'.'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$allowDot</span><span class="br0">&#41;</span> <span class="re0">$sSafe</span> .= <span class="st0">'.'</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$allowCase</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sSafe</span> .= <span class="st0">'ABCDEFGHIJKLMNOPQRSTUVWXYZ'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'C'</span><span class="br0">&#93;</span> = <span class="st0">'Ç'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'N'</span><span class="br0">&#93;</span> = <span class="st0">'Ñ'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'Y'</span><span class="br0">&#93;</span> = <span class="st0">'ÝŸ'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'E'</span><span class="br0">&#93;</span> = <span class="st0">'ÈÉÊË'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'A'</span><span class="br0">&#93;</span> = <span class="st0">'ÀÁÂÃÄÅ'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'O'</span><span class="br0">&#93;</span> = <span class="st0">'ÐÓÒÔÕÖØ'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'U'</span><span class="br0">&#93;</span> = <span class="st0">'ÙÚÛÜ'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$disallowed</span><span class="br0">&#91;</span><span class="st0">'I'</span><span class="br0">&#93;</span> = <span class="st0">'ÌÍÎÏ'</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$myUrl</span> = <span class="kw3">strtolower</span><span class="br0">&#40;</span><span class="re0">$myUrl</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$newString</span> = <span class="kw3">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span><span class="re0">$i</span> = <span class="nu0">0</span>; <span class="re0">$i</span>&lt;strlen<span class="br0">&#40;</span><span class="re0">$myUrl</span><span class="br0">&#41;</span>; <span class="re0">$i</span>++<span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$thisChar</span> = <span class="re0">$myUrl</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">stristr</span><span class="br0">&#40;</span><span class="re0">$sSafe</span>, <span class="re0">$thisChar</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$newString</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span> = <span class="re0">$thisChar</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">else</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$disallowed</span> <span class="kw1">as</span> <span class="re0">$key</span> =&gt; <span class="re0">$var</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">stristr</span><span class="br0">&#40;</span><span class="re0">$var</span>, <span class="re0">$thisChar</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$newString</span><span class="br0">&#91;</span><span class="re0">$i</span><span class="br0">&#93;</span> = <span class="re0">$key</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw3">implode</span><span class="br0">&#40;</span><span class="st0">''</span>, <span class="re0">$newString</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean php code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;"> // Make sure a url string is nicely formatted
function makeSafeUrl($myUrl, $allowSpace=0, $allowCase=0, $allowDot=0){
	$sSafe = 'abcdefghijklmnopqrstuvwxyz1234567890-_';
	$disallowed = array();
	$disallowed['c'] = 'ç';
	$disallowed['n'] = 'ñ';
	$disallowed['y'] = 'ýÿ';
	$disallowed['e'] = 'èéêë';
	$disallowed['a'] = 'àáâãäå';
	$disallowed['o'] = 'ðóòôõöø';
	$disallowed['u'] = 'ùúûü';
	$disallowed['i'] = 'ìíîï';

	if(!$allowSpace) $disallowed['-'] = ' ';
	if($allowSpace) $sSafe .= ' ';

	if(!$allowDot) $disallowed['-'] = '.';
	if($allowDot) $sSafe .= '.';

	if($allowCase){
		$sSafe .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
		$disallowed['C'] = 'Ç';
		$disallowed['N'] = 'Ñ';
		$disallowed['Y'] = 'ÝŸ';
		$disallowed['E'] = 'ÈÉÊË';
		$disallowed['A'] = 'ÀÁÂÃÄÅ';
		$disallowed['O'] = 'ÐÓÒÔÕÖØ';
		$disallowed['U'] = 'ÙÚÛÜ';
		$disallowed['I'] = 'ÌÍÎÏ';
	}else{
		$myUrl = strtolower($myUrl);
	}

	$newString = array();

	for($i = 0; $i<strlen($myUrl); $i++){
		$thisChar = $myUrl[$i];
		if(stristr($sSafe, $thisChar)){
			$newString[$i] = $thisChar;
		}else{
			foreach($disallowed as $key => $var){
				if(stristr($var, $thisChar)){
					$newString[$i] = $key;
				}
			}
		}
	}
	return implode('', $newString);
}</textarea><pre class="php"> // Make sure a url string is nicely formatted
function makeSafeUrl($myUrl, $allowSpace=0, $allowCase=0, $allowDot=0){
	$sSafe = 'abcdefghijklmnopqrstuvwxyz1234567890-_';
	$disallowed = array();
	$disallowed['c'] = 'ç';
	$disallowed['n'] = 'ñ';
	$disallowed['y'] = 'ýÿ';
	$disallowed['e'] = 'èéêë';
	$disallowed['a'] = 'àáâãäå';
	$disallowed['o'] = 'ðóòôõöø';
	$disallowed['u'] = 'ùúûü';
	$disallowed['i'] = 'ìíîï';

	if(!$allowSpace) $disallowed['-'] = ' ';
	if($allowSpace) $sSafe .= ' ';

	if(!$allowDot) $disallowed['-'] = '.';
	if($allowDot) $sSafe .= '.';

	if($allowCase){
		$sSafe .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
		$disallowed['C'] = 'Ç';
		$disallowed['N'] = 'Ñ';
		$disallowed['Y'] = 'ÝŸ';
		$disallowed['E'] = 'ÈÉÊË';
		$disallowed['A'] = 'ÀÁÂÃÄÅ';
		$disallowed['O'] = 'ÐÓÒÔÕÖØ';
		$disallowed['U'] = 'ÙÚÛÜ';
		$disallowed['I'] = 'ÌÍÎÏ';
	}else{
		$myUrl = strtolower($myUrl);
	}

	$newString = array();

	for($i = 0; $i<strlen($myUrl); $i++){
		$thisChar = $myUrl[$i];
		if(stristr($sSafe, $thisChar)){
			$newString[$i] = $thisChar;
		}else{
			foreach($disallowed as $key => $var){
				if(stristr($var, $thisChar)){
					$newString[$i] = $key;
				}
			}
		}
	}
	return implode('', $newString);
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.macouno.com/2010/03/17/make-a-safe-url-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is valid page</title>
		<link>http://www.macouno.com/2010/03/17/is-valid-page/</link>
		<comments>http://www.macouno.com/2010/03/17/is-valid-page/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 18:49:52 +0000</pubDate>
		<dc:creator>macouno</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.macouno.com/?p=434</guid>
		<description><![CDATA[A little function I use to double check the items in a friendly url to see if they only use valid characters. // Check if the page name is correctfunction isValidPage&#40;$page&#41;&#123;&#160; &#160; &#160; &#160; $safe = array&#40;'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', [...]]]></description>
			<content:encoded><![CDATA[<p>A little function I use to double check the items in a friendly url to see if they only use valid characters.</p>
<div class="code"><pre class="php"><ol><li class="li1"><div class="de1"><span class="co1">// Check if the page name is correct</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> isValidPage<span class="br0">&#40;</span><span class="re0">$page</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$safe</span> = <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">'a'</span>, <span class="st0">'b'</span>, <span class="st0">'c'</span>, <span class="st0">'d'</span>, <span class="st0">'e'</span>, <span class="st0">'f'</span>, <span class="st0">'g'</span>, <span class="st0">'h'</span>, <span class="st0">'i'</span>, <span class="st0">'j'</span>, <span class="st0">'k'</span>, <span class="st0">'l'</span>, <span class="st0">'m'</span>, <span class="st0">'n'</span>, <span class="st0">'o'</span>, <span class="st0">'p'</span>, <span class="st0">'q'</span>, <span class="st0">'r'</span>, <span class="st0">'s'</span>, <span class="st0">'t'</span>, <span class="st0">'u'</span>, <span class="st0">'v'</span>, <span class="st0">'w'</span>, <span class="st0">'x'</span>, <span class="st0">'y'</span>, <span class="st0">'z'</span>, <span class="st0">'1'</span>, <span class="st0">'2'</span>, <span class="st0">'3'</span>, <span class="st0">'4'</span>, <span class="st0">'5'</span>, <span class="st0">'6'</span>, <span class="st0">'7'</span>, <span class="st0">'8'</span>, <span class="st0">'9'</span>, <span class="st0">'0'</span>, <span class="st0">'-'</span>, <span class="st0">'_'</span>, <span class="st0">'.'</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$pageCheck</span> = <span class="kw3">preg_split</span><span class="br0">&#40;</span><span class="st0">'//'</span>, <span class="kw3">strtolower</span><span class="br0">&#40;</span><span class="re0">$page</span><span class="br0">&#41;</span>, <span class="nu0">-1</span>, PREG_SPLIT_NO_EMPTY<span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// Make sure that the page name has only safe variables</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$pageCheck</span> <span class="kw1">as</span> <span class="re0">$key</span> =&gt; <span class="re0">$val</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span>!<span class="kw3">in_array</span><span class="br0">&#40;</span><span class="re0">$val</span>, <span class="re0">$safe</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">return</span> <span class="kw2">false</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">true</span>;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean php code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;">// Check if the page name is correct
function isValidPage($page){
	$safe = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '_', '.');
	$pageCheck = preg_split('//', strtolower($page), -1, PREG_SPLIT_NO_EMPTY);

	// Make sure that the page name has only safe variables
	foreach($pageCheck as $key =&gt; $val){
		if(!in_array($val, $safe)) return false;
	}
	return true;
}</textarea><pre class="php">// Check if the page name is correct
function isValidPage($page){
	$safe = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '_', '.');
	$pageCheck = preg_split('//', strtolower($page), -1, PREG_SPLIT_NO_EMPTY);

	// Make sure that the page name has only safe variables
	foreach($pageCheck as $key =&gt; $val){
		if(!in_array($val, $safe)) return false;
	}
	return true;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.macouno.com/2010/03/17/is-valid-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is date</title>
		<link>http://www.macouno.com/2010/03/17/is-date/</link>
		<comments>http://www.macouno.com/2010/03/17/is-date/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 18:47:52 +0000</pubDate>
		<dc:creator>macouno</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.macouno.com/?p=431</guid>
		<description><![CDATA[See if a string is actually a date (used for friendly urls mostly) // See if a string from the url is an actual datefunction isDate&#40;$var&#41;&#123;&#160; &#160; &#160; &#160; $time = strtotime&#40;str_replace&#40;'-', ' ', $var&#41;&#41;;&#160; &#160; &#160; &#160; if&#40;$time&#41;&#123;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; if&#40;strlen&#40;$var&#41; == 8&#41;&#123;&#160; &#160; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>See if a string is actually a date (used for friendly urls mostly)</p>
<div class="code"><pre class="php"><ol><li class="li1"><div class="de1"><span class="co1">// See if a string from the url is an actual date</span></div></li><li class="li1"><div class="de1"><span class="kw2">function</span> isDate<span class="br0">&#40;</span><span class="re0">$var</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$time</span> = <span class="kw3">strtotime</span><span class="br0">&#40;</span><span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="st0">'-'</span>, <span class="st0">' '</span>, <span class="re0">$var</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$time</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">strlen</span><span class="br0">&#40;</span><span class="re0">$var</span><span class="br0">&#41;</span> == <span class="nu0">8</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw3">Array</span><span class="br0">&#40;</span><span class="st0">'month'</span>, <span class="re0">$var</span>, <span class="re0">$time</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="kw1">elseif</span><span class="br0">&#40;</span><span class="kw3">strlen</span><span class="br0">&#40;</span><span class="re0">$var</span><span class="br0">&#41;</span> == <span class="nu0">11</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw3">Array</span><span class="br0">&#40;</span><span class="st0">'day'</span>, <span class="re0">$var</span>, <span class="re0">$time</span><span class="br0">&#41;</span>;</div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li><li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div></li><li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li></ol></pre></div><p><a href="javascript: void(0);" class="showpre">Display clean php code for copying</a></p><textarea style="display: none; width: 100%; height: 120px;">// See if a string from the url is an actual date
function isDate($var){
	$time = strtotime(str_replace('-', ' ', $var));
	if($time){
		if(strlen($var) == 8){
			return Array('month', $var, $time);
		}elseif(strlen($var) == 11){
			return Array('day', $var, $time);
		}
	}
	return false;
}</textarea><pre class="php">// See if a string from the url is an actual date
function isDate($var){
	$time = strtotime(str_replace('-', ' ', $var));
	if($time){
		if(strlen($var) == 8){
			return Array('month', $var, $time);
		}elseif(strlen($var) == 11){
			return Array('day', $var, $time);
		}
	}
	return false;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.macouno.com/2010/03/17/is-date/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

