<?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>Blog of Vardan Grigoryan</title>
	<atom:link href="http://grigoryan.biz/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://grigoryan.biz/blog</link>
	<description>Մի վեբ ծրագրավորողի բլոգ</description>
	<lastBuildDate>Tue, 27 Jul 2010 06:05:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>

   <image>
    <title>Blog of Vardan Grigoryan</title>
    <url>http://0.gravatar.com/avatar/4c04620d6c47da968076d22b9708921f?s=</url>
    <link>http://grigoryan.biz/blog</link>
   </image>
		<item>
		<title>Ինչ է ռեգուլյար արտահայտությունը և ինչպես այն ուտել</title>
		<link>http://grigoryan.biz/blog/2010/07/27/php-regular-expressions/</link>
		<comments>http://grigoryan.biz/blog/2010/07/27/php-regular-expressions/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 06:05:17 +0000</pubDate>
		<dc:creator>Vardan Grigoryan</dc:creator>
				<category><![CDATA[Խորհուրդներ]]></category>
		<category><![CDATA[Հոդվածներ]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[regular expressions]]></category>
		<category><![CDATA[խորհուրդներ]]></category>
		<category><![CDATA[հոդվածներ]]></category>
		<category><![CDATA[ռեգուլյար արտահայտություններ]]></category>

		<guid isPermaLink="false">http://grigoryan.biz/blog/?p=421</guid>
		<description><![CDATA[Ռեգուլյար արտահայտությունները շատ կարևոր են վեբ ծրագրավորողների համար: Նրանք հնարավորություն են տալիս գտնել, ճանաչել և հարկ եղած դեպքում փոփոխել ինչ-որ տեքստ, բառեր, կամ պարզապես սիմվոլների հաջորդականություններ: Այս գրառմանս մեջ ուզում եմ անդրադառնալ մի քանի հատ առավել շատ օգտագործվող ռեգուլյար արտահայտություններին: Սկիզբ Բազմաթիվ սկսնակ ծրագրավորողների համար շատ դժվար է հասկանալ, առավել ևս հիշել ռեգուլյար արտահայտությունների շաբլոնները, [...]]]></description>
			<content:encoded><![CDATA[<p>Ռեգուլյար արտահայտությունները շատ կարևոր են վեբ ծրագրավորողների համար: Նրանք հնարավորություն են տալիս գտնել, ճանաչել և հարկ եղած դեպքում փոփոխել ինչ-որ տեքստ, բառեր, կամ պարզապես սիմվոլների հաջորդականություններ: Այս գրառմանս մեջ ուզում եմ անդրադառնալ մի քանի հատ առավել շատ օգտագործվող ռեգուլյար արտահայտություններին:</p>
<h3>Սկիզբ</h3>
<p>Բազմաթիվ սկսնակ ծրագրավորողների համար շատ դժվար է հասկանալ, առավել ևս հիշել ռեգուլյար արտահայտությունների շաբլոնները, բայց երբ սկսում ենք ուսումնասիրել նրանք և գտնել օրինաչափություններ, ամեն ինչ դառնում է շատ հասկանալի: Նախքան ավելի բարդ բաներին անցնելը, ուզում եմ գրել, թե ինչից է ամեն ինչ սկսվում: Ուշադիր նայեք ստորև բերված աղյուսակը.<span id="more-421"></span></p>
<h3>Ռեգուլյար արտահայտությունների սինտակսիսը</h3>
<table border="1" cellspacing="2" cellpadding="5" width="650px">
<tbody>
<tr>
<td width="250px">Ռեգուլյար արտահայտությունը</td>
<td width="400px">Նշանակությունը</td>
</tr>
<tr>
<td>foo</td>
<td>“foo” բառը</td>
</tr>
<tr>
<td>^foo</td>
<td>“foo”-ն որպես ինչ-որ արտահայտության սկիզբ</td>
</tr>
<tr>
<td>foo$</td>
<td>“foo”-ն որպես ինչ-որ արտահայտության վերջ</td>
</tr>
<tr>
<td>^foo$</td>
<td>“foo”-ն որպես ինչ-որ արտահայտության միակ բառ</td>
</tr>
<tr>
<td>[abc]</td>
<td>a, b, կամ c</td>
</tr>
<tr>
<td>[a-z]</td>
<td>ցանկացած լատինատառ փոքրատառ սիմվոլ</td>
</tr>
<tr>
<td>[^A-Z]</td>
<td>ցանկացած սիմվոլ, բացի լատինատառ մեծատառ սիմվոլներից</td>
</tr>
<tr>
<td>(gif|jpg)</td>
<td>կամ “gif” կամ “jpg”</td>
</tr>
<tr>
<td>[a-z]+</td>
<td>մեկ կամ ավելի լատինատառ փոքրատառ սիմվոլներ</td>
</tr>
<tr>
<td>[0-9.-]</td>
<td>ցանկացած թիվ, միջակետ և -</td>
</tr>
<tr>
<td>^[a-zA-Z0-9_]{1,}$</td>
<td>ցանկացած արտահայտություն, որը պարունակում է ամենաքիչը մեկ տառ, թիվ կամ _ նշանը</td>
</tr>
<tr>
<td>([wx])([yz])</td>
<td>wy, wz, xy, կամ xz</td>
</tr>
<tr>
<td>[^A-Za-z0-9]</td>
<td>ցանկացած սիմվոլ (բացի տառերից ու թվերից)</td>
</tr>
<tr>
<td>([A-Z]{3}|[0-9]{4})</td>
<td>արտահայտություն, որը պարունակում է կամ 3 հատ մեծատառ սիմվոլ, կամ 4 հատ թիվ</td>
</tr>
</tbody>
</table>
<h3><span id="more-47"> </span></h3>
<h3>Ռեգուլյար արտահայտությունների հետ օգտագործվող ֆունկցիաներ PHP-ում</h3>
<table border="1" cellspacing="2" cellpadding="5" width="650px">
<tbody>
<tr>
<th width="200px">Ֆունկցիայի անվանումը</th>
<th width="450px">Նկարագրությունը</th>
</tr>
<tr>
<td>preg_match()</td>
<td>Այս ֆունկցիան ստուգում է, արդյոք տրված արտահայտությունը համապատասխանում է տրված շաբլոնին և վերադարձնում TRUE, եթե համապատասխանում է, և FALSE` հակառակ դեպքում</td>
</tr>
<tr>
<td>preg_match_all()</td>
<td>վերադարձնում է տրված շաբլոնի բոլոր մուտքերը տրված արտահայտությունում</td>
</tr>
<tr>
<td>preg_replace()</td>
<td>Տրված արտահայտության մեջ կատարում է որոնում և փոփոխություն, ըստ տրված շաբլոնի</td>
</tr>
<tr>
<td>preg_split()</td>
<td>բաժանում է տրված տողը ենթատողերի` ըստ տրված շաբլոնի</td>
</tr>
<tr>
<td>preg_grep()</td>
<td>Տրված տողի համար վերադարձնում է տրված շաբլոնի մուտքերի մասիվը</td>
</tr>
<tr>
<td>preg_ quote()</td>
<td>Տրված տողի համար հատուկ սիմվոլներից առաջ հետադարձ սլեշ է դնում</td>
</tr>
</tbody>
</table>
<p>Ահա և վերջ&#8230; Հիմա կարող եմ արդեն անդրադառնալ հաճախ օգտագործվող օրինակներին`</p>
<h3>Դոմենային անվանման ճիշտ գրության ստուգում</h3>
<p>Ստուգենք, արդյոք տրված տողը ճիշտ է գրված, որպես դոմենային անվանում.</p>
<pre class="brush:php">$url = "http://grigoryan.biz/";
if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) {
    echo "Ճիշտ է";
} else {
    echo "Սխալ է";
}</pre>
<h3>Փոխում ենք կրկնակի չակերտները փոքր չակերտների</h3>
<pre class="brush:php">preg_replace('B"b([^"x84x93x94rn]+)b"B', '?1?', $text);</pre>
<p>Ստուգում ենք գաղտնաբառերը</p>
<p>Շատ հաճախ պետք է լինում ստուգել` արդյոք օգտագործողի կողմից մուտք արված գաղտնաբառը համապատասխանում է ինչ-որ կանոնների, օրինակ` ամենաքիչը 6 սիմվոլ, տառեր, թվեր և այլն: Ահա նման օրինակ.</p>
<pre class="brush:php">preg_match('A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z',$password);</pre>
<h3>Սիմվոլների փոխարնիում սմայլիկներով</h3>
<p>Շատ հաճախ սոցիալական ցանցերում տեսնում ենք, երբ մուտքագրելով &#8220;: )&#8221; էկրանին երևում է սմայլիկ: Ահա փոխակերպման օրինակ.</p>
<pre class="brush:applescript">$texte='Տեքստ և սմայիլկ <img src='http://grigoryan.biz/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ';
echo str_replace(':-)','&lt;img src="smileys/souriant.png"&gt;',$texte);</pre>
<p>Վերջին օրինակն այնքան էլ չէր վերաբերում ռեգուլյար արտահայտություններին, ուղղակի նմանատիպ օրինակ էր&#8230;</p>
<p>Դե ինչ&#8230; այսօր այսքանը&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://grigoryan.biz/blog/2010/07/27/php-regular-expressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Տրանսլիտ GOVAZD</title>
		<link>http://grigoryan.biz/blog/2010/07/20/translit-govazd/</link>
		<comments>http://grigoryan.biz/blog/2010/07/20/translit-govazd/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 19:02:31 +0000</pubDate>
		<dc:creator>Vardan Grigoryan</dc:creator>
				<category><![CDATA[Դեսից Դենից]]></category>
		<category><![CDATA[Բլոգինգային նյութեր]]></category>
		<category><![CDATA[Մտորումներս]]></category>
		<category><![CDATA[տրանսլիտ գովազդ]]></category>
		<category><![CDATA[տրանսլիտ հայերեն]]></category>

		<guid isPermaLink="false">http://grigoryan.biz/blog/?p=412</guid>
		<description><![CDATA[Բլոգիս մեջ նման թեմա երբեք չեմ շոշափել, բայց NeoVision սեմինարների շարքի ժամանակ, շատ էինք խոսում հայկական տրանսլիտ հայերենով գրող բլոգների ու բլոգերների մասին, ու այս գրառումս հենց դրա մասին է: Տրանսլիտն այնքան է ընդունվել մեր հասարակության կողմից, որ որոշ ինտերնետ պրովայդերներ նույնիսկ իրենց գովազդային պաստառները փողոցներում կպցնում են տրանսլիտ հայերենով գրված: Խոսքս սրա մասին է` [...]]]></description>
			<content:encoded><![CDATA[<p>Բլոգիս մեջ նման թեմա երբեք չեմ շոշափել, բայց NeoVision սեմինարների շարքի ժամանակ, շատ էինք խոսում հայկական տրանսլիտ հայերենով գրող բլոգների ու բլոգերների մասին, ու այս գրառումս հենց դրա մասին է:</p>
<p>Տրանսլիտն այնքան է ընդունվել մեր հասարակության կողմից, որ որոշ ինտերնետ պրովայդերներ նույնիսկ իրենց գովազդային պաստառները փողոցներում կպցնում են տրանսլիտ հայերենով գրված: Խոսքս սրա մասին է`</p>
<div id="attachment_413" class="wp-caption alignnone" style="width: 369px"><a href="http://grigoryan.biz/blog/wp-content/uploads/2010/07/icon.jpg"><img class="size-full  wp-image-413  " title="icon" src="http://grigoryan.biz/blog/wp-content/uploads/2010/07/icon.jpg" alt="Տրանսլիտ գովազդ մեր փողոցներում" width="359" height="528" /></a><p class="wp-caption-text">Տրանսլիտ գովազդ մեր փողոցներում</p></div>
<p>Էստեղ մեղքը չգիտեմ ինչքանով է պատկանում դիզայներին, ինչքանով տվյալ ընկերությանը, ու ինչու չէ, նաև տպարանին: Ամեն դեպքում երևույթն իմ կողմից անընդունելի է և ով ինչպես ուզում է թող հասկանա այս գրառումս:</p>
<p>ԵՍ ԴԵՄ ԵՄ ՏՐԱՆՍԼԻՏ ՀԱՅԵՐԵՆԻՆ&#8230;..</p>
]]></content:encoded>
			<wfw:commentRss>http://grigoryan.biz/blog/2010/07/20/translit-govazd/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>5 օգտակար խորհուրդներ PHP-ից</title>
		<link>http://grigoryan.biz/blog/2010/07/18/5-useful-php-functions/</link>
		<comments>http://grigoryan.biz/blog/2010/07/18/5-useful-php-functions/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 20:23:40 +0000</pubDate>
		<dc:creator>Vardan Grigoryan</dc:creator>
				<category><![CDATA[Խորհուրդներ]]></category>
		<category><![CDATA[Հոդվածներ]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php functions]]></category>
		<category><![CDATA[useful functions]]></category>
		<category><![CDATA[խորհուրդներ]]></category>
		<category><![CDATA[կարևոր ֆունկցիաներ]]></category>
		<category><![CDATA[հոդվածներ]]></category>
		<category><![CDATA[ֆունկցիաներ]]></category>

		<guid isPermaLink="false">http://grigoryan.biz/blog/?p=394</guid>
		<description><![CDATA[Նույնիսկ երկար տարիներ PHP լեզուն օգտագործելուց հետո էլ, կան ֆունկցիաներ, որոնց մասին մենք տեղյակ չենք: Այդ ֆունկցիաների մեջ լինում են այնպիսինները, որոնք շատ կարևոր են, և քանի որ PHP-ի ձեռնարկները ոչ բոլորն են կարդում, և բացի դրանից այդ ձեռնարկներում ոչ բոլոր ֆունկցիաների մասին է գրված, ուստիև հարկ է լինում ինքնակատարելագործվել: Ուզում եմ ներկայացնել PHP-ի 5 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://grigoryan.biz/blog/wp-content/uploads/2010/07/php.jpg"><img class="alignleft size-full wp-image-396" style="border: 0pt none; margin: 3px;" title="php" src="http://grigoryan.biz/blog/wp-content/uploads/2010/07/php.jpg" alt="" width="200" height="200" /></a>Նույնիսկ երկար տարիներ PHP լեզուն օգտագործելուց հետո էլ, կան ֆունկցիաներ, որոնց մասին մենք տեղյակ չենք: Այդ ֆունկցիաների մեջ լինում են այնպիսինները, որոնք շատ կարևոր են, և քանի որ PHP-ի ձեռնարկները ոչ բոլորն են կարդում, և բացի դրանից այդ ձեռնարկներում ոչ բոլոր ֆունկցիաների մասին է գրված, ուստիև հարկ է լինում ինքնակատարելագործվել:</p>
<p>Ուզում եմ ներկայացնել <strong>PHP-ի 5 օգտակար ֆունկցիաներ</strong>, որոնք գուցեև Ձեզ արդեն պետք են եկել, ու Դուք ստիպված եք եղել ինչ-ինչ մեթոդներով շրջանցել դրանց:</p>
<p><span id="more-394"></span></p>
<h3>1. Ֆունկցիաներ` կամայական քանակով մուտքային փոփոխականներով</h3>
<p>Հավանաբար քաջատեղյակ եք, որ PHP-ն թույլ է տալիս սահմանել ֆունկցիաներ` որոշակի քանակությամբ մուտքային փոփոխականներով: Բայց պարզվում է, որ կա հնարավորություն սահմանել ֆունկցիա` առանց մուտքային փոփոխականների սահմանափակման: Այսինքն, նույն ֆունկցիան կարող եք օգտագործել և 1 մուտքային փոփոխականի, և 100,  և նույնիսկ` առանց որևէ մուտքային փոփոխականի: Ստորև ներկայացնում եմ սահմանափակ քանակությամբ մուտքային փոփոխականներ ունեց ֆունկցիան նկարագրող PHP կոդը`</p>
<pre class="brush:php">// ֆունկցիա, որն ունի 2 մուտքային փոփոխական
function foo($arg1 = '', $arg2 = '') {

	echo "arg1: $arg1\n";
	echo "arg2: $arg2\n";

}

foo('hello','world');
/* կարտատպի էկրանին:
arg1: hello
arg2: world
*/

foo();
/* կարտատպի էկրանին:
arg1:
arg2:
*/
</pre>
<p>Հիմա եկեք տեսնենք, թե ինչպես կարող ենք կառուցել ֆունկցիա` ցանկացած քանակությամբ մուտքային փոփոխականներով: Դրա համար կօգտագործենք <a title="PHP ֆունկցիա" href="http://us2.php.net/manual/en/function.func-get-args.php" target="_blank">func_get_args()</a> ֆունկցիան`</p>
<pre class="brush:php">// արգումենտների քանակը կարող է դատարկ լինել
function foo() {

	// ստանում ենք բոլոր արգումենտները
	$args = func_get_args();

	foreach ($args as $k =&gt; $v) {
		echo "arg".($k+1).": $v\n";
	}

}

foo();
/* սա ոչինչ չի արտատպի էկրանին*/

foo('hello');
/* սա էկրանին կարտատպի հետևյալը`
arg1: hello
*/

foo('hello', 'world', 'again');
/* իսկ սա կարտատպի`
arg1: hello
arg2: world
arg3: again
*/
</pre>
<p>Ինչպես տեսնում ենք, ամեն ինչ բավականին պարզ է:</p>
<h3>2. Օգտագործեք GLOBE() ֆունկցիան` ֆայլեր որոնելիս</h3>
<p>Ուզում եմ ծանոթանցել մի ֆունկցիայի հետ, որը շատ նման <a title="PHP ֆունկցիա" href="http://php.net/manual/en/function.scandir.php" target="_blank">scandir()</a> ֆունկցիային, և որի անունն է <a title="PHP ֆունկցիա" href="http://us.php.net/manual/en/function.glob.php" target="_blank">globe()</a>: Այս ֆունկցիան թույլ է տալիս կատարել ֆայլերի որոնում` օգտագործելով որոշ որոնման կանոններ, որոնք կհեշտացնեն որոնումը:</p>
<pre class="brush:php">// ստանում ենք բոլոր PHP ֆայլերը
$files = glob('*.php');

print_r($files);
/* արտատպվում է մոտավորապես այսպիսի բան`
Array
(
    [0] =&gt; phptest.php
    [1] =&gt; pi.php
    [2] =&gt; post_output.php
    [3] =&gt; test.php
)
*/</pre>
<p>Կարող ենք որոնել նաև մի քանի ֆորմատի ֆայլեր, ահա այսպես`</p>
<pre class="brush:php">// ստանալ բոլոր php և txt ֆայլերը
$files = glob('*.{php,txt}', GLOB_BRACE);

print_r($files);
/* մոտավորապես այսպիսի բան`
Array
(
    [0] =&gt; phptest.php
    [1] =&gt; pi.php
    [2] =&gt; post_output.php
    [3] =&gt; test.php
    [4] =&gt; log.txt
    [5] =&gt; test.txt
)
*/</pre>
<p>Եվ իհարկե կարող ենք որոնել կոնկրետ ինչ-որ արկղում, կոնկրետ ինչ-որ կրիտերիայով`</p>
<pre class="brush:php">$files = glob('../images/a*.jpg');

print_r($files);
/* Դուրս կբերի մոտավորապես`
Array
(
    [0] =&gt; ../images/apple.jpg
    [1] =&gt; ../images/art.jpg
)
*/
</pre>
<p>Կամ նմանատիպ մեկ այլ օրինակ` օգտագործելով <a title="PHP ֆունկցիա" href="http://php.net/manual/en/function.realpath.php" target="_blank">realpath()</a> ֆունկցիան.</p>
<pre class="brush:php">$files = glob('../images/a*.jpg');

// կիրառում է ֆունկցիան բոլոր էլեմենտրների համար
$files = array_map('realpath',$files);

print_r($files);
/* դուրս կբերի մոտավորապես այսպիսի բան:
Array
(
    [0] =&gt; C:\wamp\www\images\apple.jpg
    [1] =&gt; C:\wamp\www\images\art.jpg
)
*/</pre>
<p>3. Գեներացնում ենք ունիկալ ID-ներ</p>
<p>Շատ հաճախ ծրագրավորողին պետք է լինում գեներացնել պատահական սիմվոլների ունիկալ հաջորդականություն` ունիկալ տող, որի համար նրանք օգտագործում են md5() ֆունկցիան`</p>
<pre class="brush:php">// ունիկալ տողի ստեղծում
echo md5(time() . mt_rand(1,1000000));
</pre>
<p>Բայց PHP-ում կա նաև հատուկ սրա համար ստեղվծա ֆունկցիա, որի անունն է <a title="PHP ֆունկցիա" href="http://us2.php.net/manual/en/function.uniqid.php" target="_blank">uniqid() </a>`</p>
<pre class="brush:php">// ունիկալ տողի գեներացի
echo uniqid();
/* pկարտատպի
4bd67c947233e
*/

// մեկ այլ ունիկալ տող
echo uniqid();
/* կարտատպվի
4bd67c9472340
*/
</pre>
<p>Երևի նկատեցիք, որ արտատպված ունիկալ տողերն իրականում ունեն սկզբի որոշակի քանակությամբ սիմվոլների նույնություն, որի շնորհիվ էլ ֆունկցիան աշխատում է արագ և համեմատաբար քիչ ժամանակ և ռեսուրս է պահանջում սերվերից:</p>
<p>Կրկնություններից խուսափելու համար կարող ենք ունիկալ ID-ները կազմել նախածանցներով`</p>
<pre class="brush:php">// Պրեֆիքսներով
echo uniqid('foo_');
/* կարտատպվի
foo_4bd67d6cd8b8f
*/

// բազազանություն
echo uniqid('',true);
/* կարտատպվի
4bd67d6cd8b926.12135106
*/

// երկուսը միասին
echo uniqid('bar_',true);
/* կարտատպվի
bar_4bd67da367b650.43684647
*/</pre>
<h3>4. Տեքստի սեղմում</h3>
<p>Երբ խոսում ենք սեղմումների մասին, առաջինը որ մտածում ենք, դա ֆայլերի սողմումներն են ZIP կամ RAR ֆորմատներով: PHP լեզվում էլ հնարավոր է սեղմել երկար տեքստը: Ուզում եմ ներկայացնել երկու ֆունկցիաներ` <a title="PHP ֆունկցիա" href="http://php.net/manual/en/function.gzcompress.php" target="_blank">gzcompress()</a> և <a title="PHP ֆունկցիա" href="http://www.php.net/manual/en/function.gzuncompress.php" target="_blank">gzuncompress()</a> .</p>
<pre class="brush:php">$string =
"Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nunc ut elit id mi ultricies
adipiscing. Nulla facilisi. Praesent pulvinar,
sapien vel feugiat vestibulum, nulla dui pretium orci,
non ultricies elit lacus quis ante. Lorem ipsum dolor
sit amet, consectetur adipiscing elit. Aliquam
pretium ullamcorper urna quis iaculis. Etiam ac massa
sed turpis tempor luctus. Curabitur sed nibh eu elit
mollis congue. Praesent ipsum diam, consectetur vitae
ornare a, aliquam a nunc. In id magna pellentesque
tellus posuere adipiscing. Sed non mi metus, at lacinia
augue. Sed magna nisi, ornare in mollis in, mollis
sed nunc. Etiam at justo in leo congue mollis.
Nullam in neque eget metus hendrerit scelerisque
eu non enim. Ut malesuada lacus eu nulla bibendum
id euismod urna sodales. ";

$compressed = gzcompress($string);

echo "Original size: ". strlen($string)."\n";
/* կարտատպվի
Original size: 800
*/

echo "Compressed size: ". strlen($compressed)."\n";
/* կարտատպվի
Compressed size: 418
*/

// վերադարձնում ենք հին տեսքին
$original = gzuncompress($compressed);
</pre>
<p>Տեսանք, որ հնարավոր է սեղմել մինչև 50%-ի չափով: Նույն գործողություններն են կատարում նաև <a href="http://www.php.net/manual/en/function.gzencode.php">gzencode()</a> և <a href="http://www.php.net/manual/en/function.gzdecode.php">gzdecode()</a> ֆունկցիաները, որոնք սակայն աշխատում են այլ ալգորիթմով:</p>
<h3>5. Ֆունկցիա` Register_Shutdown_Function</h3>
<p>Պատկերացրեք Ձեզ պետք է լինում ասենք ֆիքսել ինչ-որ մի պահ և հաշվել դրանից սկսած մինրև սկրիպտի կատարման ավարտը ինչքան ժամանակ է տևում: Դուք կարող եք պարզապես գրել`</p>
<pre class="brush:php">// ֆիքսում ենք պահը
$start_time = microtime(true);

// ինչ-որ գործողություններ
// ...

// ինչքան է աշխատել սկրիպտը
echo "execution took: ".
		(microtime(true) - $start_time).
		" seconds.";
</pre>
<p>Առաջին հայացքից իհարկե ամեն ինչ լավ է: Բայց այս տարբերակում օրինակ ժամանակը չի հաշվարկվի, եթե հանկարծ ինչ-որ տեղ կոդի մեջ աշխատի exit() ֆունկցիան կամ եթե օգտագործողը բրաուզերում սեղմի ՍՏՈՊ կոճակին: Այս դեպքում առաջարկում եմ օգտագործել register_shutdown_function() անունով ֆունկցիան այսպես`</p>
<pre class="brush:perl">$start_time = microtime(true);

register_shutdown_function('my_shutdown');

// ինչ-որ գործողություններ
// ...

function my_shutdown() {
	global $start_time;

	echo "execution took: ".
			(microtime(true) - $start_time).
			" seconds.";
}
</pre>
<p>Սրանով հարցերը լուծվում են&#8230;</p>
<p>Դե ինչ&#8230; այսօրվա համար այսքանն էի պատրաստել, հետևեք բլոգիս ՀՈԴՎԱԾՆԵՐ բաժնին` մասնագիտական նյութերս այնտեղ եմ տեղադրելու:</p>
]]></content:encoded>
			<wfw:commentRss>http://grigoryan.biz/blog/2010/07/18/5-useful-php-functions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Youtube-ը և FIFA 2010-ը</title>
		<link>http://grigoryan.biz/blog/2010/06/27/youtube-fifa-2010/</link>
		<comments>http://grigoryan.biz/blog/2010/06/27/youtube-fifa-2010/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 22:45:51 +0000</pubDate>
		<dc:creator>Vardan Grigoryan</dc:creator>
				<category><![CDATA[Դեսից Դենից]]></category>
		<category><![CDATA[Մտորումներս]]></category>
		<category><![CDATA[Fifa 2010]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://grigoryan.biz/blog/?p=380</guid>
		<description><![CDATA[Չգիտեմ Գուգլի աշխատողներից ում խելքին ա փչել, բայց հաստատ Ֆիֆա 2010-ը լավ չի ազդում մարդկանց վրա: Ուրեմն էս Գուգլ-ենք նոր բան են ավելացրել իրանց ՅուԹուբի վիդեոներում&#8230;Ավելի կոնկրետ այ սա. Սա գիտե՞ք ինչ ա&#8230; Այ հենց սեղմեք, կպատկերացնեք Ձեզ մարզադաշտում նստած ու ինչ-որ մեկը կողքից ՄԵՂՎԻ ՁԱՅՆ ՀԱՆՈՂ էտ զիբիլներով գլուխներդ տանում ա: Հեհ&#8230;աշխարհ պահի&#8217;, իջնում [...]]]></description>
			<content:encoded><![CDATA[<p>Չգիտեմ Գուգլի աշխատողներից ում խելքին ա փչել, բայց հաստատ Ֆիֆա 2010-ը լավ չի ազդում մարդկանց վրա:</p>
<p>Ուրեմն էս Գուգլ-ենք նոր բան են ավելացրել իրանց ՅուԹուբի վիդեոներում&#8230;Ավելի կոնկրետ այ սա.</p>
<p><a href="http://grigoryan.biz/blog/wp-content/uploads/2010/06/youtube-fut.jpg"><img class="aligncenter size-full wp-image-381" title="youtube-fut" src="http://grigoryan.biz/blog/wp-content/uploads/2010/06/youtube-fut.jpg" alt="" width="612" height="113" /></a>Սա գիտե՞ք ինչ ա&#8230; Այ հենց սեղմեք, կպատկերացնեք Ձեզ մարզադաշտում նստած ու ինչ-որ մեկը կողքից ՄԵՂՎԻ ՁԱՅՆ ՀԱՆՈՂ էտ զիբիլներով գլուխներդ տանում ա:</p>
<p>Հեհ&#8230;աշխարհ պահի&#8217;, իջնում եմ&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://grigoryan.biz/blog/2010/06/27/youtube-fifa-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Իմ սիրելի 10 բլոգները</title>
		<link>http://grigoryan.biz/blog/2010/06/25/my-lovely-10-blogs/</link>
		<comments>http://grigoryan.biz/blog/2010/06/25/my-lovely-10-blogs/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 10:41:41 +0000</pubDate>
		<dc:creator>Vardan Grigoryan</dc:creator>
				<category><![CDATA[TOP 10]]></category>
		<category><![CDATA[top 10]]></category>
		<category><![CDATA[բլոգներ]]></category>
		<category><![CDATA[լավագույն տասնյակ]]></category>

		<guid isPermaLink="false">http://grigoryan.biz/blog/?p=369</guid>
		<description><![CDATA[Տասնյակի ավանդույթը շարունակում եմ` այս անգամ արդեն ներկայացնելով իմ սիրելի 10 բլոգները, որոնք ես կարդում եմ ամեն օր: Ցավոք այս 10-ից ոչ բոլորն են հայերեն, բայց հույս ունեմ, որ մոտ ապագայում տասնյակս միայն հայարեն բլոգներով կլցվի: Այս անգամ հորիզոնականներ չեմ սահմանում, որովհետև բոլորն էլ լավն են ու բոլորն էլ մեծ հաճույքով եմ մտնում: Շատերի գրառումները [...]]]></description>
			<content:encoded><![CDATA[<p>Տասնյակի ավանդույթը շարունակում եմ` այս անգամ արդեն ներկայացնելով իմ սիրելի 10 բլոգները, որոնք ես կարդում եմ ամեն օր: Ցավոք այս 10-ից ոչ բոլորն են հայերեն, բայց հույս ունեմ, որ մոտ ապագայում տասնյակս միայն հայարեն բլոգներով կլցվի:</p>
<p>Այս անգամ հորիզոնականներ չեմ սահմանում, որովհետև բոլորն էլ լավն են ու բոլորն էլ մեծ հաճույքով եմ մտնում: Շատերի գրառումները համառոտ կարդում եմ սկզբում <a href="http://www.armfeeds.com" target="_blank">ArmFeeds</a>-ում, որից հետո ամբողջ գրառումը կարդում եմ տվյալ բլոգում:</p>
<p>Եվ այսպես.</p>
<p>Որպես իմ ու <a title="Vardan Papikyan's blog" href="http://blog.papikyan.biz" target="_blank">Վարդան Պապիկյան</a>ի համատեղ նախագիծ, որում ես շատ հազվադեպ եմ գրառում կատարում, կարդում եմ <a href="http://ireport.am" target="_blank">www.ireport.am</a> մեգաբլոգը:</p>
<p>Շատ-շատ եմ կարդում նույն Վարդան Պապիկյանի <a href="http://blog.papikyan.biz" target="_blank">անձնական բլոգը</a>:</p>
<p>Որպես մասնագիտական բլոգների լավագույն և իմ ամենասիրելի բլոգ, կարդում եմ մարքեթոլոգ <a href="http://blog.nalbandyan.biz" target="_blank">Լուսինե Նալբանդյանի բլոգը</a>, որն ի դեպ ռուսերեն լեզվով է:</p>
<p>Շատ մեծ հաճույքով եմ կարդում նաև մեկ այլ ռուսալեզու բլոգ` <a href="http://freedominall.wordpress.com" target="_blank">Լուսինե Բարսեղյանի բլոգը</a>:</p>
<p>Վերջերս հայտնաբերած, կամ գուցե հենց վերջերս ստեղծված մի բլոգ` <a href="http://shatikyan.wordpress.com/" target="_blank">Շուշան Շատիկյանի բլոգը</a> շատ թեթև է կարդացվում և անպայման ուզում եմ բոլոր գրառումներին կարծիք թողնել:</p>
<p>Հաջորդն արդեն կոնկրետ իմ մասնագիտականն է` անգլրերեն լեզվով, որի անունը հայերեն բառացիորեն թարգմանելիս ստացվում է այսպես` <a href="http://1stwebdesigner.com" target="_blank">Առաջին Վեբ Դիզայներ</a>-ի բլոգ:</p>
<p>Խմբակային բլոգներից ամենաշատը սիրում ու կարդում եմ <a href="http://blogs.radiovan.am" target="_blank">ՌադիոՎան</a>-ի բլոգը:</p>
<p>Եվս մեկ բլոգ, որը մի կողմից մասնագիտական է, մյուս կողմից հետաքրքիր, դա ռուսական Երիտասարդ Գվարդիայի բլոգի <a href="http://www.molgvardia.ru/in_nova" target="_blank">Ին-Նովա</a> բաժինն է:</p>
<p>Մեր, այսինքն ՆեոՄեդիայի կողմից ստեղծված ևս մի նախագիծ` <a href="http://armenianopen.net" target="_blank">ArmenianOpen.net</a> բլոգը ևս կարդում եմ, չնայած որ նոր է և գրառումներ դեռ շատ չեն անում: Բայց ես ամեն օր մտնում եմ:</p>
<p>Եվ վերջում չմոռանամ նշել ժամանցային բլոգներից իմ կողմից շատ ընթերցվող <a href="http://armcomedy.com" target="_blank">ArmComedy</a>-ն:</p>
<p>Դե ինչ&#8230; Այսքանը&#8230; Մինչ նոր գրառումներ:</p>
]]></content:encoded>
			<wfw:commentRss>http://grigoryan.biz/blog/2010/06/25/my-lovely-10-blogs/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
