<?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>Lacisoft&#039;s &#187; php</title>
	<atom:link href="http://www.lacisoft.com/blog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lacisoft.com/blog</link>
	<description>SELECT * FROM lacisoft</description>
	<lastBuildDate>Mon, 30 Jan 2012 17:42:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP download script for big files</title>
		<link>http://www.lacisoft.com/blog/2012/01/21/php-download-script-for-big-files/</link>
		<comments>http://www.lacisoft.com/blog/2012/01/21/php-download-script-for-big-files/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 05:42:06 +0000</pubDate>
		<dc:creator>lacisoft</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[filesize]]></category>
		<category><![CDATA[ob_end_clean]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[too big]]></category>

		<guid isPermaLink="false">http://www.lacisoft.com/blog/?p=742</guid>
		<description><![CDATA[Today i had a task at one customer where a directory of files needed to be downloaded using a PHP script. For one strange reason the script failed and the browser displayed a File not found error. I couldn&#8217;t for a while figure out what was happening. But after some test it was obvious that [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>Today i had a task at one customer where a directory of files needed to be downloaded using a PHP script. For one strange reason the script failed and the browser displayed a File not found error. I couldn&#8217;t for a while figure out what was happening. But after some test it was obvious that the file size was too big for the server (90 MB)  because with a smaller file size it worked.</p>
<p>So this was the original code:</p>
<p>&nbsp;</p>
<pre class="brush:php">header("Content-length:".filesize($filename));
header('Content-Type: application/zip'); // ZIP file
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="downloadpackage.zip"');
header('Content-Transfer-Encoding: binary');
readfile($filename);
exit();</pre>
<p>After some digging i quickly found the solution,  it is :  ob_end_clean();</p>
<p>Here is the final code:</p>
<pre class="brush:php">header("Content-length:".filesize($filename));
header('Content-Type: application/zip'); // ZIP file
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="downloadpackage.zip"');
header('Content-Transfer-Encoding: binary');
ob_end_clean();
readfile($filename);
exit();</pre>
<p>Works like a charm with any file size</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.lacisoft.com%2Fblog%2F2012%2F01%2F21%2Fphp-download-script-for-big-files%2F&amp;title=PHP%20download%20script%20for%20big%20files" id="wpa2a_2"><img src="http://www.lacisoft.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacisoft.com/blog/2012/01/21/php-download-script-for-big-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why the internet isn&#8217;t a safe source of information</title>
		<link>http://www.lacisoft.com/blog/2010/11/09/why-the-internet-isnt-a-safe-source-of-information/</link>
		<comments>http://www.lacisoft.com/blog/2010/11/09/why-the-internet-isnt-a-safe-source-of-information/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 18:34:19 +0000</pubDate>
		<dc:creator>lacisoft</dc:creator>
				<category><![CDATA[rampant stupidity]]></category>
		<category><![CDATA[Things i hate]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[poor articles]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.lacisoft.com/blog/?p=590</guid>
		<description><![CDATA[Because there are people out there writing articles like this.  Lacking any kind of logic and mixing apples with oranges, the autor does a very poor job of showing the public why Ruby may be better then PHP.  Let&#8217;s see my ideas about his rants 1) Human-readable code &#8211; this mostly depends on developers, as [...]
Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2009/08/06/sig-ma-or-semantic-information-mashup/' rel='bookmark' title='Sig.ma or Semantic Information Mashup'>Sig.ma or Semantic Information Mashup</a></li>
<li><a href='http://www.lacisoft.com/blog/2009/09/22/google-chrome-in-internet-explorer/' rel='bookmark' title='Google Chrome in Internet Explorer!'>Google Chrome in Internet Explorer!</a></li>
<li><a href='http://www.lacisoft.com/blog/2008/08/07/the-future-of-internet-browsers/' rel='bookmark' title='The future of internet browsers'>The future of internet browsers</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Because there are people out there writing articles like <a href="http://bit.ly/cVNmx0">this</a>.  Lacking any kind of logic and mixing apples with oranges, the autor does a very poor job of showing the public why Ruby may be better then PHP.  Let&#8217;s see my ideas about his rants</p>
<p>1) <strong>Human-readable code</strong> &#8211; this mostly depends on developers, as <a href="http://www.lacisoft.com/blog/2008/05/23/php-sucks-no-programmers-suck/">i said some time</a> ago there are good programmers and bad/lazy programmers. So one can create readable PHP code and another can create a very unreadable Ruby code.</p>
<p>2)<strong> Principle of least surprise</strong> &#8211; &#8220;minimizes confusion for experienced users&#8221;  -  What about beginner users ? And what about learning how to write code and you won&#8217;t get surprised. Not in Ruby, not in PHP</p>
<p>3)  C<strong>ommunity maturity</strong> &#8211; As one commenter said the article itself is a proof of some Ruby developers immaturity. Also remember the <em>Rails is a Ghetto</em> rant by Zed Shaw ? If not, search on Google.</p>
<p>4) <strong>Rails</strong> &#8211; PHP has a lot more frameworks to choose from, some of them being very good.</p>
<p>5) <strong>Object Oriented Programming</strong> &#8211; if you wouldn&#8217;t live in a cave you would know that PHP has this for years</p>
<p>6) <strong>ActiveRecord design</strong> &#8211; Active record <a href="http://kore-nordmann.de/blog/why_active_record_sucks.html">is not the holy grail</a> of web development</p>
<p>7) <strong>Easier to install</strong> &#8211; this is funny. Usually one line of command and the module is installed. He must be really lazy.</p>
<p>8) <strong>MVC </strong>- this is really mixing apples with oranges. Ruby can&#8217;t do MVC out of the box, Rails can  as most of the PHP frameworks can</p>
<p>9) <strong>JVM support</strong> &#8211; Quercus does ring a bell ?</p>
<p>10) <strong>Formal namespaces</strong> &#8211; Well, PHP 5.3 has namespaces</p>
<p>11) <strong>Pre-installed on most operating systems</strong> &#8211; WTF ? PHP is basically on any Linux machine out of the box. If PHP is not installed then who the hell is it ?</p>
<p>12) <strong>Interactive shell</strong> &#8211; there are debuggers in most IDE&#8217;s</p>
<p>13) <strong>Maintainability</strong> &#8211; this depends on application design</p>
<p>14) <strong>Everything is an object</strong> &#8211; there are also other paradigms, there are no absolute truths</p>
<p>I think the author wanted to write a post that would attract him lots of traffic, because such kind of controversial articles usually do attract traffic. But bashing one language over another to attract traffic is not something that is advisable to do. Not if you want in the future to earn a living from programming. Maybe Steve realized this already as his full name doesn&#8217;t appear beside the post and the domain name registration info is also privacy protected. This was the only wise thing from him. Because i don&#8217;t think any serious company would hire him as a programmer.</p>
<p><strong>P.S.</strong></p>
<p>In the end two advices:</p>
<p>1) One for my readers. Seeing the level of articles on webdeveloperjuice.com, i wouldn&#8217;t be reading any material from there.</p>
<p>2) For the author of the article. Learn to write code if you want to earn a living. Writing articles like this will get you some traffic, but not money as you might hope. The audience of such articles (web developers) usually developed advertising blindness by the time they learned to code. So you won&#8217;t get much money no matter the traffic.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.lacisoft.com%2Fblog%2F2010%2F11%2F09%2Fwhy-the-internet-isnt-a-safe-source-of-information%2F&amp;title=Why%20the%20internet%20isn%26%238217%3Bt%20a%20safe%20source%20of%20information" id="wpa2a_4"><img src="http://www.lacisoft.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2009/08/06/sig-ma-or-semantic-information-mashup/' rel='bookmark' title='Sig.ma or Semantic Information Mashup'>Sig.ma or Semantic Information Mashup</a></li>
<li><a href='http://www.lacisoft.com/blog/2009/09/22/google-chrome-in-internet-explorer/' rel='bookmark' title='Google Chrome in Internet Explorer!'>Google Chrome in Internet Explorer!</a></li>
<li><a href='http://www.lacisoft.com/blog/2008/08/07/the-future-of-internet-browsers/' rel='bookmark' title='The future of internet browsers'>The future of internet browsers</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.lacisoft.com/blog/2010/11/09/why-the-internet-isnt-a-safe-source-of-information/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enabling PHP file uploads in TYPO3 Backend</title>
		<link>http://www.lacisoft.com/blog/2010/09/23/enabling-php-file-uploads-in-typo3-backend/</link>
		<comments>http://www.lacisoft.com/blog/2010/09/23/enabling-php-file-uploads-in-typo3-backend/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 10:45:50 +0000</pubDate>
		<dc:creator>lacisoft</dc:creator>
				<category><![CDATA[TYPO3 Development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[typo3 backend]]></category>
		<category><![CDATA[upload]]></category>

		<guid isPermaLink="false">http://www.lacisoft.com/blog/?p=564</guid>
		<description><![CDATA[At one project i&#8217;m working on i had to upload php files in a TYPO3 backend form. But the form was just throwing me the message that php files are not allowed as uploads. After some digging i found the solution to this problem. Actually it&#8217;s quite easy to fix. The only thing you need [...]
Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2009/05/05/typo3-file-upload-problems/' rel='bookmark' title='Typo3 file upload problems'>Typo3 file upload problems</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/08/24/add-a-file-upload-to-typo3-flexform/' rel='bookmark' title='Add a file upload to TYPO3 Flexform'>Add a file upload to TYPO3 Flexform</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/01/17/powermail-file-upload-size/' rel='bookmark' title='Powermail file upload size'>Powermail file upload size</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>At one project i&#8217;m working on i had to upload php files in a TYPO3 backend form. But the form was just throwing me the message that php files are not allowed as uploads. After some digging i found the solution to this problem. Actually it&#8217;s quite easy to fix.</p>
<p>The only thing you need to do is to add the following configurations directives into TYPO3&#8242;s localconf.php file:</p>
<pre class="brush:css">$TYPO3_CONF_VARS['BE']['fileExtensions']['webspace']['allow'] = 'php';
$TYPO3_CONF_VARS['BE']['fileExtensions']['webspace']['deny'] = '';
$TYPO3_CONF_VARS['BE']['fileDenyPattern'] = '';</pre>
<p>After you did this you should clear the cache and you should be able to upload php files.</p>
<p>NOTE: Allow upload of php files only in situations when you know for sure that these are files or users that can be trusted. Allowing the upload of unverified php files by untrusted users poses a GREAT SECURITY RISK!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.lacisoft.com%2Fblog%2F2010%2F09%2F23%2Fenabling-php-file-uploads-in-typo3-backend%2F&amp;title=Enabling%20PHP%20file%20uploads%20in%20TYPO3%20Backend" id="wpa2a_6"><img src="http://www.lacisoft.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2009/05/05/typo3-file-upload-problems/' rel='bookmark' title='Typo3 file upload problems'>Typo3 file upload problems</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/08/24/add-a-file-upload-to-typo3-flexform/' rel='bookmark' title='Add a file upload to TYPO3 Flexform'>Add a file upload to TYPO3 Flexform</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/01/17/powermail-file-upload-size/' rel='bookmark' title='Powermail file upload size'>Powermail file upload size</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.lacisoft.com/blog/2010/09/23/enabling-php-file-uploads-in-typo3-backend/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weekly article batch 3</title>
		<link>http://www.lacisoft.com/blog/2010/07/05/weekly-article-batch-3/</link>
		<comments>http://www.lacisoft.com/blog/2010/07/05/weekly-article-batch-3/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 20:06:22 +0000</pubDate>
		<dc:creator>lacisoft</dc:creator>
				<category><![CDATA[Weekly article batch]]></category>
		<category><![CDATA[cheat sheets]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[drupal 7]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[scraping]]></category>
		<category><![CDATA[typo3]]></category>
		<category><![CDATA[TYPO3 4.5]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress 3]]></category>

		<guid isPermaLink="false">http://www.lacisoft.com/blog/?p=526</guid>
		<description><![CDATA[From this week i will try to resuscitate my weekly article batches. Here is the most interesting articles from the last week: Drupal 7 Vs. WordPress 3: Battle Of The New Features : an interesting read about the two highly anticipated open-source CMS releases of the year. You guessed correctly. Its about Drupal 7 and [...]
Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2010/01/07/weekly-article-batch-edition-1/' rel='bookmark' title='Weekly article batch. Edition 1'>Weekly article batch. Edition 1</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/01/14/weekly-article-batch-2/' rel='bookmark' title='Weekly article batch 2'>Weekly article batch 2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>From this week i will try to resuscitate my weekly article batches.</p>
<p>Here is the most interesting articles from the last week:</p>
<ul>
<li><a href="http://gazebo.commonplaces.com/2010/06/drupal-7-vs-wordpress-3-battle-of-the-new-features/">Drupal 7 Vs. WordPress 3: Battle Of The New Features</a> : an interesting read about the two highly anticipated open-source CMS releases of the year. You guessed correctly. Its about Drupal 7 and WordPress 3.</li>
<li><a href="http://news.typo3.org/news/article/wrapping-up-t3dd10/">Wrapping up T3DD10</a> :  interesting stuff happened at the latest TYPO3 Developers Days. Among other things the release date for TYPO3 4.5 was set. It is 26th of January 2011</li>
<li><a href="http://www.phparch.com/2010/06/14/php-the-teenage-years/">PHP : the teenage years</a> : PHP turned 15 this year. A nice post about PHP, its strengths, weaknesses and what are the challenges, what comes next.</li>
<li><a href="http://www.smashingeeks.com/featured/updated-cheat-sheets-for-css-html-jquery-php-and-more.html">Updated Cheat Sheets for CSS, HTML, jQuery, PHP and More</a> : Cheat Sheets come handy sometimes. So take a good look at them and why not even save them ?</li>
<li><a href="http://php-html.net/tutorials/how-to-write-a-simple-scrapper-in-php-without-regex/">How to write a simple scraper in PHP without Regex</a> : Didn&#8217;t you think ever about a PHP scraper ? I did. And here is a nice tutorial that shows you how to scrape with PHP without Regex.</li>
</ul>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.lacisoft.com%2Fblog%2F2010%2F07%2F05%2Fweekly-article-batch-3%2F&amp;title=Weekly%20article%20batch%203" id="wpa2a_8"><img src="http://www.lacisoft.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2010/01/07/weekly-article-batch-edition-1/' rel='bookmark' title='Weekly article batch. Edition 1'>Weekly article batch. Edition 1</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/01/14/weekly-article-batch-2/' rel='bookmark' title='Weekly article batch 2'>Weekly article batch 2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.lacisoft.com/blog/2010/07/05/weekly-article-batch-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Importing large files into a MySQL database</title>
		<link>http://www.lacisoft.com/blog/2010/01/20/importing-large-files-into-a-mysql-database/</link>
		<comments>http://www.lacisoft.com/blog/2010/01/20/importing-large-files-into-a-mysql-database/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 11:54:39 +0000</pubDate>
		<dc:creator>lacisoft</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[large files]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php.ini]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[settings]]></category>

		<guid isPermaLink="false">http://www.lacisoft.com/blog/?p=380</guid>
		<description><![CDATA[From time to time i have to insert really large files into MySQL. And sometimes there are problems because you don&#8217;t have access to the mysql command line utility from the server to issue the source command (this lets you import dumps or sql files). So you have to use phpMyAdmin or some other web [...]
Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2008/11/20/how-to-generate-pdf-files-dynamically-using-php-and-haru/' rel='bookmark' title='How to generate PDF files dynamically using PHP and Haru'>How to generate PDF files dynamically using PHP and Haru</a></li>
<li><a href='http://www.lacisoft.com/blog/2011/02/01/mysql-sort-results-in-order-by-list/' rel='bookmark' title='MySQL &#8211; Sort results in order by list'>MySQL &#8211; Sort results in order by list</a></li>
<li><a href='http://www.lacisoft.com/blog/2009/06/17/the-state-of-mysql/' rel='bookmark' title='The State of MySQL'>The State of MySQL</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>From time to time i have to insert really large files into MySQL. And sometimes there are problems because you don&#8217;t have access to the mysql command line utility from the server to issue the source command (this lets you import dumps or sql files). So you have to use phpMyAdmin or some other web based utility.</p>
<p>But also too often one runs into the barriers set by PHP, specifically the configuration directives from php.ini: upload_max_filesize, memory_limit and post_max_size. If these are not set to a decent value you won&#8217;t be able to upload really large files and phpMyAdmin will fail.  If you have access to these then you can modify them and you will have the ability to upload the files.</p>
<p>But if not there is another solution. Open your config.inc.php from the phpMyAdmin directory and search for the following setting:</p>
<p>$cfg['UploadDir']</p>
<p>If it is present then modify it to point to a directory within the phpMyAdmin directory (you can call it &#8220;uploads&#8221;) or if not you can add it. Something like this:</p>
<p>$cfg['UploadDir'] = &#8216;uploads&#8217;;</p>
<p>Then you have to make sure that the directory &#8220;uploads&#8221; exists in your phpMyAdmin installation directory.</p>
<p>That&#8217;s all, now when you want to import a file just upload it there (with an ftp client) in that folder and in phpMyAdmin at the import screen there will be a select with the sql files  that exist in the directory. You can import this way really huge files.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.lacisoft.com%2Fblog%2F2010%2F01%2F20%2Fimporting-large-files-into-a-mysql-database%2F&amp;title=Importing%20large%20files%20into%20a%20MySQL%20database" id="wpa2a_10"><img src="http://www.lacisoft.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2008/11/20/how-to-generate-pdf-files-dynamically-using-php-and-haru/' rel='bookmark' title='How to generate PDF files dynamically using PHP and Haru'>How to generate PDF files dynamically using PHP and Haru</a></li>
<li><a href='http://www.lacisoft.com/blog/2011/02/01/mysql-sort-results-in-order-by-list/' rel='bookmark' title='MySQL &#8211; Sort results in order by list'>MySQL &#8211; Sort results in order by list</a></li>
<li><a href='http://www.lacisoft.com/blog/2009/06/17/the-state-of-mysql/' rel='bookmark' title='The State of MySQL'>The State of MySQL</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.lacisoft.com/blog/2010/01/20/importing-large-files-into-a-mysql-database/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Weekly article batch 2</title>
		<link>http://www.lacisoft.com/blog/2010/01/14/weekly-article-batch-2/</link>
		<comments>http://www.lacisoft.com/blog/2010/01/14/weekly-article-batch-2/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 19:09:08 +0000</pubDate>
		<dc:creator>lacisoft</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Weekly article batch]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[gartner]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[reusable code]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[table-based]]></category>
		<category><![CDATA[weekly]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lacisoft.com/blog/?p=372</guid>
		<description><![CDATA[Here is the second edition of my weekly &#8220;press review&#8221; Interesting articles last week: Gartner report on PHP &#8211; published by Danne Lundqvist on dotvoid.com &#8211; writes about a report by Gartner (here) that makes it clear that more and more companies discover the benefits of PHP and adoption is increasing among major companies. A [...]
Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2010/01/07/weekly-article-batch-edition-1/' rel='bookmark' title='Weekly article batch. Edition 1'>Weekly article batch. Edition 1</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/07/05/weekly-article-batch-3/' rel='bookmark' title='Weekly article batch 3'>Weekly article batch 3</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/04/14/book-drupal-e-commerce-with-ubercart-2-x/' rel='bookmark' title='Book: Drupal E-commerce with Ubercart 2.x'>Book: Drupal E-commerce with Ubercart 2.x</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Here is the second edition of my weekly &#8220;press review&#8221;</p>
<p>Interesting articles last week:</p>
<ol>
<li><a href="http://www.dotvoid.com/2010/01/gartner-report-on-php/">Gartner report on PHP</a> &#8211; published by Danne Lundqvist on dotvoid.com &#8211; writes about a report by Gartner (<a href="http://blogs.gartner.com/mark_driver/2009/12/03/php-past-present-and-future/">here</a>) that makes it clear that more and more companies discover the benefits of PHP and adoption is increasing among major companies.</li>
<li><a href="http://www.rooftopsolutions.nl/article/264?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+bijsterespoor+(Het+Bijstere+Spoor)&amp;utm_content=Google+Reader">A case for table-based design</a> &#8211; published by Evert Pot on rooftopsolutions.nl &#8211; i could not agree more, table based designs are useful in some situations.</li>
<li><a href="http://net.tutsplus.com/tutorials/other/asp-net-for-php-developers/">ASP.NET for PHP developers</a> &#8211; published by Chris Taylor on net.tutsplus.com &#8211; does a great introduction to ASP.NET using C# for PHP developers. I&#8217;m even tempted to do a site in ASP.NET just for educational purpose</li>
<li><a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/01/07/why-is-reusable-code-so-hard-to-secure.aspx">Why is reusable code so hard to secure ?</a> &#8211; published on devcentral.f5.com &#8211; some aspects of this article are subject to debate but others do present us with a valid issue when developing reusable code</li>
<li><a href="http://www.devwebpro.com/how-tou-speed-up-your-wordpress-sites/">How to speed up your WordPress sites</a> &#8211; published on devwebpro.com &#8211; as page speed is becoming a ranking factor for Google its nice to know what could i do with my blog if overnight would become hugely popular.</li>
<li><a href="http://www.nicklewis.org/40-essential-drupal-6-modules">40+ essential Drupal Modules</a> &#8211; published on nicklewis.org- well most of these should be familiar to every Drupal developer but its nice to have a place where to look up if you search for something specific and proven for the task at hand.</li>
</ol>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.lacisoft.com%2Fblog%2F2010%2F01%2F14%2Fweekly-article-batch-2%2F&amp;title=Weekly%20article%20batch%202" id="wpa2a_12"><img src="http://www.lacisoft.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2010/01/07/weekly-article-batch-edition-1/' rel='bookmark' title='Weekly article batch. Edition 1'>Weekly article batch. Edition 1</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/07/05/weekly-article-batch-3/' rel='bookmark' title='Weekly article batch 3'>Weekly article batch 3</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/04/14/book-drupal-e-commerce-with-ubercart-2-x/' rel='bookmark' title='Book: Drupal E-commerce with Ubercart 2.x'>Book: Drupal E-commerce with Ubercart 2.x</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.lacisoft.com/blog/2010/01/14/weekly-article-batch-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weekly article batch. Edition 1</title>
		<link>http://www.lacisoft.com/blog/2010/01/07/weekly-article-batch-edition-1/</link>
		<comments>http://www.lacisoft.com/blog/2010/01/07/weekly-article-batch-edition-1/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 14:26:56 +0000</pubDate>
		<dc:creator>lacisoft</dc:creator>
				<category><![CDATA[Weekly article batch]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[code snippets]]></category>
		<category><![CDATA[exception handling]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[if]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[latency]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[weekly]]></category>
		<category><![CDATA[where]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.lacisoft.com/blog/?p=363</guid>
		<description><![CDATA[I read many articles and most times i don&#8217;t bookmark them even if they are fairly good articles and can be useful in some situations. I thought i should save them somewhere, but they are not so important to be added to bookmarks. So starting with this year i will publish a post with these [...]
Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2010/01/14/weekly-article-batch-2/' rel='bookmark' title='Weekly article batch 2'>Weekly article batch 2</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/07/05/weekly-article-batch-3/' rel='bookmark' title='Weekly article batch 3'>Weekly article batch 3</a></li>
<li><a href='http://www.lacisoft.com/blog/2012/01/30/typo3-market-share-statistics2012-edition/' rel='bookmark' title='TYPO3 market share statistics&ndash;2012 edition'>TYPO3 market share statistics&ndash;2012 edition</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I read many articles and most times i don&#8217;t bookmark them even if they are fairly good articles and can be useful in some situations. I thought i should save them somewhere, but they are not so important to be added to bookmarks.</p>
<p>So starting with this year i will publish a post with these articles every week on thursday.  This way i can find them when i need them and also maybe some of you can find something interesting to read among them.</p>
<p>The order is arbitrary and some of the articles may be older then one week. The fact is that i read them this week so they get mentioned here this week.</p>
<p>Interesting articles this week:</p>
<ol>
<li><a href="http://www.designer-daily.com/15-useful-jquery-plugins-and-tutorials-5207">15 useful jQuery plugins and tutorials</a> &#8211; published by designer-daily.com, contains a good selection of jQuery plugins and tutorials</li>
<li><a href="http://www.devshed.com/c/a/PHP/Exception-Handling-in-PHP/">Exception handling in PHP</a> &#8211; published by devshed.com, we all come across this: exception handling, a nice overview on the topic</li>
<li><a href="http://www.electrictoolbox.com/mysql-using-if-in-where/">MySQL : Using IF in a WHERE clause</a> &#8211; published by electrictoolbox.com, although not a good solution &#8211; an IF is possible in a WHERE clause and i post this here only for reference &#8211; i not recommend using such solutions</li>
<li><a href="http://diveintohtml5.org/">Dive into HTML 5</a> &#8211; published by diveintohtml5.org, HTML 5 is here and this is a fairly good intro in it</li>
<li><a href="http://webdesignledger.com/tips/13-useful-code-snippets-for-wordpress-development">13 Useful Code Snippets for WordPress development</a>, published by webdesignledger.com, WordPress in more and more a part of our life and this article can be handy if we want to customize some of the things in WordPress</li>
<li><a href="http://buytaert.net/speed-matters">Speed matters</a> , published by Dries Buytaert on buytaert.net , increasing latency will drive your visitors away as one Google research paper points it out. So think twice before adding a feature that hurts performance</li>
</ol>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.lacisoft.com%2Fblog%2F2010%2F01%2F07%2Fweekly-article-batch-edition-1%2F&amp;title=Weekly%20article%20batch.%20Edition%201" id="wpa2a_14"><img src="http://www.lacisoft.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2010/01/14/weekly-article-batch-2/' rel='bookmark' title='Weekly article batch 2'>Weekly article batch 2</a></li>
<li><a href='http://www.lacisoft.com/blog/2010/07/05/weekly-article-batch-3/' rel='bookmark' title='Weekly article batch 3'>Weekly article batch 3</a></li>
<li><a href='http://www.lacisoft.com/blog/2012/01/30/typo3-market-share-statistics2012-edition/' rel='bookmark' title='TYPO3 market share statistics&ndash;2012 edition'>TYPO3 market share statistics&ndash;2012 edition</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.lacisoft.com/blog/2010/01/07/weekly-article-batch-edition-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Principles of the PHP Masters</title>
		<link>http://www.lacisoft.com/blog/2009/08/24/10-principles-of-the-php-masters/</link>
		<comments>http://www.lacisoft.com/blog/2009/08/24/10-principles-of-the-php-masters/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 18:22:10 +0000</pubDate>
		<dc:creator>lacisoft</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[principles]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[top 10]]></category>

		<guid isPermaLink="false">http://www.lacisoft.com/blog/?p=267</guid>
		<description><![CDATA[A great post published by Internet Resources explains 10  principles of some of the most popular PHP programmers. In short here are the 1o principles of the PHP Masters and the name of the programmer bolded. I will only list them. For more details head over to the original post. Use PHP Only When You [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://www.cpworld2000.com/article/10-principles-of-the-php-masters/">great post</a> published by Internet Resources explains 10  principles of some of the most popular PHP programmers.</p>
<p>In short here are the 1o principles of the PHP Masters and the name of the programmer bolded. I will only list them. For more details head over to the original post.</p>
<ol>
<li><span style="background-color: #ffffff;">Use PHP Only When You Need it – <strong>Rasmus Lerdorf</strong></span></li>
<li><span style="background-color: #ffffff;">Use Many Tables With PHP and MYSQL for Scalability – <strong>Matt Mullenweg</strong></span></li>
<li><span style="background-color: #ffffff;">Never, ever trust your users – <strong>Dave Child</strong></span></li>
<li><span style="background-color: #ffffff;">Invest in PHP Caching – <strong>Ben Balbo</strong></span></li>
<li><span style="background-color: #ffffff;">Speed up PHP Development with an IDE, Templates and Snippets – <strong>Chad Kieffer</strong></span></li>
<li><span style="background-color: #ffffff;">Make Better Use of PHP’s Filter Functions –<strong> Joey Sochacki</strong></span></li>
<li><span style="background-color: #ffffff;">Use a PHP Framework – <strong>Josh Sharp</strong></span></li>
<li><span style="background-color: #ffffff;">Don’t use a PHP Framework – <strong>Rasmus Lerdorf</strong></span></li>
<li><span style="background-color: #ffffff;">Use Batch Processing –<strong> Jack D. Herrington</strong></span></li>
<li><span style="background-color: #ffffff;">Turn on Error Reporting Immediately – <strong>David Cummings</strong></span></li>
</ol>
<h4 style="padding-top: 10px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #000000; margin: 0px;"></h4>
<h4 style="padding-top: 10px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #000000; margin: 0px;"></h4>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.lacisoft.com%2Fblog%2F2009%2F08%2F24%2F10-principles-of-the-php-masters%2F&amp;title=10%20Principles%20of%20the%20PHP%20Masters" id="wpa2a_16"><img src="http://www.lacisoft.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacisoft.com/blog/2009/08/24/10-principles-of-the-php-masters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5.3 is here!</title>
		<link>http://www.lacisoft.com/blog/2009/06/30/php-5-3-is-here/</link>
		<comments>http://www.lacisoft.com/blog/2009/06/30/php-5-3-is-here/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 13:25:28 +0000</pubDate>
		<dc:creator>lacisoft</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[closures]]></category>
		<category><![CDATA[ext/fileinfo]]></category>
		<category><![CDATA[ext/intl]]></category>
		<category><![CDATA[ext/phar]]></category>
		<category><![CDATA[garbage collection]]></category>
		<category><![CDATA[goto]]></category>
		<category><![CDATA[late static bindings]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.lacisoft.com/blog/?p=247</guid>
		<description><![CDATA[The PHP team announced the immediate release of the much anticipated  PHP 5.3 This version is a major step forward for PHP which introduces namespaces,native closures, late static bindings and optional garbage collection for cyclic references, jump label (g0to). Also a handful of new extensions have been introduced (ext/phar, ext/intl and ext/fileinfo) and Windows support has [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>The PHP team announced the <a href="http://www.php.net/archive/2009.php#id2009-06-30-1">immediate release</a> of the much anticipated  PHP 5.3 This version is a major step forward for PHP which introduces <a href="http://php.net/namespaces">namespaces</a>,native <a href="http://php.net/closures">closures</a>, <a href="http://php.net/lsb">late static bindings</a> and <a href="http://php.net/gc_enable">optional garbage collection</a> for cyclic references, <a href="http://php.net/goto">jump label (g0to)</a>. Also a handful of new extensions have been introduced (<a href="http://php.net/phar">ext/phar</a>,<a href="http://php.net/intl"> ext/intl</a> and <a href="http://php.net/fileinfo">ext/fileinfo</a>) and Windows support has been greatly improved.</p>
<p>The full list of changes can be consulted in the <a href="http://php.net/ChangeLog-5.php">ChangeLog</a>.</p>
<p>Now we wait and see how long it takes before people start to move production sites to this version. I anticipate that this will take long time because of possible incompatibilities between existing codebase and the new PHP version. However new projects should be started using PHP 5.3</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.lacisoft.com%2Fblog%2F2009%2F06%2F30%2Fphp-5-3-is-here%2F&amp;title=PHP%205.3%20is%20here%21" id="wpa2a_18"><img src="http://www.lacisoft.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.lacisoft.com/blog/2009/06/30/php-5-3-is-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to make a permanent (301) redirect with PHP</title>
		<link>http://www.lacisoft.com/blog/2009/04/28/how-to-make-a-permanent-301-redirect-with-php/</link>
		<comments>http://www.lacisoft.com/blog/2009/04/28/how-to-make-a-permanent-301-redirect-with-php/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 07:18:14 +0000</pubDate>
		<dc:creator>lacisoft</dc:creator>
				<category><![CDATA[web development]]></category>
		<category><![CDATA[301 redirect]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[permanent redirect]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.lacisoft.com/blog/?p=211</guid>
		<description><![CDATA[Often we need to redirect permanently a page to a new location and this can be accomplished in many ways. I will discuss today the PHP method because this is the one i most often run into. So you can make a header redirect with php in the following manner: &#60;?php header("Location: /example.php"); ?&#62; But [...]
Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2009/04/10/how-to-make-a-drag-and-drop-sorted-list-with-jquery-sortable/' rel='bookmark' title='How to make a drag and drop sorted list with jQuery Sortable'>How to make a drag and drop sorted list with jQuery Sortable</a></li>
<li><a href='http://www.lacisoft.com/blog/2008/11/21/how-to-make-a-brand-hated-with-newsletters/' rel='bookmark' title='How to make a brand hated, with newsletters'>How to make a brand hated, with newsletters</a></li>
<li><a href='http://www.lacisoft.com/blog/2009/04/15/how-some-people-make-free-software-more-to-cost-more-then-commercial-software/' rel='bookmark' title='How some people make free software to cost more then commercial software'>How some people make free software to cost more then commercial software</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Often we need to redirect permanently a page to a new location and this can be accomplished in many ways. I will discuss today the PHP method because this is the one i most often run into.</p>
<p>So you can make a header redirect with php in the following manner:</p>
<p><span class="html"><span class="keyword"><strong>&lt;?</strong></span></span><strong><code><span class="html"><span class="default">php</span></span></code></strong></p>
<p><strong><code><span class="html"><span class="default">header</span><span class="keyword">(</span><span class="string">"Location: /example.php"</span><span class="keyword">);</span></span></code></strong></p>
<p><strong><span class="html"><span class="keyword">?&gt;<br />
</span></span></strong></p>
<p><span class="html"><span class="keyword">But keep in mind that this is a temporary redirect. If you need to make it a permanent (301) redirect then you need to add some additional code. </span></span></p>
<p>One method is to add an additional response code to the header redirect:</p>
<p><span class="html"><span class="keyword"><strong>&lt;?</strong></span></span><strong><code><span class="html"><span class="default">php</span></span></code></strong></p>
<p><strong><code><span class="html"><span class="default">header</span><span class="keyword">(</span><span class="string">"Location: /example.php"</span><span class="keyword">,</span><span class="default">TRUE</span><span class="keyword">,</span><span class="default">301</span><span class="keyword">);</span></span></code></strong></p>
<p><strong><span class="html"><span class="keyword">?&gt;<br />
</span></span></strong></p>
<p><span class="html"><span class="keyword">The other method is a bit longer:</span></span></p>
<p><span class="html"><span class="keyword"><strong>&lt;?php</strong></span></span></p>
<p><strong>header(&#8216;HTTP/1.1 301 Moved Permanently&#8217;);<br />
header(&#8216;Location: http://www.example.com&#8217;);</strong></p>
<p><strong>?&gt; </strong></p>
<p><span class="html"><span class="keyword">Both these methods do the same thing so its up to you which one to use. </span></span></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.lacisoft.com%2Fblog%2F2009%2F04%2F28%2Fhow-to-make-a-permanent-301-redirect-with-php%2F&amp;title=How%20to%20make%20a%20permanent%20%28301%29%20redirect%20with%20PHP" id="wpa2a_20"><img src="http://www.lacisoft.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><p>Related posts:<ol>
<li><a href='http://www.lacisoft.com/blog/2009/04/10/how-to-make-a-drag-and-drop-sorted-list-with-jquery-sortable/' rel='bookmark' title='How to make a drag and drop sorted list with jQuery Sortable'>How to make a drag and drop sorted list with jQuery Sortable</a></li>
<li><a href='http://www.lacisoft.com/blog/2008/11/21/how-to-make-a-brand-hated-with-newsletters/' rel='bookmark' title='How to make a brand hated, with newsletters'>How to make a brand hated, with newsletters</a></li>
<li><a href='http://www.lacisoft.com/blog/2009/04/15/how-some-people-make-free-software-more-to-cost-more-then-commercial-software/' rel='bookmark' title='How some people make free software to cost more then commercial software'>How some people make free software to cost more then commercial software</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.lacisoft.com/blog/2009/04/28/how-to-make-a-permanent-301-redirect-with-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

