<?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>Sat, 22 Nov 2008 02:31:54 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[DevShed: Output Buffering ]]></title>
      <guid>http://www.phpdeveloper.org/news/10950</guid>
      <link>http://www.phpdeveloper.org/news/10950</link>
      <description><![CDATA[<p>
<a href="http://www.devshed.com/c/a/PHP/Output-Buffering/">This new tutorial</a> from DevShed introduces something that could make a pretty profound impact on your application if used correctly - output buffering.
</p>
<blockquote>
Output control (or output buffering) allows you to write and execute your scripts normally but send data to the web browser at selected times. The main benefit of this system is that you can call the header(), setcookie() and session_start() functions at any place in your scripts without having to worry about the "headers already sent" error message.
</blockquote>
<p>
They start with the basics - the functions and what they do - then move on to an example, a login form, that uses the buffering to capture errors and html to be flushed and echoed at the end.
</p>]]></description>
      <pubDate>Wed, 03 Sep 2008 08:48:16 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Internet Super Hero Blog: mysqlnd saves 40% memory, finally (new tuning options)!]]></title>
      <guid>http://www.phpdeveloper.org/news/8536</guid>
      <link>http://www.phpdeveloper.org/news/8536</link>
      <description><![CDATA[<p>
Even more good news for mysqlnd users out there - according to <a href="http://blog.ulf-wendel.de/?p=157">this new post</a> on the Internet Super Hero blog, some of the tuning options it enables can help you save 40% of the memory you were using before.
</p>
<blockquote>
mysqlnd saves memory. It consumes half as much memory as libmysql. This is what we have been convinced of. This is what we taught you. Then I tried to test it and made Andrey get nervous for a few hours'¦ Meanwhile he is fine again and we can announce: mysqlnd saves memory, not only in theory, we tested it - we can proof it, can we?
</blockquote>
<p>
The <a href="http://blog.ulf-wendel.de/?p=157">proof</a> comes in the form of a few "tricks" and some of the settings that the software can use to optimize buffer sizes. Benchmarks (and the code to run them) are also included to show what the differences are between mysqlnd and libmysql.
</p>]]></description>
      <pubDate>Mon, 27 Aug 2007 12:11:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Secunia: Cisco Products PHP "htmlentities()" and "htmlspecialchars()" Buffer Overflows]]></title>
      <guid>http://www.phpdeveloper.org/news/7711</guid>
      <link>http://www.phpdeveloper.org/news/7711</link>
      <description><![CDATA[<p>
Cicso product users should check out <a href="http://secunia.com/advisories/25047/">this latest issue</a> Secunia has released today - a problem with the htmlentities and htmlspecialchars functions that can lead to buffer overflows.
</p>
<blockquote>
<p>
The vulnerabilities are caused due to boundary errors within the "htmlentities()" and "htmlspecialchars()" functions. If a PHP application uses these functions to process user-supplied input, this can be exploited to cause a heap-based buffer overflow by passing specially crafted data to the affected application.
</p>
<p>
Successful exploitation may allow execution of arbitrary code, but requires that the UTF-8 character set is selected.
</p>
</blockquote>
<p>
Products affected include the Network Analysis Modules (NAM) for Cisco 6500 switch, Cisco 7600 router/Branch Routers and the CiscoWorks Wireless LAN Solution Engine (WLSE) and CiscoWorks Wireless LAN Solution (among others, check out <a href="http://secunia.com/advisories/25047/">the advisory</a> for a more complete list). 
</p>
<p>
There are some patches that have been released to correct this issue (like the one for the Cisco Unified Application Environment) but others are still yet to come. They recommend limiting access to only trusted IPs and devices only to reduce the risk of the problem being exploited.
</p>]]></description>
      <pubDate>Thu, 26 Apr 2007 07:55:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Stoyan Stefanov's Blog: Performance tunning with PEAR::DB]]></title>
      <guid>http://www.phpdeveloper.org/news/7108</guid>
      <link>http://www.phpdeveloper.org/news/7108</link>
      <description><![CDATA[<p>
<i>Stoyan Stefanov</i> has <a href="http://www.phpied.com/performance-tunning-with-peardb/">posted some of his tips</a> to his blog today. Specifically, they deal with the PEAR::DB class, demonstrating some of the optimization of the package he's discovered in his coding experience.
</p>
<blockquote>
If you use <a href="http://pear.php.net/package/MDB2/">PEAR::MDB2</a>, you can set a custom debug handler and collect all the queries you execute for debugging and performance tunning purposes, <a href="http://www.phpied.com/performance-tuning-with-mdb2/">as shown before</a>. But what if you're using <a href="http://pear.php.net/package/DB/">PEAR::DB</a>? Well, since PEAR::DB doesn't allow you such a functionality out of the box, you can hack it a bit to get similar results.
</blockquote>
<p>
He <a href="http://www.phpied.com/performance-tunning-with-peardb/">creates a simple app</a> to help with the illustration - a number of select queries to grab zipcode information from the database. As it stands, the PEAR::DB package doesn't handle the debugging well, so he adds in a few more lines to buffer the connection and some reporting code to check the resulting output (as well as some of his sample reports).
</p>]]></description>
      <pubDate>Wed, 17 Jan 2007 09:35:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPit.net: Create your own HTML widgets with PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/5461</guid>
      <link>http://www.phpdeveloper.org/news/5461</link>
      <description><![CDATA[<p>
PHPit.net has posted yet another fine tutorail today, this time discussing the <a href="http://www.phpit.net/article/create-html-widgets-php/">creation of HTML widgets</a> with the help of PHP.
</p>
<quote>
<i>
In this tutorial you'll learn how to create your own HTML widgets, using nothing more than PHP. You'll be shown how to use an output buffer to create your own HTML tags, and then replacing them with dynamic content. The tutorial will finish by showing you how to create a Repeater Control.
</i>
</quote>
<p>
They <a href="http://www.phpit.net/article/create-html-widgets-php/">start</a> with an example of using an output buffer callback, a precursor to making your own HTML tags. It grabs the tag from the page, parses it out to perform an action, and spits back out the result. He also implements an HTML parser (one of his own) to correctly parse out the (correctly formatted) HTML into a PHP array. From there, it's just a simple matter of defining your own HTML tags and outputting the custom result inside the handler.
</p>
<p>
Finally, they get to the <a href="http://www.phpit.net/article/create-html-widgets-php/3/">Repeater control</a>, a method for displaying the results of the "HTML in PHP" array with all of its custom-tag glory.
</p>]]></description>
      <pubDate>Sun, 28 May 2006 17:57:56 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DevShed: An Object-based Approach to HTTP Compression in PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/5189</guid>
      <link>http://www.phpdeveloper.org/news/5189</link>
      <description><![CDATA[<p>
DevShed has posted <a href="http://www.devshed.com/c/a/PHP/An-Objectbased-Approach-to-HTTP-Compression-in-PHP/">part two</a> of their series on speeding up your page load times with HTTP compression, this time looking at a more object-oriented approach to handling the data you want to compress.
</p>
<quote>
<i>
<p>
Over the <a href="http://www.phpdeveloper.org/news/5147">first tutorial</a> of this series, I developed some hands-on examples, aimed at illustrating how "Gzip" encoding can be used within PHP scripts to compress the output generated by dynamic PHP pages. After transferring the encoded data to the client, contents are uncompressed and finally displayed on the browser.
</p>
<p>
By the end of this article, you should have the appropriate knowledge for building a simple data compressor class, in addition to using HTTP compression for reducing the download time of object-generated web pages.
</p>
</i>
</quote>
<p>
They start with the creation of a simple <a href="http://www.devshed.com/c/a/PHP/An-Objectbased-Approach-to-HTTP-Compression-in-PHP/1/">data compression class</a>, with functions to see if the browser supports gzip encoding and to get/send/compress the actual data. With the sample class created, they put it to the test with a more real-world example - echoing out user information from a MySQL database.
</p>]]></description>
      <pubDate>Mon, 17 Apr 2006 13:06:46 -0500</pubDate>
    </item>
  </channel>
</rss>
