<?xml version="1.0" encoding="iso-8859-1"?>
<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>CrankBerry Blog &#187; PHP Scripts</title>
	<atom:link href="http://www.crankberryblog.com/tag/php-scripts/feed" rel="self" type="application/rss+xml" />
	<link>http://www.crankberryblog.com</link>
	<description>Sharing ideas on web design, development and the internet economy</description>
	<lastBuildDate>Thu, 24 Nov 2011 19:37:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP Cron job without using Cron tab (cron alternative with MySQL or just txt)</title>
		<link>http://www.crankberryblog.com/2010/php-cron-job-without-using-cron-tab-cron-alternative-with-mysql-or-just-txt</link>
		<comments>http://www.crankberryblog.com/2010/php-cron-job-without-using-cron-tab-cron-alternative-with-mysql-or-just-txt#comments</comments>
		<pubDate>Tue, 28 Sep 2010 00:21:49 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cron alternative]]></category>
		<category><![CDATA[cron job]]></category>
		<category><![CDATA[cron tab]]></category>
		<category><![CDATA[PHP Scripts]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=420</guid>
		<description><![CDATA[You may have the need to schedule a PHP script to run but don't know and don't want to bother to learn how to use <a href="http://www.crankberryblog.com/2009/setting-php-cron-job-with-crontab">CRON job</a>. That is ok because when I develop for smaller clients with shared hosting I tend to use a different technique anyways. Here's my alternative to running a  CRON tab.]]></description>
			<content:encoded><![CDATA[<p>You may have the need to schedule a PHP script to run but don&#039;t know and don&#039;t want to bother to learn how to use <a href="http://www.crankberryblog.com/2009/setting-php-cron-job-with-crontab">CRON job</a>. That is ok because when I develop for smaller clients with shared hosting I tend to use a different technique anyways. Here&#039;s my alternative to running a  CRON tab.</p>
<p>Its simple and many developers have mentioned it, just include the script in your scripts to run. Here&#039;s how to set this up. First of all you&#039;ll need to setup a MySQL table to store the date. If you don&#039;t have access to a MySQL database or choose not to use one, then you are being too picky. Doesn&#039;t matter, I&#039;ll work with you here. </p>
<h3>MySQL Version &#8211; Create this Table</h3>
<div class="dean_ch" style="white-space: wrap;">CREATE TABLE <span class="kw1">IF</span> NOT EXISTS cronjob <span class="br0">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; job_id bigint<span class="br0">&#40;</span><span class="nu0">20</span><span class="br0">&#41;</span> NOT <span class="kw2">NULL</span> AUTO_INCREMENT,<br />
&nbsp; &nbsp; job_name varchar<span class="br0">&#40;</span><span class="nu0">50</span><span class="br0">&#41;</span> NOT <span class="kw2">NULL</span>,<br />
&nbsp; &nbsp; job_date bigint<span class="br0">&#40;</span><span class="nu0">12</span><span class="br0">&#41;</span> NOT <span class="kw2">NULL</span>,<br />
&nbsp; &nbsp; PRIMARY <a href="http://www.php.net/key"><span class="kw3">KEY</span></a> <span class="br0">&#40;</span>job_id<span class="br0">&#41;</span>,<br />
&nbsp; &nbsp; INDEX <span class="br0">&#40;</span>job_name<span class="br0">&#41;</span>,<br />
&nbsp; &nbsp; INDEX <span class="br0">&#40;</span>job_date<span class="br0">&#41;</span><br />
<span class="br0">&#41;</span></div>
<h3>Non MySQL Version &#8211; Do This</h3>
<p>If you are not using MySQL database then create a file called cronjob.txt and just leave the content of it blank.</p>
<h2>The CRON function</h2>
<p>You&#039;ll need to have this function either in your script or in the class/object that you&#039;re using. </p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">//Cronjob Function</span><br />
<span class="kw2">function</span> cronjob <span class="br0">&#40;</span><span class="re0">$runScript</span>, <span class="re0">$runHours</span> = <span class="nu0">1</span>, <span class="re0">$database</span> = <span class="kw2">TRUE</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Get Time</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$now</span> = <a href="http://www.php.net/strtotime"><span class="kw3">strtotime</span></a><span class="br0">&#40;</span><span class="st0">&quot;now&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Name</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$runScript_name</span> = <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span><span class="st0">&quot;/[^a-zA-Z0-9-]/&quot;</span>, <span class="st0">&quot;&quot;</span>, <span class="re0">$runScript</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Convert Time</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$timePass</span> = <span class="br0">&#40;</span> <span class="nu0">60</span> * <span class="nu0">60</span> <span class="br0">&#41;</span> * <span class="re0">$runHours</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$timeLast</span> = <span class="nu0">0</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Get Passed Time</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$database</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$get_time</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span> <span class="st0">&quot;SELECT job_date FROM cronjob WHERE job_name=&#039;$runScript_name&#039; ORDER BY job_date DESC LIMIT 0, 1&quot;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$get_time_num</span> = <a href="http://www.php.net/mysql_num_rows"><span class="kw3">mysql_num_rows</span></a><span class="br0">&#40;</span><span class="re0">$get_time</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Reading</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$get_time_num</span> &gt; <span class="nu0">0</span><span class="br0">&#41;</span> <span class="re0">$timeLast</span> = <a href="http://www.php.net/mysql_result"><span class="kw3">mysql_result</span></a><span class="br0">&#40;</span> <span class="re0">$get_time</span>, <span class="nu0">0</span>, <span class="st0">&#039;job_date&#039;</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//File</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$file</span> = <span class="st0">&#039;cronjob/cronjob_&#039;</span> . <span class="re0">$runScript_name</span> . <span class="st0">&#039;.txt&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Open File</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$handle</span> = <a href="http://www.php.net/fopen"><span class="kw3">fopen</span></a><span class="br0">&#40;</span><span class="re0">$file</span>, <span class="st0">&quot;a+&quot;</span><span class="br0">&#41;</span>;&nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Time</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$get_time</span> = <a href="http://www.php.net/fread"><span class="kw3">fread</span></a><span class="br0">&#40;</span><span class="re0">$handle</span>, <span class="nu0">12</span><span class="br0">&#41;</span>;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$get_time</span> != <span class="st0">&#034;</span><span class="br0">&#41;</span> <span class="re0">$timeLast</span> = <span class="re0">$get_time</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Close</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @<a href="http://www.php.net/fclose"><span class="kw3">fclose</span></a><span class="br0">&#40;</span><span class="re0">$handle</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; </p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Run Script</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="br0">&#40;</span><span class="re0">$timeLast</span> + <span class="re0">$timePass</span><span class="br0">&#41;</span> &lt; <span class="re0">$now</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Run Script</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">include</span> <span class="br0">&#40;</span> <span class="re0">$runScript</span> <span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Ending</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$database</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Insert Time</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$insert_time</span> = @<a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span> <span class="st0">&quot;INSERT INTO cronjob(job_name, job_date) VALUES(&#039;$runScript_name&#039;, &#039;$now&#039;)&quot;</span> <span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Open File</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$handle</span> = <a href="http://www.php.net/fopen"><span class="kw3">fopen</span></a><span class="br0">&#40;</span><span class="re0">$file</span>, <span class="st0">&quot;w&quot;</span><span class="br0">&#41;</span>;&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Write</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/fwrite"><span class="kw3">fwrite</span></a><span class="br0">&#40;</span><span class="re0">$handle</span>, <span class="re0">$now</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Close File</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @<a href="http://www.php.net/fclose"><span class="kw3">fclose</span></a><span class="br0">&#40;</span><span class="re0">$handle</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">?&gt;</span></div>
<h2>Using the Function</h2>
<p>To call the cron job simple include the following line in one of the scripts that&#039;s often loaded in your site.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">//Run Job &#8211; MySQL Database Version</span><br />
cronjob <span class="br0">&#40;</span><span class="st0">&#039;function/delete_logistics.php&#039;</span>, <span class="nu0">1</span>, <span class="kw2">TRUE</span><span class="br0">&#41;</span>;</p>
<p><span class="co1">//Run Job &#8211; Txt Version</span><br />
cronjob <span class="br0">&#40;</span><span class="st0">&#039;function/delete_logistics.php&#039;</span>, <span class="nu0">1</span>, <span class="kw2">TRUE</span><span class="br0">&#41;</span>;</div>
<p>Basically you call the function cronjob and the arguements are: script name, hours to run script, and using MySQL database (TRUE for yes and FALSE for no). Say I want to run the script crankberry_awesome.php every two days using txt format. This is what I would have.</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">//Run Job</span><br />
cronjob <span class="br0">&#40;</span><span class="st0">&#039;crankberry_awesome.php&#039;</span>, <span class="nu0">48</span>, <span class="kw2">FALSE</span><span class="br0">&#41;</span>;</div>
<p>That&#039;s all there is to it. So have fun with running your crons aka scheduled PHP tasks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2010/php-cron-job-without-using-cron-tab-cron-alternative-with-mysql-or-just-txt/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Awesome image cropper/thumbnail maker script &#8211; Modified Marquee Tool</title>
		<link>http://www.crankberryblog.com/2010/awesome-image-cropperthumbnail-maker-script-modified-marquee-tool</link>
		<comments>http://www.crankberryblog.com/2010/awesome-image-cropperthumbnail-maker-script-modified-marquee-tool#comments</comments>
		<pubDate>Tue, 23 Feb 2010 17:59:31 +0000</pubDate>
		<dc:creator>Jerry Low</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Scripts]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Thumbnail]]></category>

		<guid isPermaLink="false">http://www.crankberryblog.com/?p=344</guid>
		<description><![CDATA[As I'm recoding my portfolio right now, I thought to myself - how great would it be to have a thumbnail maker tool. Some PHP or Javascript solution to crop images dynamically without the use of Photoshop. I would hate to fire up Photoshop every time I want to upload something. I'm sure you've all been there before. Anyways I landed upon a script that suited my need exactly. The <a href="http://marqueetool.net/">Rectangle Marquee Tool</a>. The tool looks great but was a bit confusing for me to get working and based on the comment for a few others too. Now I've also done some slight PHP modification to get the script working to my needs and generating the correct thumbnails. 

See what I'm mumbling on about right here:
<strong><a href="http://www.crankberryblog.com/demo/marqueetool/">Demonstration of Marquee Tool</a></strong>]]></description>
			<content:encoded><![CDATA[<p>As I&#039;m recoding my portfolio right now, I thought to myself &#8211; how great would it be to have a thumbnail maker tool. Some PHP or Javascript solution to crop images dynamically without the use of Photoshop. I would hate to fire up Photoshop every time I want to upload something. I&#039;m sure you&#039;ve all been there before. Anyways I landed upon a script that suited my need exactly. The <a href="http://marqueetool.net/">Rectangle Marquee Tool</a>. The tool looks great but was a bit confusing for me to get working and based on the comment for a few others too. Now I&#039;ve also done some slight PHP modification to get the script working to my needs and generating the correct thumbnails. </p>
<p>See what I&#039;m mumbling on about right here:<br />
<strong><a href="http://www.crankberryblog.com/demo/marqueetool/">Demonstration of Marquee Tool</a></strong></p>
<p><img src="http://www.crankberryblog.com/images/thumbnail-cropper-script.jpg" /></p>
<p>Once again I&#039;d like to clarify that I did not make the Rectangular Marquee Tool, it was written by Sergey Koksharov using certain functions of the Prototype/Scriptaculous framework. I&#039;m merely just doing some tweaks to make it work better in my circumstance. So all credits goes to Sergey and the Scriptaculous team.</p>
<p>My modification will allow you to do certain things such as:</p>
<ul>
<li>Define a input image dynamically</li>
<li>Define the output image dynamically</li>
<li>Generate a final output image</li>
</ul>
<p>I believe the PHP included in the original script was a bit dated so it wasn&#039;t working on my machine and servers that&#039;s why I made my own version.</p>
<p>So to start off you need to download the required files from: <a href="http://marqueetool.net/download/">here</a>. Then you need to extract the files into a scripts folder or whichever you prefer just remember to rename the source path after. The real files you need are:</p>
<ul>
<li>marker.css</li>
<li>prototype_reduced.js</li>
<li>rectmarquee.js</li>
</ul>
<p>Once you&#039;ve got the files extract them to the proper folders and create fresh PHP file to work with. This is the file your script will run from. I&#039;ll break down my code into chunks for you to understand, but I&#039;ll go in order so if you copy each chunk and paste them in the same order it should work. That is if you&#039;re reading this instruction right ;)</p>
<h3>Before the HTML</h3>
<p>So this piece of code starts off your whole document even before the HTML code. There&#039;s only two codes you need to modify which is the $img_src (original file) and $img_dst (final thumbnail file).</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">&lt;?php</span></p>
<p><span class="co1">//Source Image to Crop From</span><br />
<span class="re0">$img_src</span> = <span class="st0">&#039;img/&#039;</span>;</p>
<p><span class="co1">//Thumbnail Location</span><br />
<span class="re0">$img_dst</span> = <span class="st0">&#039;img/&#039;</span>;</p>
<p><span class="co1">//If you want to feed this dynamically you can use</span><br />
<span class="co1">//$_GET tags or draw them in through a database</span></p>
<p><span class="co1">//Some coding here not just for looks.</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$img_src</span>!=<span class="st0">&#034;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Check if Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Image Dimension</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<a href="http://www.php.net/getimagesize"><span class="kw3">getimagesize</span></a><span class="br0">&#40;</span><span class="re0">$img_src</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Not A Valid Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_error</span> = <span class="nu0">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Getting Image Dimension</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_dim</span> = <a href="http://www.php.net/getimagesize"><span class="kw3">getimagesize</span></a><span class="br0">&#40;</span><span class="re0">$img_src</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Verfiy This Is An Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_verify</span> = @imagecreatefromjpeg<span class="br0">&#40;</span><span class="re0">$img_src</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="re0">$img_verify</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_error</span> = <span class="nu0">1</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Getting Dimensions</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_w</span> = imagesx<span class="br0">&#40;</span><span class="re0">$img_verify</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$img_h</span> = imagesy<span class="br0">&#40;</span><span class="re0">$img_verify</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$img_error</span> == <span class="nu0">1</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#039;Not a valid image&#039;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">?&gt;</span></div>
<h3>The HTML and HEAD Tags</h3>
<p>This is the code to begin your HTML tag and your chunk of HEAD tag. Note that if you didn&#039;t place your files in the same location you have to change the source path.</p>
<div class="dean_ch" style="white-space: wrap;">&lt;html&gt;<br />
&lt;head&gt;</p>
<p>&lt;link rel=<span class="st0">&quot;stylesheet&quot;</span> type=<span class="st0">&quot;text/css&quot;</span> href=<span class="st0">&quot;css/marker.css&quot;</span> /&gt;</p>
<p>&lt;script type=<span class="st0">&quot;text/javascript&quot;</span> src=<span class="st0">&quot;scripts/prototype_reduced.js&quot;</span>&gt;&lt;/script&gt;<br />
&lt;script type=<span class="st0">&quot;text/javascript&quot;</span> src=<span class="st0">&quot;scripts/rectmarquee.js&quot;</span>&gt;&lt;/script&gt; </p>
<p>&lt;/head&gt;</p></div>
<h3>Your BODY and Closing HTML Tag</h3>
<p>So all that&#039;s left is the BODY tag. There&#039;s really no modification you need to do here except for the (don&#039;t paste this in your code in order):</p>
<div class="dean_ch" style="white-space: wrap;">coords: <span class="br0">&#123;</span>x1: <span class="nu0">0</span>, y1: <span class="nu0">0</span>, width: <span class="nu0">100</span>, height: <span class="nu0">50</span><span class="br0">&#125;</span></div>
<p>This line defines where the crop box starts and how big it should be. You can play around with it if you want. Anyways here&#039;s the coding (do paste this in).</p>
<div class="dean_ch" style="white-space: wrap;">&lt;body&gt;</p>
<p>&lt;script type=<span class="st0">&quot;text/javascript&quot;</span>&gt; &nbsp;<br />
<span class="kw2">var</span> MarqueeTool;</p>
<p><span class="kw2">function</span> onMarqueeUpdate<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> coords = MarqueeTool.getCoords<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#039;coord_x&#039;</span><span class="br0">&#41;</span>.value = coords.x1;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#039;coord_y&#039;</span><span class="br0">&#41;</span>.value = coords.y1;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#039;coord_w&#039;</span><span class="br0">&#41;</span>.value = coords.width;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#039;coord_h&#039;</span><span class="br0">&#41;</span>.value = coords.height;<br />
<span class="br0">&#125;</span></p>
<p>
<span class="kw2">function</span> onWindowLoad<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; MarqueeTool = <span class="kw2">new</span> Marquee<span class="br0">&#40;</span><span class="st0">&#039;sampleid&#039;</span>, <span class="br0">&#123;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; preview: <span class="st0">&#039;preview&#039;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; color: <span class="st0">&#039;#000&#039;</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; opacity: <span class="nu0">0.45</span>, <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; coords: <span class="br0">&#123;</span>x1: <span class="nu0">0</span>, y1: <span class="nu0">0</span>, width: <span class="nu0">100</span>, height: <span class="nu0">50</span><span class="br0">&#125;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; MarqueeTool.setOnUpdateCallback<span class="br0">&#40;</span>onMarqueeUpdate<span class="br0">&#41;</span>;</p>
<p><span class="br0">&#125;</span> </p>
<p>Event.observe<span class="br0">&#40;</span>window, <span class="st0">&#039;load&#039;</span>, onWindowLoad<span class="br0">&#41;</span>; </p>
<p><span class="kw2">&lt;/script&gt;</span> </p>
<p>&lt;div style=<span class="st0">&quot;width: &lt;?php echo $img_w; ?&gt;; height: &lt;?php echo $img_h; ?&gt;; position: relative;&quot;</span>&gt;<br />
&nbsp; &nbsp; &lt;img src=<span class="st0">&quot;&lt;?php echo $img_src; ?&gt;&quot;</span> alt=<span class="st0">&quot;&quot;</span> id=<span class="st0">&quot;sampleid&quot;</span> /&gt; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; &lt;div id=<span class="st0">&quot;preview&quot;</span> style=<span class="st0">&quot;position: absolute; right: 10px; bottom: 10px; border: 2px solid #FFF;&quot;</span>&gt;&lt;/div&gt; <br />
&lt;/div&gt;</p>
<p>&lt;form name=<span class="st0">&quot;coordsform&quot;</span> action=<span class="st0">&quot;crop.php&quot;</span> target=<span class="st0">&quot;_blank&quot;</span> method=<span class="st0">&quot;get&quot;</span>&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;img&quot;</span> value=<span class="st0">&quot;&lt;?php echo $img_src; ?&gt;&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;img_dst&quot;</span> value=<span class="st0">&quot;&lt;?php echo $img_dst; ?&gt;&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;x&quot;</span> value=<span class="st0">&quot;5&quot;</span> id=<span class="st0">&quot;coord_x&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;y&quot;</span> value=<span class="st0">&quot;0&quot;</span> id=<span class="st0">&quot;coord_y&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;w&quot;</span> value=<span class="st0">&quot;0&quot;</span> id=<span class="st0">&quot;coord_w&quot;</span> /&gt;<br />
&nbsp; &nbsp; &lt;input type=<span class="st0">&quot;hidden&quot;</span> name=<span class="st0">&quot;h&quot;</span> value=<span class="st0">&quot;0&quot;</span> id=<span class="st0">&quot;coord_h&quot;</span> /&gt;</p>
<p>&nbsp; &nbsp; <br />
&nbsp; &nbsp; &lt;input name=<span class="st0">&quot;submit&quot;</span> type=<span class="st0">&quot;submit&quot;</span> value=<span class="st0">&quot;Make Thumbnail&quot;</span>&gt;<br />
&lt;/form&gt; </p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>Now we&#039;re just about complete here. All this tool does right now is let you select an area to crop. To actually make the thumbnail you need the assistant of PHP (you can do it in JS but I prefer PHP). You need to have the GD library enabled in order for this to work. </p>
<p>At this point you need to create your last file which is named crop.php. All you need in crop.php is this:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw2">&lt;?php</span> </p>
<p><span class="co1">//Variables</span><br />
<span class="re0">$img_w</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;w&#039;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$img_h</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;h&#039;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$img_x</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;x&#039;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$img_y</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;y&#039;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$img_src</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;img&#039;</span><span class="br0">&#93;</span>;<br />
<span class="re0">$img_dst</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&#039;img_dst&#039;</span><span class="br0">&#93;</span>;</p>
<p><span class="co1">//There&#039;s a Set Thumb</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$img_w</span>&gt;<span class="nu0">0</span> &amp;&amp; <span class="re0">$img_h</span>&gt;<span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Create New Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$new_img</span> = imagecreatetruecolor<span class="br0">&#40;</span><span class="re0">$img_w</span>, <span class="re0">$img_h</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Loading The Original Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$old_img</span> = imagecreatefromjpeg<span class="br0">&#40;</span><span class="re0">$img_src</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Copying Image</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; imagecopy<span class="br0">&#40;</span><span class="re0">$new_img</span>, <span class="re0">$old_img</span>, <span class="nu0">0</span>, <span class="nu0">0</span>, <span class="re0">$img_x</span>, <span class="re0">$img_y</span>, <span class="re0">$img_w</span>, <span class="re0">$img_h</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Content-Type: image/jpeg&quot;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; @imagejpeg<span class="br0">&#40;</span><span class="re0">$new_img</span>, <span class="re0">$img_dst</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; imagejpeg<span class="br0">&#40;</span><span class="re0">$new_img</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Destroy the Old Images</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; imagedestroy<span class="br0">&#40;</span><span class="re0">$old_img</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; imagedestroy<span class="br0">&#40;</span><span class="re0">$new_img</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="kw2">?&gt;</span></div>
<p>That&#039;s it, and everything should work like planed. I&#039;ve tested this script out a few times but if anything doesn&#039;t work just let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crankberryblog.com/2010/awesome-image-cropperthumbnail-maker-script-modified-marquee-tool/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

