<?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>For Your Lungs Only &#187; php</title>
	<atom:link href="http://www.foryourlungsonly.net/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.foryourlungsonly.net</link>
	<description>Everything you wanted to know about web development, espresso, typography, nicotine, user interface design, whiskey, javascript, php, cascading style sheets, css hacks, beer, prototype, jquery, mysql, usability and accessiblity (but were afraid to ask)</description>
	<lastBuildDate>Mon, 14 Jun 2010 22:08:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>PHP, Javascript and WordPress English to Spanish Language Translation Samples</title>
		<link>http://www.foryourlungsonly.net/2010/04/24/php-javascript-and-wordpress-english-to-spanish-language-translation-samples/</link>
		<comments>http://www.foryourlungsonly.net/2010/04/24/php-javascript-and-wordpress-english-to-spanish-language-translation-samples/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 03:13:16 +0000</pubDate>
		<dc:creator>Jonathan Harriot</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[gnu gpl]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress plugins]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.foryourlungsonly.net/?p=117</guid>
		<description><![CDATA[First off, download the gTranslate PHP class and read about it. Now let&#8217;s start to play with it. Let&#8217;s start off simple: &#60;?php require("GTranslate.php"); try { $gt = new Gtranslate; echo "Translating [Hello World] from English to German =&#62; ".$gt-&#62;english_to_german("hello world")."&#60;br/&#62;"; echo "Translating [Ciao mondo] Italian to English =&#62; ".$gt-&#62;it_to_en("Ciao mondo")."&#60;br/&#62;"; } catch (GTranslateException $ge) [...]]]></description>
			<content:encoded><![CDATA[<p>First off, <a href="http://gtranslate-api-php.googlecode.com/files/gtranslate-api-php-0.7.5.zip">download the gTranslate PHP class</a> and <a href="http://code.google.com/p/gtranslate-api-php/">read about it</a>. Now let&#8217;s start to play with it.</p>
<p>Let&#8217;s start off simple:<span id="more-117"></span></p>
<pre><em>&lt;?php
require("GTranslate.php");
try {
	$gt = new Gtranslate;
	echo "Translating [Hello World] from English to German =&gt; ".$gt-&gt;english_to_german("hello world")."&lt;br/&gt;";
	echo "Translating [Ciao mondo] Italian to English =&gt; ".$gt-&gt;it_to_en("Ciao mondo")."&lt;br/&gt;";
} catch (GTranslateException $ge)  {
	echo $ge-&gt;getMessage();
}
?&gt;</em></pre>
<p><strong>Create a Function to Detect Language:</strong><br />
First Example for Ben&#8217;s Translator Plugin (Using a Session Variable):</p>
<pre><em>&lt;?php
function translateThis ($myText) {
	$pageURL = 'http';
	if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
		$pageURL .= "://";
	if ($_SERVER["SERVER_PORT"] != "80") {
		$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
	} else {
		$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
	}
	//return $pageURL;
	$myVal = substr($pageURL, 0, 28);
	if ($myVal == "http://welovecakephp.com/es/") {
		$_SESSION['pLang'] = "ES";
	} else {
		$_SESSION['pLang'] = "EN";
	}
	if ($_SESSION['pLang'] == "ES") {
		require("GTranslate.php");
		/*
			these variable can be used in conjunction with JS dynamic content to make translated content easier
			ie: change image folders/forms/etc basically things that WordPress plugins might screw up
		*/
		$myLang = "es";
		$myLangDir = "/es";
		try {
			$gt = new Gtranslate;
			$gt-&gt;setRequestType('curl');
			echo $gt-&gt;en_to_es($myText);
		} catch (GTranslateException $ge) {
			echo $ge-&gt;getMessage();
		}
	} else {
		$myLang = "en";
		$myLangDir = "";
	}
}
?&gt;</em></pre>
<p><em>Second example (Using a Cookie):</em></p>
<pre><em>&lt;?php if ($_COOKIE['pLang'] != "English") { $_SESSION['pLang'] = "ES"; } else { $_SESSION['pLang'] = "EN"; }?&gt;</em></pre>
<p><strong>Sample Usage</strong></p>
<pre><em>&lt;?php
	$myVar = "This is a test of language translation, not word by word but instead this translates the intended meaning";
	translateThis($myVar);
?&gt;</em></pre>
<p>Of course you can change settings within this to suit your translation needs and this is a single use setup but it suited the purpose for which I needed it. I hope this helps you out, cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.foryourlungsonly.net/2010/04/24/php-javascript-and-wordpress-english-to-spanish-language-translation-samples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Simple Shell Script to Create a Custom php.ini on Dreamhost&#8217;s Shared Host</title>
		<link>http://www.foryourlungsonly.net/2009/07/28/a-simple-shell-script-to-create-a-custom-php-ini-on-dreamhosts-shared-host/</link>
		<comments>http://www.foryourlungsonly.net/2009/07/28/a-simple-shell-script-to-create-a-custom-php-ini-on-dreamhosts-shared-host/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 16:24:40 +0000</pubDate>
		<dc:creator>Jonathan Harriot</dc:creator>
				<category><![CDATA[Dreamhost]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.foryourlungsonly.net/?p=104</guid>
		<description><![CDATA[While shared hosts offer great service for little cost there can be problems with sites timing out when uploading large files or you would like to be in more control of your server a bit. Just change the value for site and you&#8217;ll be off to the races. There are some other values you can [...]]]></description>
			<content:encoded><![CDATA[<p>While shared hosts offer great service for little cost there can be problems with sites timing out when uploading large files or you would like to be in more control of your server a bit. Just change the value for site and you&#8217;ll be off to the races. There are some other values you can customize to your needs but only edit and use this script if you know what you&#8217;re doing. This was created so I could upload some large files over a 20MB line so if your connection is slower or would like to allow users with slower connections to upload such large files, toy with the time settings a bit till you find the proper values for your system &amp; connection. I take no responsibility for anyone who uses this script, if you break your server contact support and beg them for help. Or ask me and I&#8217;ll see what we can do, cheers!</p>
<p>Onto the script!<span id="more-104"></span></p>
<blockquote>
<pre># stop on errors
set -e

# set the site for which you want to setup the custom php.ini
SITE=yoursite.com

# copy the php.ini to modify
mkdir $HOME/${SITE}/cgi-bin
cp /etc/php5/cgi/php.ini $HOME/${SITE}/cgi-bin/php.ini
cat &lt;&lt; EOF &gt; $HOME/${SITE}/cgi-bin/php-wrapper.fcgi
#!/bin/sh
exec /dh/cgi-system/php5.cgi $*
EOF
chmod 755 $HOME/${SITE}/cgi-bin
chmod 755 $HOME/${SITE}/cgi-bin/php-wrapper.fcgi
chmod 640 $HOME/${SITE}/cgi-bin/php.ini

# search and replace the php.ini
#!/bin/sh
INIFILE="$HOME/${SITE}/cgi-bin/php.ini"
rsync -a /dh/cgi-system/php5.cgi "$CGIFILE"
perl -p -i -e '
s/.*post_max_size.*/post_max_size = 100M/;
s/.*upload_max_filesize.*/upload_max_filesize = 100M/;
s/.*max_execution_time.*/max_execution_time = 1200/;
s/.*max_input_time.*/max_input_time = 1200/;
s/.*memory_limit.*/memory_limit = 250M/;
' "$INIFILE"

# create the new htaccess or append the handlers to your current .htaccess
FILE=.htaccess
cat &gt;&gt; $HOME/${SITE}/${FILE} &lt;&lt; EOF
Options +ExecCGI
AddHandler php5-cgi .php
Action php-cgi /cgi-bin/php-wrapper.fcgi
Action php5-cgi /cgi-bin/php-wrapper.fcgi
EOF</pre>
</blockquote>
<p><a title="Custom PHP.ini on Dreamhost's Shared Hosting" href="http://www.foryourlungsonly.net/wp-content/uploads/2009/07/customphp.sh">Download the script</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.foryourlungsonly.net/2009/07/28/a-simple-shell-script-to-create-a-custom-php-ini-on-dreamhosts-shared-host/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress Google Sitemap Generator Plugin mktime() Error Resolved</title>
		<link>http://www.foryourlungsonly.net/2009/07/24/wordpress-google-sitemap-generator-plugin-mktime-error-resolved/</link>
		<comments>http://www.foryourlungsonly.net/2009/07/24/wordpress-google-sitemap-generator-plugin-mktime-error-resolved/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 17:00:29 +0000</pubDate>
		<dc:creator>Jonathan Harriot</dc:creator>
				<category><![CDATA[gnu gpl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress plugins]]></category>

		<guid isPermaLink="false">http://www.foryourlungsonly.net/?p=102</guid>
		<description><![CDATA[If you use the Google Sitemap Generator Plugin for WordPress and receive the following error using WordPress 2.8+ you are not alone: Warning: mktime() expects parameter 1 to be long, string given in/wp-content/plugins/google-sitemap-generator/sitemap-core.php on line 2438 A solution for this was posted in the WordPress forums and is posted below: Find and edit the plugin [...]]]></description>
			<content:encoded><![CDATA[<p>If you use the <a title="Google Sitemap Generator Plugin for WordPress" href="http://www.arnebrachhold.de/redir/sitemap-home/">Google Sitemap Generator Plugin for WordPress</a> and receive the following error using <a href="http://wordpress.org">WordPress</a> 2.8+ you are not alone:</p>
<blockquote><p>Warning: mktime() expects parameter 1 to be long, string given in/wp-content/plugins/google-sitemap-generator/sitemap-core.php on line 2438</p></blockquote>
<p><a href="http://wordpress.org/support/topic/281175#post-1112393">A solution for this</a> was posted in the WordPress forums and is posted below:</p>
<ol>
<li>Find and edit the plugin file sitemap-core.php then go to line number 2438</li>
<li>Comment out the old line:
<ul>
<li>
<blockquote><p>//return mktime($hour, $min, $sec, $month, $day, $year);</p></blockquote>
</li>
</ul>
</li>
<li>Then paste this on the next line:
<ul>
<li>
<blockquote><p>return mktime(doubleval( $hour), $min, $sec, $month, $day, doubleval($year));</p></blockquote>
</li>
</ul>
</li>
<li>So the two lines should look like this:
<ul>
<li>
<blockquote><p>//return mktime($hour, $min, $sec, $month, $day, $year);<br />
return mktime(doubleval( $hour), $min, $sec, $month, $day, doubleval($year));</p></blockquote>
</li>
</ul>
</li>
<li>Save the file and attempt to rebuild sitemap once more and this time it should work like a charm!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.foryourlungsonly.net/2009/07/24/wordpress-google-sitemap-generator-plugin-mktime-error-resolved/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Slide N&#8217; Hide jQuery Navigation Accordion Slider</title>
		<link>http://www.foryourlungsonly.net/2008/11/12/slide-n-hide-jquery-navigation-accordion-slider/</link>
		<comments>http://www.foryourlungsonly.net/2008/11/12/slide-n-hide-jquery-navigation-accordion-slider/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 01:48:52 +0000</pubDate>
		<dc:creator>Jonathan Harriot</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[eff]]></category>
		<category><![CDATA[gnu gpl]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.foryourlungsonly.net/?p=37</guid>
		<description><![CDATA[View Example View Source Code A simple vertical jQuery accordion with much room for growth. In future version I would like to use a few additional lines of JS to create a cleaner structure but even if only as an example this is a good start. I made a horizontal accordion as well but all [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.foryourlungsonly.net/experiments/slide_n_hide.php3">View Example</a><br />
<a href="http://foryourlungsonly.net/experiments/slide_n_hide.phps">View Source Code</a></p>
<p>A simple vertical jQuery accordion with much room for growth. In future version I would like to use a few additional lines of JS to create a cleaner structure but even if only as an example this is a good start. I made a horizontal accordion as well but all things will be made public in due time.</p>
<p>This script creates a cooking and remembers which section was last opened therefore making it a great homepage piece or miniature site navigation.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.foryourlungsonly.net/2008/11/12/slide-n-hide-jquery-navigation-accordion-slider/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flickr + PHP + XML + Flash = Fun</title>
		<link>http://www.foryourlungsonly.net/2008/11/12/flickr-php-xml-flash-fun/</link>
		<comments>http://www.foryourlungsonly.net/2008/11/12/flickr-php-xml-flash-fun/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 00:51:42 +0000</pubDate>
		<dc:creator>Jonathan Harriot</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[gnu gpl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress plugins]]></category>

		<guid isPermaLink="false">http://www.foryourlungsonly.net/?p=46</guid>
		<description><![CDATA[PHPFlickr is a really neat little package that makes implementation of Flickr&#8217;s API quick and painless. I tried various techniques to create a slideshow for a client with LyteBox to enlarge the images but I slowly grew tired of the animation and the functionality that almost no one for this specific project would use. So [...]]]></description>
			<content:encoded><![CDATA[<p>PHPFlickr is a really neat little package that makes implementation of Flickr&#8217;s API quick and painless. I tried various techniques to create a slideshow for a client with LyteBox to enlarge the images but I slowly grew tired of the animation and the functionality that almost no one for this specific project would use. So I grabbed a small SWF slideshow from my toolbox and went to work creating a simple script to grab the photos and output the image URI I needed without creating bulky code. Here is what I came up with to make this easier for myself:<span id="more-46"></span></p>
<pre><code>&lt;?
photosets_getPhotos($photoset_id, NULL, NULL, 15, 1);

	// create a random interval for the timer between 6 and 10 seconds
	$randomnumber= rand(6,10);

	// create an array to output as xml
	$xml_output = "\n";
	foreach ((array)$photos['photo'] as $photo) {
		$xml_output .= "<img alt="" />buildPhotoURL($photo, "medium") . "\" ";
		$xml_output .= "/&gt;\n";
		$i++;
	}
	$xml_output .= "\n";
	echo $xml_output;

	// you're done!
?&gt;</code></pre>
<p>Simple and straight forward.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.foryourlungsonly.net/2008/11/12/flickr-php-xml-flash-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Image Watermarking</title>
		<link>http://www.foryourlungsonly.net/2008/01/28/php-image-watermarking/</link>
		<comments>http://www.foryourlungsonly.net/2008/01/28/php-image-watermarking/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 02:02:36 +0000</pubDate>
		<dc:creator>Jonathan Harriot</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.foryourlungsonly.net/2008/01/28/php-image-watermarking/</guid>
		<description><![CDATA[I had to build this for a client rather swiftly but here is the brass tax of the matter. My client requested that every image in a section would be automatically water marked. I read a few good articles and played around a bit before creating this based on the others I had been reading [...]]]></description>
			<content:encoded><![CDATA[<p>I had to build this for a client rather swiftly but here is the brass tax of the matter. My client requested that every image in a section would be automatically water marked. I read a few good articles and played around a bit before creating this based on the others I had been reading about.</p>
<p><strong>Criteria:</strong></p>
<ol>
<li>Auto centered mark</li>
<li>semi transparency</li>
<li>works with 24-bit .png files for image watermark</li>
<li>Must work on the fly</li>
<li>must be able to watermark png/jpeg file types</li>
<li>due Monday by noon <img src='http://www.foryourlungsonly.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </li>
</ol>
<p>That being said I produced the following based on notes I took from various sites:<span id="more-30"></span></p>
<blockquote><p><code>&lt;?php<br />
// example url<br />
watermark.php?i=display.php?show=23<br />
$imageUrl = $_GET['i'];<br />
$watermarkUrl = "watermark.png";<br />
$orgimage=imagecreatefromjpeg("{$imageUrl}");<br />
$watermark=imagecreatefrompng("{$watermarkUrl}");<br />
$watermarkDetails=getimagesize("{$watermarkUrl}");<br />
$imageDetails = getimagesize("{$imageUrl}");<br />
$centerx = (($imageDetails[0] - $watermarkDetails[0])/2);<br />
$centery = (($imageDetails[1] - $watermarkDetails[1])/2);<br />
imagecopy($orgimage,$watermark,$centerx,$centery,0,0,<br />
imagesx($watermark),imagesy($watermark));<br />
header("Content-Type: image/jpeg");<br />
imagejpeg($orgimage);<br />
imagedestroy($watermark);<br />
imagedestroy($orgimage);<br />
exit;<br />
?&gt;<br />
</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.foryourlungsonly.net/2008/01/28/php-image-watermarking/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.298 seconds -->
