<?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>Блог на Венелин Кочев &#187; PHP</title>
	<atom:link href="http://cyberroot.net/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://cyberroot.net</link>
	<description></description>
	<lastBuildDate>Sun, 09 Oct 2011 07:56:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Използване на php функции в javascript</title>
		<link>http://cyberroot.net/2009/04/14/%d0%b8%d0%b7%d0%bf%d0%be%d0%bb%d0%b7%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-php-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b2-javascript/</link>
		<comments>http://cyberroot.net/2009/04/14/%d0%b8%d0%b7%d0%bf%d0%be%d0%bb%d0%b7%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-php-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b2-javascript/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 09:35:46 +0000</pubDate>
		<dc:creator>Venelin Kochev</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Интернет]]></category>
		<category><![CDATA[base64_decode]]></category>
		<category><![CDATA[base64_encode]]></category>
		<category><![CDATA[count]]></category>
		<category><![CDATA[explode]]></category>
		<category><![CDATA[file_get_contents]]></category>
		<category><![CDATA[fopen]]></category>
		<category><![CDATA[javascript. function]]></category>

		<guid isPermaLink="false">http://cyberroot.org/?p=70</guid>
		<description><![CDATA[Мислили ли сте някога че възможно да използвате base64_encode / decode , count, explode, file_get_contents, fopen и много други в javascript? Е това вече е възможно с PHP.JS , а това е пълния списък на функциите.]]></description>
			<content:encoded><![CDATA[<p>Мислили ли сте някога че възможно да използвате <a target="_blank"href="http://bg2.php.net/manual/en/function.base64-encode.php">base64_encode</a> / <a target="_blank" href="http://bg2.php.net/manual/en/function.base64-decode.php">decode </a>, <a target="_blank" href="http://bg2.php.net/manual/en/function.count.php">count</a>, <a target="_blank" href="http://bg2.php.net/manual/en/function.explode.php">explode</a>, <a target="_blank" href="http://bg2.php.net/manual/en/function.file-get-contents.php">file_get_contents</a>, <a target="_blank" href="http://bg2.php.net/manual/en/function.fopen.php">fopen</a> и много други в javascript?<br />
Е това вече е възможно с <a target="_blank" href="http://phpjs.org/">PHP.JS</a> , а това е <a taget="_blank" href="http://phpjs.org/functions/index">пълния списък на функциите</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyberroot.net/2009/04/14/%d0%b8%d0%b7%d0%bf%d0%be%d0%bb%d0%b7%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-php-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b2-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP тестове за опитимизация</title>
		<link>http://cyberroot.net/2009/02/10/php-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d0%b5-%d0%b7%d0%b0-%d0%be%d0%bf%d0%b8%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f/</link>
		<comments>http://cyberroot.net/2009/02/10/php-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d0%b5-%d0%b7%d0%b0-%d0%be%d0%bf%d0%b8%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 11:21:52 +0000</pubDate>
		<dc:creator>Venelin Kochev</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Тестове]]></category>
		<category><![CDATA[isset]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[strlen]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[оптимизации]]></category>

		<guid isPermaLink="false">http://cyberroot.org/?p=48</guid>
		<description><![CDATA[Вчера от някъде ми попаднаха 40 съвета за оптимизране на PHP код, реших да направя някои тестове и да проверя дали това което казват е вярно 1. Не използвайте @ пред функция, резултати от тестовете: създадох един малък масив и пред print_r добавих @: със @: Array ( [3] => 1 [4] => 4 [5] [...]]]></description>
			<content:encoded><![CDATA[<p>Вчера от някъде ми попаднаха 40 съвета за оптимизране на <a href="http://php.net/" target="_blank">PHP</a> код, реших да направя някои тестове и да проверя дали това което казват е вярно <img src='http://cyberroot.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>1. Не използвайте <strong>@</strong> пред функция, резултати от тестовете:<br />
 създадох един малък масив и пред print_r добавих @:</p>
<p>със @:</p>
<blockquote><p>Array<br />
(<br />
    [3] => 1<br />
    [4] => 4<br />
    [5] => 1<br />
    [6] => 8<br />
    [7] => 9<br />
    [1] => 14<br />
)<br />
<strong>Exec Time: 0.0355</strong><br />
<strong>Memory Usage: 1044</strong></p></blockquote>
<p>без @:</p>
<blockquote><p>Array<br />
(<br />
    [3] => 1<br />
    [4] => 4<br />
    [5] => 1<br />
    [6] => 8<br />
    [7] => 9<br />
    [1] => 14<br />
)<br />
<strong>Exec Time: 0.0282</strong><br />
<strong>Memory Usage: 952</strong></p></blockquote>
<p>II. Номер 2 е проверка дължината на стринг, изпълнението на strlen забавя изпълнението на кода:</p>
<p>if (strlen($foo) < 5) { echo "Foo is too short"; }</p>
<blockquote><p>Foo is too short<br />
<strong>Exec Time: 0.0521</strong><br />
<strong>Memory Usage: 932</strong></p></blockquote>
<p>if (!isset($foo{5})) { echo &#8220;Foo is too short&#8221;; }</p>
<blockquote><p>Foo is too short<br />
<strong>Exec Time: 0.0009</strong><br />
<strong>Memory Usage: 816</strong></p></blockquote>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://cyberroot.net/2009/02/10/php-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d0%b5-%d0%b7%d0%b0-%d0%be%d0%bf%d0%b8%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Стриктна проверка</title>
		<link>http://cyberroot.net/2009/01/21/%d1%81%d1%82%d1%80%d0%b8%d0%ba%d1%82%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0/</link>
		<comments>http://cyberroot.net/2009/01/21/%d1%81%d1%82%d1%80%d0%b8%d0%ba%d1%82%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 23:59:20 +0000</pubDate>
		<dc:creator>Venelin Kochev</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Уеб]]></category>
		<category><![CDATA[check]]></category>
		<category><![CDATA[if]]></category>
		<category><![CDATA[null]]></category>

		<guid isPermaLink="false">http://cyberroot.org/?p=32</guid>
		<description><![CDATA[Е на това му се вика &#8220;яка&#8221; проверка: &#60;?php if &#40;$value == NULL&#41; &#123; $value=0; &#125; if &#40;$value == &#34;&#34;&#41; &#123; $value=0; &#125; if &#40;$value == null&#41; &#123; $value=0; &#125; if &#40;$value == &#34;null&#34;&#41; &#123; $value=0; &#125; if &#40;!$value&#41; &#123;$value=0;&#125; ?&#62;]]></description>
			<content:encoded><![CDATA[<p>Е на това му се вика &#8220;яка&#8221; проверка:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span> <span style="color: #339933;">==</span> <span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$value</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$value</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span> <span style="color: #339933;">==</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$value</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;null&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$value</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span>
 <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #000088;">$value</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://cyberroot.net/2009/01/21/%d1%81%d1%82%d1%80%d0%b8%d0%ba%d1%82%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Премахване на PHPSESSID</title>
		<link>http://cyberroot.net/2008/04/16/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-phpsessid/</link>
		<comments>http://cyberroot.net/2008/04/16/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-phpsessid/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 13:59:15 +0000</pubDate>
		<dc:creator>Venelin Kochev</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[phpsessid]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://cyberroot.org/?p=11</guid>
		<description><![CDATA[Премахването на PHPSESSID от линковете по страницата става по следния начин. В .htaccess: php_flag session.use_trans_sid off или php_value session.use_only_cookies 1 php_value session.use_trans_sid 0 В php код: ini_set&#40;'session.use_trans_sid', false&#41;; Като трябва да бъде преди session_start();]]></description>
			<content:encoded><![CDATA[<p>Премахването на PHPSESSID от линковете по страницата става по следния начин.<br />
В .htaccess:</p>
<blockquote><p>
php_flag session.use_trans_sid off
</p></blockquote>
<p>или</p>
<blockquote><p>
php_value session.use_only_cookies 1<br />
php_value session.use_trans_sid 0
</p></blockquote>
<p>В php код:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'session.use_trans_sid'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Като трябва да бъде преди <strong>session_start();</strong></p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://cyberroot.net/2008/04/16/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-phpsessid/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alternative PHP Cache</title>
		<link>http://cyberroot.net/2008/04/04/alternative-php-cache/</link>
		<comments>http://cyberroot.net/2008/04/04/alternative-php-cache/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 12:10:06 +0000</pubDate>
		<dc:creator>Venelin Kochev</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[Cache]]></category>

		<guid isPermaLink="false">http://cyberroot.org/?p=9</guid>
		<description><![CDATA[APC е PECL extension за PHP, който позволява кеширането на данни и по този начин примерно се избягва изпълнението на една MySQL заявка и ако тя връща едни и същи данни сами се сещате, че е излишно да се изпълнява всеки път, разбира се може да се хардкод-не резултата в кода, но по добрия вариант [...]]]></description>
			<content:encoded><![CDATA[<p><a title="APC" href="http://bg.php.net/apc" target="_blank">APC</a> е <a href="http://pecl.php.net/" target="_blank"> PECL</a> extension за PHP, който позволява кеширането на данни и по този начин примерно се избягва изпълнението на една MySQL заявка и ако тя връща едни и същи данни сами се сещате, че е излишно да се изпълнява всеки път, разбира се може да се хардкод-не резултата в кода, но по добрия вариант за мен е кеширането. Преди време тествах различните кеширащи системи от тези тестове са ми останали няколко класове, които реших да споделя.</p>
<p>APC Cache Class:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * Alternative PHP Cache Class
 * 
 * @param 	      int $lifetime
 * @author 	      Venelin Kochev &lt; vkwebdev@gmail.com &gt;
 * @version 	      1.0
 * @link 		http://cyberroot.org
 * @copyright 	     2008 Venelin Kochev
 *
 */</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> APCCache<span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//Cache life time</span>
	<span style="color: #666666; font-style: italic;">//@param: integer</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$lifetime</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">3600</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$lifetime</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
	   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">extension_loaded</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'apc'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
             <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;b&gt;Fatal Error:&lt;/b&gt; Cache::__construct() - The apc extension must be loaded for using Cache !'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	   <span style="color: #009900;">&#125;</span>
&nbsp;
           <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$lifetime</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">lifetime</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$lifetime</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009933; font-style: italic;">/**
     * Save cache data.
     *
     * @param array $data
     * @param string $id
     * @return boolean
     */</span>	
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> save<span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #339933;">,</span> <span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> apc_store<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #339933;">,</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">lifetime</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009933; font-style: italic;">/**
     * Load cache by Key
     *
     * @param string $id
     * @return array
     * 
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> load<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000088;">$tmp</span> <span style="color: #339933;">=</span> apc_fetch<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmp</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">return</span> <span style="color: #000088;">$tmp</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #009933; font-style: italic;">/**
     * Delete cache by Key.
     *
     * @param string $id
     * @return boolean
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> remove<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> apc_delete<span style="color: #009900;">&#40;</span><span style="color: #000088;">$id</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Използва се по следния начин:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000088;">$lifetime</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">3500</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$cache</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> APCCahce<span style="color: #009900;">&#40;</span><span style="color: #000088;">$lifetime</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$count</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$cache</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'count_category'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$count</span> <span style="color: #339933;">=</span> GetCount<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// трябва да връща резултата от MySQL query-то.</span>
   <span style="color: #000088;">$cache</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">save</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$count</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'count_category'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Така се прави проверка дали кеш-а съществува, ако го няма се създава, при следващото извикване заявката няма да се изпълни и ще бъде зареден кеш-а. <img src='http://cyberroot.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://cyberroot.net/2008/04/04/alternative-php-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP redirect</title>
		<link>http://cyberroot.net/2008/04/03/php-redirect/</link>
		<comments>http://cyberroot.net/2008/04/03/php-redirect/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 10:16:20 +0000</pubDate>
		<dc:creator>Venelin Kochev</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[redirect]]></category>

		<guid isPermaLink="false">http://cyberroot.org/?p=8</guid>
		<description><![CDATA[Случвало ли ви се е да ползвате: header&#40;'Location: http://google.com/'&#41;; и в този момента да ви се отговори: Cannot modify header information &#8211; headers already sent by … и тогава се налага да го заменяте с meta redirect или някакъв redirect с javascript, а също и ob_start(); ob_end_flush(); което си е дразнещо. Ето една алтернатива: &#60;?php [...]]]></description>
			<content:encoded><![CDATA[<p>Случвало ли ви се е да ползвате:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Location: http://google.com/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>и в този момента да ви се отговори:</p>
<blockquote><p>Cannot modify header information &#8211; headers already sent by …</p></blockquote>
<p>и тогава се налага да го заменяте с meta redirect или някакъв redirect с javascript, а също и ob_start(); ob_end_flush(); което си е дразнещо.</p>
<p>Ето една алтернатива:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> redirect<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">headers_sent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Location: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;script type=&quot;text/javascript&quot;&gt;'</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'window.location.href=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$url</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;;'</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/script&gt;'</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;noscript&gt;'</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;meta http-equiv=&quot;refresh&quot; content=&quot;0;url='</span><span style="color: #339933;">.</span><span style="color: #000088;">$url</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; /&gt;'</span><span style="color: #339933;">;</span>
     <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/noscript&gt;'</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Тази функция проверява дали са изпратени header-ите, ако не са redirect-ва с PHP функцията “header”, ако са изпратени вече redirect-a се прави с javascript, а ако по някаква случайност потребителя няма support на javascript, redirect-a става с meta refresh на HTML</p>
<p>За тези които умуват още, ползва се така:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">redirect<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://google.com/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://cyberroot.net/2008/04/03/php-redirect/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

