<?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>satishgaudo.com &#187; PHP</title>
	<atom:link href="http://satishgaudo.com/satblog/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://satishgaudo.com/satblog</link>
	<description>Understanding technology</description>
	<lastBuildDate>Sat, 19 Nov 2011 08:13:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Php:trim a string without cutting the word</title>
		<link>http://satishgaudo.com/satblog/2011/11/19/phptrim-a-string-without-cutting-the-word/</link>
		<comments>http://satishgaudo.com/satblog/2011/11/19/phptrim-a-string-without-cutting-the-word/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 08:13:49 +0000</pubDate>
		<dc:creator>satishgaudo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Php:trim a string without cutting the word]]></category>

		<guid isPermaLink="false">http://satishgaudo.com/satblog/?p=348</guid>
		<description><![CDATA[
			
				
			
		

function neat_trim&#40;$str, $n, $delim='...'&#41; &#123;
	   $len = strlen&#40;$str&#41;;
	   if &#40;$len &#62; $n&#41; &#123;
	       preg_match&#40;'/(.{' . $n . '}.*?)\b/', $str, $matches&#41;;
	       return rtrim&#40;$matches&#91;1&#93;&#41; . $delim;
	   &#125;
	   else &#123;
	       return $str;
	 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F11%2F19%2Fphptrim-a-string-without-cutting-the-word%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F11%2F19%2Fphptrim-a-string-without-cutting-the-word%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> neat_trim<span style="color: #009900;">&#40;</span><span style="color: #000088;">$str</span><span style="color: #339933;">,</span> <span style="color: #000088;">$n</span><span style="color: #339933;">,</span> <span style="color: #000088;">$delim</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'...'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	   <span style="color: #000088;">$len</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$str</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$len</span> <span style="color: #339933;">&gt;</span> <span style="color: #000088;">$n</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	       <span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/(.{'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$n</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'}.*?)\b/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$str</span><span style="color: #339933;">,</span> <span style="color: #000088;">$matches</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	       <span style="color: #b1b100;">return</span> <span style="color: #990000;">rtrim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$delim</span><span style="color: #339933;">;</span>
	   <span style="color: #009900;">&#125;</span>
	   <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
	       <span style="color: #b1b100;">return</span> <span style="color: #000088;">$str</span><span style="color: #339933;">;</span>
	   <span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://satishgaudo.com/satblog/2011/11/19/phptrim-a-string-without-cutting-the-word/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Php:get valid url</title>
		<link>http://satishgaudo.com/satblog/2011/11/19/phpget-valid-url/</link>
		<comments>http://satishgaudo.com/satblog/2011/11/19/phpget-valid-url/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 08:11:56 +0000</pubDate>
		<dc:creator>satishgaudo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[valid url]]></category>

		<guid isPermaLink="false">http://satishgaudo.com/satblog/?p=346</guid>
		<description><![CDATA[
			
				
			
		

function formatUrl&#40;$sDispTitle&#41;&#123;
			$sDispTitle = str_replace&#40;'-','',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;' ','-',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;',','-',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;'&#38;','',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;'/','-',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;'.','',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;'?','',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;&#34;'&#34;,'',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;&#34;!&#34;,'',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;'&#34;','',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;'%','',$sDispTitle&#41;;
			$sDispTitle = str_replace&#40;'#','',$sDispTitle&#41;;
			return $sDispTitle;
	&#125;

]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F11%2F19%2Fphpget-valid-url%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F11%2F19%2Fphpget-valid-url%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> formatUrl<span style="color: #009900;">&#40;</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">','</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&amp;'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'.'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'?'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;!&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&quot;'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$sDispTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'#'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$sDispTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #000088;">$sDispTitle</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://satishgaudo.com/satblog/2011/11/19/phpget-valid-url/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP:check if valid email using regular expression</title>
		<link>http://satishgaudo.com/satblog/2011/11/19/phpcheck-if-valid-email-using-regular-expression/</link>
		<comments>http://satishgaudo.com/satblog/2011/11/19/phpcheck-if-valid-email-using-regular-expression/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 08:08:35 +0000</pubDate>
		<dc:creator>satishgaudo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Regular expression]]></category>
		<category><![CDATA[email validation]]></category>

		<guid isPermaLink="false">http://satishgaudo.com/satblog/?p=344</guid>
		<description><![CDATA[
			
				
			
		

	function isValidEmail&#40;$email&#41;&#123;
		return eregi&#40;&#34;^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$&#34;, $email&#41;;
	&#125;

]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F11%2F19%2Fphpcheck-if-valid-email-using-regular-expression%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F11%2F19%2Fphpcheck-if-valid-email-using-regular-expression%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #000000; font-weight: bold;">function</span> isValidEmail<span style="color: #009900;">&#40;</span><span style="color: #000088;">$email</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #990000;">eregi</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$email</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://satishgaudo.com/satblog/2011/11/19/phpcheck-if-valid-email-using-regular-expression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regular expression to replace multiple white spaces with single -</title>
		<link>http://satishgaudo.com/satblog/2011/11/19/regular-expression-to-replace-multiple-white-spaces-with-single/</link>
		<comments>http://satishgaudo.com/satblog/2011/11/19/regular-expression-to-replace-multiple-white-spaces-with-single/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 07:04:58 +0000</pubDate>
		<dc:creator>satishgaudo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Regular expression]]></category>
		<category><![CDATA[Regular expression to replace multiple white spaces]]></category>

		<guid isPermaLink="false">http://satishgaudo.com/satblog/?p=342</guid>
		<description><![CDATA[
			
				
			
		

$sTitle=&#34;test    test123&#34;;
&#160;
$sTitle = preg_replace&#40;&#34;'\s+'&#34;, '-', $sTitle&#41;;
&#160;
print $sTitle;
&#160;
output:test-test123

]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F11%2F19%2Fregular-expression-to-replace-multiple-white-spaces-with-single%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F11%2F19%2Fregular-expression-to-replace-multiple-white-spaces-with-single%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$sTitle</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;test    test123&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$sTitle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;'\s+'&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'-'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$sTitle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">print</span> <span style="color: #000088;">$sTitle</span><span style="color: #339933;">;</span>
&nbsp;
output<span style="color: #339933;">:</span>test<span style="color: #339933;">-</span>test123</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://satishgaudo.com/satblog/2011/11/19/regular-expression-to-replace-multiple-white-spaces-with-single/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Uploaded media file type validation</title>
		<link>http://satishgaudo.com/satblog/2011/11/19/php-uploaded-media-file-type-validation/</link>
		<comments>http://satishgaudo.com/satblog/2011/11/19/php-uploaded-media-file-type-validation/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 06:57:20 +0000</pubDate>
		<dc:creator>satishgaudo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP: Uploaded media file type validation]]></category>

		<guid isPermaLink="false">http://satishgaudo.com/satblog/?p=339</guid>
		<description><![CDATA[
			
				
			
		

function typevalidation&#40;$uploadfiletype,$mediatype,$tmpfilename=&#34;&#34;&#41;
	&#123;
	if &#40;$tmpfilename&#41; 
	&#123;
	$sfiletype = shell_exec&#40;&#34;mimetype -bi $tmpfilename&#34;&#41;; 
	//echo &#34;In&#34;.$sfiletype;
	$typearr=explode&#40;&#34;/&#34;,$sfiletype&#41;;
	$filetype=$typearr&#91;0&#93;;
	$fileext=$typearr&#91;1&#93;;
	&#125;
&#160;
	if&#40;$uploadfiletype=='thumb'&#41;
	&#123;
		if&#40;$filetype!='image'&#41;
		&#123;
			$errmsg=&#34;errormessage1&#34;;
		&#125;
		else&#123;
		$errmsg=&#34;ok&#34;;
		&#125;
	&#125;
	else if&#40;$uploadfiletype=='media'&#41;
	&#123;
		if&#40;$mediatype==&#34;image&#34;&#41;
		&#123;
		if&#40;$filetype!='image'&#41;
		&#123;
			$errmsg=&#34;errormessage2&#34;;
		&#125;
		else
			&#123;$errmsg=&#34;ok&#34;;
			&#125;
		&#125;
		else if&#40;$mediatype==&#34;video&#34;&#41;
		&#123;
		if&#40;$filetype!='video'&#41;
		&#123;
			$errmsg=&#34;errormessage3&#34;;
		&#125;
		elseif&#40;strpos&#40;$fileext,&#34;flv&#34;&#41;===false&#41;
		&#123;
		$errmsg=&#34;errormessage4&#34;;	
		&#125;
		else
			&#123;$errmsg=&#34;ok&#34;;
			&#125;
		&#125;
	&#125;
	return $errmsg;
	&#125;

]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F11%2F19%2Fphp-uploaded-media-file-type-validation%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F11%2F19%2Fphp-uploaded-media-file-type-validation%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> typevalidation<span style="color: #009900;">&#40;</span><span style="color: #000088;">$uploadfiletype</span><span style="color: #339933;">,</span><span style="color: #000088;">$mediatype</span><span style="color: #339933;">,</span><span style="color: #000088;">$tmpfilename</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmpfilename</span><span style="color: #009900;">&#41;</span> 
	<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$sfiletype</span> <span style="color: #339933;">=</span> <span style="color: #990000;">shell_exec</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;mimetype -bi <span style="color: #006699; font-weight: bold;">$tmpfilename</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
	<span style="color: #666666; font-style: italic;">//echo &quot;In&quot;.$sfiletype;</span>
	<span style="color: #000088;">$typearr</span><span style="color: #339933;">=</span><span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$sfiletype</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$filetype</span><span style="color: #339933;">=</span><span style="color: #000088;">$typearr</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$fileext</span><span style="color: #339933;">=</span><span style="color: #000088;">$typearr</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$uploadfiletype</span><span style="color: #339933;">==</span><span style="color: #0000ff;">'thumb'</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filetype</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">'image'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$errmsg</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;errormessage1&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$errmsg</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;ok&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$uploadfiletype</span><span style="color: #339933;">==</span><span style="color: #0000ff;">'media'</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mediatype</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;image&quot;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filetype</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">'image'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$errmsg</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;errormessage2&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span>
			<span style="color: #009900;">&#123;</span><span style="color: #000088;">$errmsg</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;ok&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$mediatype</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;video&quot;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filetype</span><span style="color: #339933;">!=</span><span style="color: #0000ff;">'video'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$errmsg</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;errormessage3&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">elseif</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fileext</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;flv&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">===</span><span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$errmsg</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;errormessage4&quot;</span><span style="color: #339933;">;</span>	
		<span style="color: #009900;">&#125;</span>
		<span style="color: #b1b100;">else</span>
			<span style="color: #009900;">&#123;</span><span style="color: #000088;">$errmsg</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;ok&quot;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$errmsg</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://satishgaudo.com/satblog/2011/11/19/php-uploaded-media-file-type-validation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Php: Function to remove unwanted utf-8 chars</title>
		<link>http://satishgaudo.com/satblog/2011/08/24/php-function-to-remove-unwanted-utf-8-chars/</link>
		<comments>http://satishgaudo.com/satblog/2011/08/24/php-function-to-remove-unwanted-utf-8-chars/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 13:53:52 +0000</pubDate>
		<dc:creator>satishgaudo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[filter unwanted utf-8 chars]]></category>
		<category><![CDATA[unwanted utf-8 chars]]></category>
		<category><![CDATA[utf-8]]></category>
		<category><![CDATA[xml-xslt]]></category>

		<guid isPermaLink="false">http://satishgaudo.com/satblog/?p=329</guid>
		<description><![CDATA[
			
				
			
		
Function removes unwanted utf-8 characters  except correct ASCII &#038; UTF-8 characters (excluding 4-byte+ UTF-8 sequences).

function removeInvalidUtf8Chars&#40;$s&#41;  
&#123;
&#160;
		if&#40;empty&#40;$s&#41;&#41; return $s;
			$s = preg_match_all&#40;&#34;#[\x09\x0A\x0D\x20-\x7E]&#124;
		[\xC2-\xDF][\x80-\xBF]&#124;
		\xE0[\xA0-\xBF][\x80-\xBF]&#124;
		[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}&#124;
		\xED[\x80-\x9F][\x80-\xBF]#x&#34;, $s, $m &#41;;
			return implode&#40;&#34;&#34;,$m&#91;0&#93;&#41;; 
&#160;
&#160;
		return $s;
	&#125;

]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F08%2F24%2Fphp-function-to-remove-unwanted-utf-8-chars%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F08%2F24%2Fphp-function-to-remove-unwanted-utf-8-chars%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Function removes unwanted utf-8 characters  except correct ASCII &#038; UTF-8 characters (excluding 4-byte+ UTF-8 sequences).</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> removeInvalidUtf8Chars<span style="color: #009900;">&#40;</span><span style="color: #000088;">$s</span><span style="color: #009900;">&#41;</span>  
<span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$s</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #000088;">$s</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$s</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;#[<span style="color: #660099; font-weight: bold;">\x09</span><span style="color: #660099; font-weight: bold;">\x0A</span><span style="color: #660099; font-weight: bold;">\x0D</span><span style="color: #660099; font-weight: bold;">\x20</span>-<span style="color: #660099; font-weight: bold;">\x7E</span>]|
		[<span style="color: #660099; font-weight: bold;">\xC2</span>-<span style="color: #660099; font-weight: bold;">\xDF</span>][<span style="color: #660099; font-weight: bold;">\x80</span>-<span style="color: #660099; font-weight: bold;">\xBF</span>]|
		<span style="color: #660099; font-weight: bold;">\xE0</span>[<span style="color: #660099; font-weight: bold;">\xA0</span>-<span style="color: #660099; font-weight: bold;">\xBF</span>][<span style="color: #660099; font-weight: bold;">\x80</span>-<span style="color: #660099; font-weight: bold;">\xBF</span>]|
		[<span style="color: #660099; font-weight: bold;">\xE1</span>-<span style="color: #660099; font-weight: bold;">\xEC</span><span style="color: #660099; font-weight: bold;">\xEE</span><span style="color: #660099; font-weight: bold;">\xEF</span>][<span style="color: #660099; font-weight: bold;">\x80</span>-<span style="color: #660099; font-weight: bold;">\xBF</span>]{2}|
		<span style="color: #660099; font-weight: bold;">\xED</span>[<span style="color: #660099; font-weight: bold;">\x80</span>-<span style="color: #660099; font-weight: bold;">\x9F</span>][<span style="color: #660099; font-weight: bold;">\x80</span>-<span style="color: #660099; font-weight: bold;">\xBF</span>]#x&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$s</span><span style="color: #339933;">,</span> <span style="color: #000088;">$m</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$m</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$s</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://satishgaudo.com/satblog/2011/08/24/php-function-to-remove-unwanted-utf-8-chars/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>View counter application:source code</title>
		<link>http://satishgaudo.com/satblog/2011/05/31/view-counter-applicationsource-code/</link>
		<comments>http://satishgaudo.com/satblog/2011/05/31/view-counter-applicationsource-code/#comments</comments>
		<pubDate>Tue, 31 May 2011 13:51:53 +0000</pubDate>
		<dc:creator>satishgaudo</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://satishgaudo.com/satblog/?p=308</guid>
		<description><![CDATA[
			
				
			
		
Here is the Full source code for view counter application for counting the page views .
Please use the example.txt for how to use the application.
It uses memcache. Install the memcached daemon and php library to use it.
It uses mysql 5 and php 5.
http://satishgaudo.com/satblog/ext_img/view_counter.rar
]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F05%2F31%2Fview-counter-applicationsource-code%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F05%2F31%2Fview-counter-applicationsource-code%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Here is the Full source code for view counter application for counting the page views .<br />
Please use the example.txt for how to use the application.</p>
<p>It uses memcache. Install the memcached daemon and php library to use it.<br />
It uses mysql 5 and php 5.</p>
<h3>http://satishgaudo.com/satblog/ext_img/view_counter.rar</h3>
]]></content:encoded>
			<wfw:commentRss>http://satishgaudo.com/satblog/2011/05/31/view-counter-applicationsource-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Image resizer class: Resizes and saves image</title>
		<link>http://satishgaudo.com/satblog/2011/05/31/image-resizer-class-resizes-and-saves-image/</link>
		<comments>http://satishgaudo.com/satblog/2011/05/31/image-resizer-class-resizes-and-saves-image/#comments</comments>
		<pubDate>Tue, 31 May 2011 13:26:41 +0000</pubDate>
		<dc:creator>satishgaudo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[image resizer]]></category>
		<category><![CDATA[image resizer class php]]></category>

		<guid isPermaLink="false">http://satishgaudo.com/satblog/?p=306</guid>
		<description><![CDATA[
			
				
			
		

&#60;?php
	/*
     Purpose:   Resizes and saves image
     Requires : Requires PHP5, GD library.
     Usage Example:
                        include(&#34;classes/resize_class.php&#34;);
    [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F05%2F31%2Fimage-resizer-class-resizes-and-saves-image%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F05%2F31%2Fimage-resizer-class-resizes-and-saves-image%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
	<span style="color: #666666; font-style: italic;">/*
     Purpose:   Resizes and saves image
     Requires : Requires PHP5, GD library.
     Usage Example:
                        include(&quot;classes/resize_class.php&quot;);
                        $resizeObj = new imageResize('images/cars/large/input.jpg');
                        $resizeObj -&gt; resizeImage(150, 100, 0);
                        $resizeObj -&gt; saveImage('images/cars/large/output.jpg', 100);
&nbsp;
	*/</span>
		<span style="color: #000000; font-weight: bold;">Class</span> imageResize
		<span style="color: #009900;">&#123;</span>
			<span style="color: #666666; font-style: italic;">// *** Class variables</span>
			<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$image</span><span style="color: #339933;">;</span>
		    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$width</span><span style="color: #339933;">;</span>
		    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$height</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$imageResized</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$fileName</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">// *** Open up the file</span>
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">image</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">openImage</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fileName</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			    <span style="color: #666666; font-style: italic;">// *** Get width and height</span>
			    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">width</span>  <span style="color: #339933;">=</span> <span style="color: #990000;">imagesx</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">image</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">height</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagesy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">image</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
			<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> openImage<span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">// *** Get extension</span>
				<span style="color: #000088;">$extension</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">strrchr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #b1b100;">switch</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$extension</span><span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.jpg'</span><span style="color: #339933;">:</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.jpeg'</span><span style="color: #339933;">:</span>
						<span style="color: #000088;">$img</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">imagecreatefromjpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.gif'</span><span style="color: #339933;">:</span>
						<span style="color: #000088;">$img</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">imagecreatefromgif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.png'</span><span style="color: #339933;">:</span>
						<span style="color: #000088;">$img</span> <span style="color: #339933;">=</span> <span style="color: #339933;">@</span><span style="color: #990000;">imagecreatefrompng</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">default</span><span style="color: #339933;">:</span>
						<span style="color: #000088;">$img</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #000088;">$img</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
			<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> resizeImage<span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">,</span> <span style="color: #000088;">$option</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;auto&quot;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">// *** Get optimal width and height - based on $option</span>
				<span style="color: #000088;">$optionArray</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getDimensions</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">,</span> <span style="color: #000088;">$option</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #000088;">$optimalWidth</span>  <span style="color: #339933;">=</span> <span style="color: #000088;">$optionArray</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'optimalWidth'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$optimalHeight</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$optionArray</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'optimalHeight'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
				<span style="color: #666666; font-style: italic;">// *** Resample - create image canvas of x, y size</span>
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">imageResized</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$optimalWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$optimalHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #990000;">imagecopyresampled</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">imageResized</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">image</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$optimalWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">width</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">height</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
				<span style="color: #666666; font-style: italic;">// *** if option is 'crop', then crop too</span>
				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$option</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'crop'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">crop</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$optimalWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
			<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> getDimensions<span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">,</span> <span style="color: #000088;">$option</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
&nbsp;
			   <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$option</span><span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'exact'</span><span style="color: #339933;">:</span>
						<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">=</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'portrait'</span><span style="color: #339933;">:</span>
						<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getSizeByFixedHeight</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">=</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'landscape'</span><span style="color: #339933;">:</span>
						<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getSizeByFixedWidth</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'auto'</span><span style="color: #339933;">:</span>
						<span style="color: #000088;">$optionArray</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getSizeByAuto</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$optionArray</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'optimalWidth'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$optimalHeight</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$optionArray</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'optimalHeight'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'crop'</span><span style="color: #339933;">:</span>
						<span style="color: #000088;">$optionArray</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getOptimalCrop</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$optionArray</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'optimalWidth'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$optimalHeight</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$optionArray</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'optimalHeight'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'optimalWidth'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$optimalWidth</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'optimalHeight'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$optimalHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
			<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> getSizeByFixedHeight<span style="color: #009900;">&#40;</span><span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$ratio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">width</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">height</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$newWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$newHeight</span> <span style="color: #339933;">*</span> <span style="color: #000088;">$ratio</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> getSizeByFixedWidth<span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$ratio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">height</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">width</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$newHeight</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$newWidth</span> <span style="color: #339933;">*</span> <span style="color: #000088;">$ratio</span><span style="color: #339933;">;</span>
				<span style="color: #b1b100;">return</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> getSizeByAuto<span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">height</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">width</span><span style="color: #009900;">&#41;</span>
				<span style="color: #666666; font-style: italic;">// *** Image to be resized is wider (landscape)</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">;</span>
					<span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getSizeByFixedWidth</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">height</span> <span style="color: #339933;">&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">width</span><span style="color: #009900;">&#41;</span>
				<span style="color: #666666; font-style: italic;">// *** Image to be resized is taller (portrait)</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getSizeByFixedHeight</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">=</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #b1b100;">else</span>
				<span style="color: #666666; font-style: italic;">// *** Image to be resizerd is a square</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$newHeight</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$newWidth</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getSizeByFixedWidth</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$newHeight</span> <span style="color: #339933;">&gt;</span> <span style="color: #000088;">$newWidth</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
						<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getSizeByFixedHeight</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">=</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
						<span style="color: #666666; font-style: italic;">// *** Sqaure being resized to a square</span>
						<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">;</span>
						<span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">=</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">=</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'optimalWidth'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$optimalWidth</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'optimalHeight'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$optimalHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
			<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> getOptimalCrop<span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
&nbsp;
				<span style="color: #000088;">$heightRatio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">height</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$widthRatio</span>  <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">width</span> <span style="color: #339933;">/</span>  <span style="color: #000088;">$newWidth</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$heightRatio</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$widthRatio</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$optimalRatio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$heightRatio</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #000088;">$optimalRatio</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$widthRatio</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
&nbsp;
				<span style="color: #000088;">$optimalHeight</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">height</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$optimalRatio</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$optimalWidth</span>  <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">width</span>  <span style="color: #339933;">/</span> <span style="color: #000088;">$optimalRatio</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #b1b100;">return</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'optimalWidth'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$optimalWidth</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'optimalHeight'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$optimalHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
			<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> crop<span style="color: #009900;">&#40;</span><span style="color: #000088;">$optimalWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">// *** Find center - this will be used for the crop</span>
				<span style="color: #000088;">$cropStartX</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$optimalWidth</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$newWidth</span> <span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$cropStartY</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$optimalHeight</span><span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$newHeight</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #000088;">$crop</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">imageResized</span><span style="color: #339933;">;</span>
				<span style="color: #666666; font-style: italic;">//imagedestroy($this-&gt;imageResized);</span>
&nbsp;
				<span style="color: #666666; font-style: italic;">// *** Now crop from center to exact requested size</span>
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">imageResized</span> <span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$newWidth</span> <span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #990000;">imagecopyresampled</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">imageResized</span><span style="color: #339933;">,</span> <span style="color: #000088;">$crop</span> <span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cropStartX</span><span style="color: #339933;">,</span> <span style="color: #000088;">$cropStartY</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span> <span style="color: #339933;">,</span> <span style="color: #000088;">$newWidth</span><span style="color: #339933;">,</span> <span style="color: #000088;">$newHeight</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
			<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> saveImage<span style="color: #009900;">&#40;</span><span style="color: #000088;">$savePath</span><span style="color: #339933;">,</span> <span style="color: #000088;">$imageQuality</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;100&quot;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #666666; font-style: italic;">// *** Get extension</span>
        		<span style="color: #000088;">$extension</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strrchr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$savePath</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       			<span style="color: #000088;">$extension</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtolower</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$extension</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #b1b100;">switch</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$extension</span><span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#123;</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.jpg'</span><span style="color: #339933;">:</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.JPG'</span><span style="color: #339933;">:</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.jpeg'</span><span style="color: #339933;">:</span>
						<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">imagetypes</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> IMG_JPG<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							<span style="color: #990000;">imagejpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">imageResized</span><span style="color: #339933;">,</span> <span style="color: #000088;">$savePath</span><span style="color: #339933;">,</span> <span style="color: #000088;">$imageQuality</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
&nbsp;
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.gif'</span><span style="color: #339933;">:</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.GIF'</span><span style="color: #339933;">:</span>
						<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">imagetypes</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> IMG_GIF<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							<span style="color: #990000;">imagegif</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">imageResized</span><span style="color: #339933;">,</span> <span style="color: #000088;">$savePath</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
&nbsp;
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.png'</span><span style="color: #339933;">:</span>
					<span style="color: #b1b100;">case</span> <span style="color: #0000ff;">'.PNG'</span><span style="color: #339933;">:</span>
						<span style="color: #666666; font-style: italic;">// *** Scale quality from 0-100 to 0-9</span>
						<span style="color: #000088;">$scaleQuality</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$imageQuality</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">9</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
						<span style="color: #666666; font-style: italic;">// *** Invert quality setting as 0 is best, not 9</span>
						<span style="color: #000088;">$invertScaleQuality</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">9</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$scaleQuality</span><span style="color: #339933;">;</span>
&nbsp;
						<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">imagetypes</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span> IMG_PNG<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
							 <span style="color: #990000;">imagepng</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">imageResized</span><span style="color: #339933;">,</span> <span style="color: #000088;">$savePath</span><span style="color: #339933;">,</span> <span style="color: #000088;">$invertScaleQuality</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
&nbsp;
					<span style="color: #b1b100;">default</span><span style="color: #339933;">:</span>
						<span style="color: #666666; font-style: italic;">// *** No extension - No save.</span>
						<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
&nbsp;
				<span style="color: #990000;">imagedestroy</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">imageResized</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
&nbsp;
&nbsp;
		<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://satishgaudo.com/satblog/2011/05/31/image-resizer-class-resizes-and-saves-image/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regular expression: code to get all the anchor tags from the html code</title>
		<link>http://satishgaudo.com/satblog/2011/04/29/regular-expression-code-to-get-all-the-anchor-tags-from-the-html-code/</link>
		<comments>http://satishgaudo.com/satblog/2011/04/29/regular-expression-code-to-get-all-the-anchor-tags-from-the-html-code/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 11:30:38 +0000</pubDate>
		<dc:creator>satishgaudo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Regular expression]]></category>
		<category><![CDATA[anchor tags from html]]></category>
		<category><![CDATA[Regular Expressions]]></category>

		<guid isPermaLink="false">http://satishgaudo.com/satblog/?p=284</guid>
		<description><![CDATA[
			
				
			
		

Regular expresion used:'#&#38;lt;a\s*(?:href=[\'&#34;]([^\'&#34;]+)[\'&#34;])?\s*(?:title=[\'&#34;]([^\'&#34;]+)[\'&#34;])?.*?&#38;gt;((?:(?!&#38;lt;/a&#38;gt;).)*)&#38;lt;/a&#38;gt;#i'
&#160;
Example:
&#60;code&#62;
&#38;lt;?&#60;/code&#62;
&#160;
&#60;code&#62;$strcontent=&#34;&#38;lt;table&#38;gt;&#38;lt;tr&#38;gt;&#38;lt;td&#38;gt;&#38;lt;a href='http://satishgaudo.com' &#38;gt;satishgaudo.com&#38;lt;/a&#38;gt;&#38;lt;/td&#38;gt;&#38;lt;/tr&#38;gt;&#38;lt;tr&#38;gt;&#38;lt;td&#38;gt;&#38;lt;a href='http://satishgaudo.com/1' &#38;gt;satishgaudo.com/1&#38;lt;/a&#38;gt;&#38;lt;/td&#38;gt;&#38;lt;/tr&#38;gt;&#38;lt;/table&#38;gt;&#34;;&#60;/code&#62;
&#160;
&#60;code&#62;preg_match_all&#40;'#&#38;lt;a\s*(?:href=[\'&#34;]([^\'&#34;]+)[\'&#34;])?\s*(?:title=[\'&#34;]([^\'&#34;]+)[\'&#34;])?.*?&#38;gt;((?:(?!&#38;lt;/a&#38;gt;).)*)&#38;lt;/a&#38;gt;#i',$strcontent, $aOutput&#41;;
&#160;
print_r&#40;$aOutput&#41;;
&#160;
&#60;/code&#62;
&#160;
&#60;code&#62;?&#38;gt;
&#60;/code&#62;
Output:
&#60;pre id=&#34;line1&#34;&#62;Array
&#40;
    &#91;0&#93; =&#38;gt; Array
        &#40;
            &#91;0&#93; =&#38;gt; &#38;lt;&#60;span&#62;a&#60;/span&#62;&#60;span&#62; href&#60;/span&#62;&#60;span&#62;='&#60;/span&#62;&#60;a href=&#34;view-source:http://satishgaudo.com/&#34;&#62;http://satishgaudo.com&#60;/a&#62;&#60;span&#62;' &#60;/span&#62;&#38;gt;satishgaudo.com&#38;lt;/&#60;span&#62;a&#60;/span&#62;&#38;gt;
            &#91;1&#93; =&#38;gt; &#38;lt;&#60;span&#62;a&#60;/span&#62;&#60;span&#62; href&#60;/span&#62;&#60;span&#62;='&#60;/span&#62;&#60;a [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F04%2F29%2Fregular-expression-code-to-get-all-the-anchor-tags-from-the-html-code%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2011%2F04%2F29%2Fregular-expression-code-to-get-all-the-anchor-tags-from-the-html-code%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Regular expresion used<span style="color: #339933;">:</span><span style="color: #0000ff;">'#&amp;lt;a\s*(?:href=[\'&quot;]([^\'&quot;]+)[\'&quot;])?\s*(?:title=[\'&quot;]([^\'&quot;]+)[\'&quot;])?.*?&amp;gt;((?:(?!&amp;lt;/a&amp;gt;).)*)&amp;lt;/a&amp;gt;#i'</span>
&nbsp;
Example<span style="color: #339933;">:</span>
<span style="color: #339933;">&lt;</span>code<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>?<span style="color: #339933;">&lt;/</span>code<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>code<span style="color: #339933;">&gt;</span><span style="color: #000088;">$strcontent</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href='http://satishgaudo.com' &amp;gt;satishgaudo.com&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href='http://satishgaudo.com/1' &amp;gt;satishgaudo.com/1&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&quot;</span><span style="color: #339933;">;&lt;/</span>code<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>code<span style="color: #339933;">&gt;</span>preg_match_all<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'#&amp;lt;a\s*(?:href=[\'&quot;]([^\'&quot;]+)[\'&quot;])?\s*(?:title=[\'&quot;]([^\'&quot;]+)[\'&quot;])?.*?&amp;gt;((?:(?!&amp;lt;/a&amp;gt;).)*)&amp;lt;/a&amp;gt;#i'</span><span style="color: #339933;">,</span><span style="color: #000088;">$strcontent</span><span style="color: #339933;">,</span> <span style="color: #000088;">$aOutput</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$aOutput</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #339933;">&lt;/</span>code<span style="color: #339933;">&gt;</span>
&nbsp;
<span style="color: #339933;">&lt;</span>code<span style="color: #339933;">&gt;</span>?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>code<span style="color: #339933;">&gt;</span>
Output<span style="color: #339933;">:</span>
<span style="color: #339933;">&lt;</span>pre id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;line1&quot;</span><span style="color: #339933;">&gt;</span>Array
<span style="color: #009900;">&#40;</span>
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&lt;</span>span<span style="color: #339933;">&gt;</span>a<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;&lt;</span>span<span style="color: #339933;">&gt;</span> href<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;&lt;</span>span<span style="color: #339933;">&gt;=</span><span style="color: #0000ff;">'&lt;/span&gt;&lt;a href=&quot;view-source:http://satishgaudo.com/&quot;&gt;http://satishgaudo.com&lt;/a&gt;&lt;span&gt;'</span> <span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;&amp;</span>gt<span style="color: #339933;">;</span>satishgaudo<span style="color: #339933;">.</span>com<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;/&lt;</span>span<span style="color: #339933;">&gt;</span>a<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;&amp;</span>gt<span style="color: #339933;">;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;&lt;</span>span<span style="color: #339933;">&gt;</span>a<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;&lt;</span>span<span style="color: #339933;">&gt;</span> href<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;&lt;</span>span<span style="color: #339933;">&gt;=</span><span style="color: #0000ff;">'&lt;/span&gt;&lt;a href=&quot;view-source:http://satishgaudo.com/1&quot;&gt;http://satishgaudo.com/1&lt;/a&gt;&lt;span&gt;'</span> <span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;&amp;</span>gt<span style="color: #339933;">;</span>satishgaudo<span style="color: #339933;">.</span>com<span style="color: #339933;">/</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;/&lt;</span>span<span style="color: #339933;">&gt;</span>a<span style="color: #339933;">&lt;/</span>span<span style="color: #339933;">&gt;&amp;</span>gt<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#41;</span>
&nbsp;
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//satishgaudo.com</span>
            <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> http<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//satishgaudo.com/1</span>
        <span style="color: #009900;">&#41;</span>
&nbsp;
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#41;</span>
&nbsp;
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> satishgaudo<span style="color: #339933;">.</span>com
            <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> satishgaudo<span style="color: #339933;">.</span>com<span style="color: #339933;">/</span><span style="color: #cc66cc;">1</span>
        <span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://satishgaudo.com/satblog/2011/04/29/regular-expression-code-to-get-all-the-anchor-tags-from-the-html-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP function to close html tags if not closed properly</title>
		<link>http://satishgaudo.com/satblog/2010/09/24/php-function-to-close-html-tags-if-not-closed-properly/</link>
		<comments>http://satishgaudo.com/satblog/2010/09/24/php-function-to-close-html-tags-if-not-closed-properly/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 10:41:14 +0000</pubDate>
		<dc:creator>satishgaudo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[close tags]]></category>
		<category><![CDATA[unclosed html tags]]></category>

		<guid isPermaLink="false">http://satishgaudo.com/satblog/?p=265</guid>
		<description><![CDATA[
			
				
			
		

/**
* closetags
* used to close html tags incase not closed properly
* @param string $html - html string
* @access public
*/
&#160;
function closetags&#40;$html&#41;&#123;
$arr_single_tags = array&#40;'meta','img','br','link','area'&#41;;
preg_match_all&#40;'#&#38;lt;([a-z]+)(?: .*)?(?&#38;lt;![/&#124;/ ])\s*&#38;gt;#iU', $html, $result&#41;;
$openedtags = $result&#91;1&#93;;
preg_match_all&#40;'#&#38;lt;/([a-z]+)&#38;gt;#iU', $html, $result&#41;;
$closedtags = $result&#91;1&#93;;
$len_opened = count&#40;$openedtags&#41;;
if &#40;count&#40;$closedtags&#41; == $len_opened&#41;&#123;
return $html;
&#125;
$openedtags = array_reverse&#40;$openedtags&#41;;
//re arrange open tags and closed tags for count
$aOpenedtagsCnt=Array&#40;&#41;;
$aClosedtagsCnt=Array&#40;&#41;;
if&#40;is_array&#40;$openedtags&#41;&#41;&#123;
foreach&#40;$openedtags as $iK =&#38;gt;$sTag&#41;&#123;
if&#40;!isset&#40;$aOpenedtagsCnt&#91;$sTag&#93;&#41;&#41;&#123;
$aOpenedtagsCnt&#91;$sTag&#93;=1;
&#125;else&#123;
$aOpenedtagsCnt&#91;$sTag&#93;++;
&#125;
&#125;
&#125;
if&#40;is_array&#40;$closedtags&#41;&#41;&#123;
foreach&#40;$closedtags as $iK =&#38;gt;$sTag&#41;&#123;
if&#40;!isset&#40;$aClosedtagsCnt&#91;$sTag&#93;&#41;&#41;&#123;
$aClosedtagsCnt&#91;$sTag&#93;=1;
&#125;else&#123;
$aClosedtagsCnt&#91;$sTag&#93;++;
&#125;
&#125;
&#125;
for &#40;$i=0; [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2010%2F09%2F24%2Fphp-function-to-close-html-tags-if-not-closed-properly%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fsatishgaudo.com%2Fsatblog%2F2010%2F09%2F24%2Fphp-function-to-close-html-tags-if-not-closed-properly%2F&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
* closetags
* used to close html tags incase not closed properly
* @param string $html - html string
* @access public
*/</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> closetags<span style="color: #009900;">&#40;</span><span style="color: #000088;">$html</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$arr_single_tags</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'meta'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'img'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'br'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'link'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'area'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'#&amp;lt;([a-z]+)(?: .*)?(?&amp;lt;![/|/ ])\s*&amp;gt;#iU'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$html</span><span style="color: #339933;">,</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$openedtags</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'#&amp;lt;/([a-z]+)&amp;gt;#iU'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$html</span><span style="color: #339933;">,</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$closedtags</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$len_opened</span> <span style="color: #339933;">=</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$openedtags</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$closedtags</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$len_opened</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$html</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$openedtags</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_reverse</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$openedtags</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//re arrange open tags and closed tags for count</span>
<span style="color: #000088;">$aOpenedtagsCnt</span><span style="color: #339933;">=</span><span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$aClosedtagsCnt</span><span style="color: #339933;">=</span><span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$openedtags</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$openedtags</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$iK</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$sTag</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$aOpenedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$sTag</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$aOpenedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$sTag</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$aOpenedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$sTag</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$closedtags</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$closedtags</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$iK</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$sTag</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$aClosedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$sTag</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$aClosedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$sTag</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$aClosedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$sTag</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #000088;">$len_opened</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$openedtags</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #000088;">$arr_single_tags</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$aOpenedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$openedtags</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">!=</span><span style="color: #000088;">$aClosedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$openedtags</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$html</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&amp;lt;/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$openedtags</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;gt;'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$aClosedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$openedtags</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$aClosedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$openedtags</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$aClosedtagsCnt</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$openedtags</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$html</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Say we have input string as: &lt;i&gt;&lt;i&gt;rr&lt;b&gt;rrr &lt;i&gt; dddd&lt;/i&gt; &lt;i&gt; dddddd&lt;/i&gt;  &lt;i&gt;ssss</p>
<p>Output would be :</p>
<pre id="line1">&lt;i&gt;&lt;i&gt;rr&lt;b&gt;rrr &lt;i&gt; dddd&lt;/i&gt; &lt;i&gt; dddddd&lt;/i&gt;  &lt;i&gt;ssss&lt;/i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/i&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://satishgaudo.com/satblog/2010/09/24/php-function-to-close-html-tags-if-not-closed-properly/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

