<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Tue, 06 Jan 2009 22:55:07 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[NETTUTS.com: How to Open Zip Files with PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/11652</guid>
      <link>http://www.phpdeveloper.org/news/11652</link>
      <description><![CDATA[<p>
The NETTUTS.com site has a <a href="http://feedproxy.google.com/~r/nettuts/~3/umTYCt6xvOg/">new tutorial/screencast</a> posted looking at their method for opening up uploaded zip files with PHP:
</p>
<blockquote>
ThemeForest has a nice feature; It allows the authors to upload zip files containing screenshots of their themes. A script then extracts these files and displays the images accordingly. Though I doubt that the developers used PHP to accomplish this task...that's what we're going to use!
</blockquote>
<p>
They create a simple form with one field - a file input - and write some basic PHP around it. The script ensures that it was a zip file that was uploaded (based on the mime type) and passes it through a ZipArchive class to do the hard work. This class and the rest of the source <a href="http://nettuts.s3.amazonaws.com/165_php_zip/unZip_php.zip">can be downloaded</a> from the site.
</p>]]></description>
      <pubDate>Wed, 31 Dec 2008 12:04:06 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Abhinav Singh's Blog: PHP Extensions - How and Why?]]></title>
      <guid>http://www.phpdeveloper.org/news/11562</guid>
      <link>http://www.phpdeveloper.org/news/11562</link>
      <description><![CDATA[<p>
<i>Abhinav Singh</i> has <a href="http://abhinavsingh.com/blog/2008/12/php-extensions-how-and-why/">posted a guide</a> to PHP extensions - what they are and how to write a simple "hello world" one.
</p>
<blockquote>
Assuming you have read the <a href="http://abhinavsingh.com/blog/2008/11/how-does-php-echos-a-hello-world-behind-the-scene/">previous post</a>, lets discuss on how to build our first PHP extension: every PHP extension is built out of minimum of 2 files, a configuration file (config.m4) which tells us what files to build and what external libraries are needed and source File(s) which will contain the actual functionality.
</blockquote>
<p>
He builds up an example skeleton for an extension (the config.m4) and explains how the file will be phpized and configured. Next up is the php_sample.h header file where the needed modules are loaded and the sample.c file to define them. Last, but not least, comes the extension code itself that calls the printf function to output the "hello world" message.
</p>]]></description>
      <pubDate>Fri, 12 Dec 2008 11:17:23 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[TotalPHP: Using a global configuration file]]></title>
      <guid>http://www.phpdeveloper.org/news/11514</guid>
      <link>http://www.phpdeveloper.org/news/11514</link>
      <description><![CDATA[<p>
The TotalPHP site is recommending something that can make your development (and maintenance) life much easier in the long run - <a href="http://www.total-php.com/article/16/using-a-global-configuration-file/">using a global configuration file</a> through out your app.
</p>
<blockquote>
t's one of the basics of PHP and if you read any kind of tutorial or book on the subject it's one of the first things they cover, yet I still see people no using a global 'configuration' or 'include' file. It's one of the easiest things to do and will make your life so much easier! This 'configuration' file will include anything that needs to be run on every page of the website. 
</blockquote>
<p>
They suggest that using this configuration file everywhere (including it over the entire site) can make things easier in the long run. The idea is not without problems, though. It only works until you need something custom for a certain area or page - then you have to hack it to evaluate conditions. For most simple uses, though, its a good way to share information (like database connection details) through out the application.
</p>]]></description>
      <pubDate>Fri, 05 Dec 2008 10:25:59 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Laknath Semage's Blog: PHP + Large files]]></title>
      <guid>http://www.phpdeveloper.org/news/11487</guid>
      <link>http://www.phpdeveloper.org/news/11487</link>
      <description><![CDATA[<p>
<i>Laknath Semage</i> submitted a <a href="http://luckycala.wordpress.com/2008/12/01/php-large-files/">new blog post</a> he's written up about working with large file uploads in your PHP applications.
</p>
<blockquote>
If we want to do large file uploads or database updates with PHP there are few configurations to be done to default settings and I'm putting this as a note to myself (I'm always keep forgetting this) as well as to any one who may find this useful like when importing a large backup file through <a href="http://www.phpmyadmin.net/home_page/index.php">phpMyAdmin</a>.
</blockquote>
<p>
There's four php.ini settings he recommends checking as well as two values to change if you do have the need to upload a large import file back into a phpMyAdmin installation (ExecTimeLimit, MemoryLimit).
</p>]]></description>
      <pubDate>Tue, 02 Dec 2008 12:07:08 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Rob Allen's Blog: File uploads with Zend_Form_Element_File]]></title>
      <guid>http://www.phpdeveloper.org/news/11477</guid>
      <link>http://www.phpdeveloper.org/news/11477</link>
      <description><![CDATA[<p>
With the recent released of the <a href="http://framework.zend.com">1.7 version of the Zend Framework</a> <i>Rob Allen</i> wanted to <a href="http://akrabat.com/2008/11/29/file-uploads-with-zend_form_element_file/">post about</a> a new form element type that integrates some much needed functionality - Zen_Form_Element_File.
</p>
<blockquote>
Now that Zend Framework 1.7 has been released, I thought I'd take a look at the built in file upload element, Zend_Form_Element_File, and see how it can be used. This is how to use it in its most basic form.
</blockquote>
<p>
The form in this example is similar to his <a href="http://akrabat.com/2008/04/07/simple-zend_form-file-upload-example/">previous example</a> and the simple code is included for the form, the controller and the view. 
</p>
<blockquote>
That's all there is to it for simple uploading of forms. There are still a few fairly important bugs in the component that we'll have to wait for 1.7.2 for. Specifically the Count validator doesn't always work as you'd expect and don't use getValues() and receive() as it isn't yet clever enough to know not to call move_uploaded_file() more than once.
</blockquote>]]></description>
      <pubDate>Mon, 01 Dec 2008 09:30:46 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Jeremy Johnstone's Blog: PHP parser for OS X plist XML files]]></title>
      <guid>http://www.phpdeveloper.org/news/11291</guid>
      <link>http://www.phpdeveloper.org/news/11291</link>
      <description><![CDATA[<p>
<i>Jeremy Johnstone</i> has come up with a <a href="http://www.jeremyjohnstone.com/blog/archives/2008/10/26/php-parser-for-os-x-plist-xml-files/">simple plist xml parser</a>. The plist format is what iTunes (and some other application) uses for its library files.
</p>
<blockquote>
Normally SimpleXML is enough to handle most <a href="http://www.jeremyjohnstone.com/blog/archives/tag/xml/">XML</a> <a href="http://www.jeremyjohnstone.com/blog/archives/tag/parsing/">parsing</a> needs, but the <a href="http://www.jeremyjohnstone.com/blog/archives/tag/plist/">plist</a> <A href="http://www.jeremyjohnstone.com/blog/archives/tag/xml/">XML</a> format is just broken enough to make <a href="http://www.jeremyjohnstone.com/blog/archives/tag/parsing/">parsing</a> it with SimpleXML virtually impossible. Since I hadn't played with XMLReader much, I thought it would be a good chance to give it a spin. For the anxious types, the code is available on <a href="http://github.com/jsjohnst/php_class_lib/tree/master">github in my php_class_lib project</a>, so dig right in.
</blockquote>
<p>
His <a href="http://www.jeremyjohnstone.com/blog/archives/2008/10/26/php-parser-for-os-x-plist-xml-files/">parser</a> takes in the name of the file to fetch and a parser() method is called to do the actual work. The contents of the file are returned as an array (he includes a print_r() of that output too).
</p>]]></description>
      <pubDate>Mon, 27 Oct 2008 09:35:56 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jani Hartikainen's Blog: How to make a file downloadable through your script]]></title>
      <guid>http://www.phpdeveloper.org/news/11181</guid>
      <link>http://www.phpdeveloper.org/news/11181</link>
      <description><![CDATA[<p>
<i>Jani Hartikainen</i> has <a href="http://codeutopia.net/blog/2008/10/10/php-tip-how-to-make-a-file-downloadable-through-your-script/">posted a quick tip</a> for Zend Framework users out there looking to force a download from their script.
</p>
<blockquote>
"How do I make a file downloadable through my script?" This seems to be a relatively common question on #zftalk nowadays, so here's a quick wrapup!
</blockquote>
<p>
He compares the two ways - the usual PHP-only way of using header() calls and echoing out the file versus the more Zend Framework way - using a Response object to pull in the content, set the headers and a helper to display/render the data output.
</p>]]></description>
      <pubDate>Fri, 10 Oct 2008 07:51:55 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Yannick's Blog: mbstring vs iconv benchmarking]]></title>
      <guid>http://www.phpdeveloper.org/news/11153</guid>
      <link>http://www.phpdeveloper.org/news/11153</link>
      <description><![CDATA[<p>
Recently on his blog <i>Yannick</i> has done some benchmarking <a href="http://dokeoslead.wordpress.com/2008/10/05/mbstring-vs-iconv-benchmarking/">comparing mbstring and iconv</a> in PHP 5.2.4 release.
</p>
<blockquote>
Following up on <a href="http://dokeoslead.wordpress.com/2008/04/22/mbstring-vs-iconv/">my previous post</a> about the differences between the mbstring and iconv international characters libraries (which resulted in a tentative conclusion that nobody knew anything about those differences), and particularly the comments by <a href="http://www.entidi.it/">Nicola</a>, we have combined forces (mostly efforts from Nicola, actually) to provide you with a little benchmarking, if that can help you decide.
</blockquote>
<p>
His code for the test script is included (for you to gather your own results) and a full listing of his results comparing the effects of possible caching, running up to ten executions. You can download the text file that he ran the script on <a href="http://mirror3.mirrors.tds.net/pub/gutenberg.org/1/3/0/8/13083/13083-utf8.txt">here</a>.
</p>]]></description>
      <pubDate>Mon, 06 Oct 2008 12:50:20 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[IBM DeveloperWorks: Seven habits for writing secure PHP applications]]></title>
      <guid>http://www.phpdeveloper.org/news/11125</guid>
      <link>http://www.phpdeveloper.org/news/11125</link>
      <description><![CDATA[<p>
The IBM DeveloperWorks site has <a href="http://www.ibm.com/developerworks/opensource/library/os-php-secure-apps/index.html?ca=dgr-btw01PHP-7Habits&S_TACT=105AGX59&S_CMP=grsite-btw01">posted some advice</a> that can help keep you, your application and your data safe from security-related attacks.
</p>
<blockquote>
Security in a PHP application includes remote and local security concerns. Discover the habits PHP developers should get into to implement Web applications that have both characteristics. 
</blockquote>
<p>
The habits in <a href="http://www.ibm.com/developerworks/opensource/library/os-php-secure-apps/index.html?ca=dgr-btw01PHP-7Habits&S_TACT=105AGX59&S_CMP=grsite-btw01">their list</a> are:
</p>
<ul>
<li>Validate input
<li>Guard your file system
<li>Guard your database
<li>Guard your session
<li>Guard against XSS vulnerabilities
<li>Guard against invalid posts
<li>Protect against CSRF
</ul>
<p>
Each comes with their own explanation and for some, code to help you spot the mistakes and correct them.
</p>]]></description>
      <pubDate>Wed, 01 Oct 2008 10:28:55 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: PHP RefCardz Released]]></title>
      <guid>http://www.phpdeveloper.org/news/11111</guid>
      <link>http://www.phpdeveloper.org/news/11111</link>
      <description><![CDATA[<p>
The folks over at DZone have added to their RefCardz selection with <a href="http://refcardz.dzone.com/refcardz/php">a PHP version</a> quick reference card.
</p>
<blockquote>
PHP is the world's most popular server-side Web scripting language. This reference card was created to help you quickly navigate some of PHP's most commonplace features, including objectoriented programming, array and string manipulation, regular expressions, and MySQL integration.
</blockquote>
<p>
<a href="http://refcardz.dzone.com/refcardz/php">The card</a> (created by <i>Jason Gilmore</i>) is available for free download (PDF) from the DZone website.
</p>]]></description>
      <pubDate>Mon, 29 Sep 2008 13:17:15 -0500</pubDate>
    </item>
  </channel>
</rss>
