<?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>Web-разработчик в дебрях &#187; php</title>
	<atom:link href="http://kuaa.ru/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://kuaa.ru</link>
	<description>О вебе, разработке и прочих вещах</description>
	<lastBuildDate>Tue, 10 Aug 2010 10:43:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Поиск уникальных значений в двумерном ассоциативном массиве</title>
		<link>http://kuaa.ru/poisk-unikalnyx-znachenij-v-dvumernom-associativnom-massive/</link>
		<comments>http://kuaa.ru/poisk-unikalnyx-znachenij-v-dvumernom-associativnom-massive/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 22:22:57 +0000</pubDate>
		<dc:creator>Chips</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[массивы]]></category>
		<category><![CDATA[функции]]></category>

		<guid isPermaLink="false">http://kuaa.ru/?p=126</guid>
		<description><![CDATA[Иногда разум и программерский код заводят проект в такие дебри, что потом не знаешь как из них выбраться. Бывает необходимо вернуть ассоциативный двумерный массив уникальных значений из &#8230; правильно, из такого же большого двумерного ассоциативного массива содержащим дублирующие записи. Хотя эта фукнция сработает и для обычных двумерных массивов. /** возвращает массив уникальных значений в двумерном [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда разум и программерский код заводят проект в такие дебри, что потом не знаешь как из них выбраться. Бывает необходимо вернуть ассоциативный двумерный массив уникальных значений из &#8230; правильно, из такого же большого двумерного ассоциативного массива содержащим дублирующие записи. Хотя эта фукнция сработает и для обычных двумерных массивов.</p>
<p><span id="more-126"></span>/** возвращает массив уникальных значений в двумерном ассоциативном массиве</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"> <span style="color: #000088;">$array</span> <span style="color: #339933;">-</span> массив
 <span style="color: #000088;">$row_element</span> <span style="color: #339933;">-</span> название поля<span style="color: #339933;">,</span> по которому искать уникальные значения
 <span style="color: #339933;">*/</span>
 <span style="color: #000000; font-weight: bold;">function</span> remove_dups<span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span><span style="color: #339933;">,</span> <span style="color: #000088;">$row_element</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$new_array</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: #000088;">$array</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: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$current</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
         <span style="color: #000088;">$add_flag</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
         <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$new_array</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$tmp</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: #000088;">$current</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row_element</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #000088;">$tmp</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$row_element</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                 <span style="color: #000088;">$add_flag</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
             <span style="color: #009900;">&#125;</span>
         <span style="color: #009900;">&#125;</span>
         <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$add_flag</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$new_array</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$current</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #b1b100;">return</span> <span style="color: #000088;">$new_array</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Покажу на примерах, как это работает.<br />
Имеем массив:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$array</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: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'city'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Москва'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'street'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Орджоникидзе'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'city'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Самара'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'street'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Ленина'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'city'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Москва'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'street'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Мира'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'city'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Питер'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'street'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'Ленина'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Найдем в нем уникальные записи с ключом &#039;city&#039;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$array2</span> <span style="color: #339933;">=</span> remove_dups<span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Результат выполнения</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">array(3) {
  [0]=&gt;
    array(2) {
      [&quot;city&quot;]=&gt; string(6) &quot;Москва&quot;
      [&quot;street&quot;]=&gt; string(12) &quot;Орджоникидзе&quot;
    }
  [1]=&gt;
    array(2) {
      [&quot;city&quot;]=&gt; string(6) &quot;Самара&quot;
      [&quot;street&quot;]=&gt; string(6) &quot;Ленина&quot;
    }
  [2]=&gt;
    array(2) {
      [&quot;city&quot;]=&gt; string(5) &quot;Питер&quot;
      [&quot;street&quot;]=&gt; string(6) &quot;Ленина&quot;
    }
}</pre></td></tr></table></div>

<p>Или же отсортируем по второму ключу ассоциативного массива &#039;street&#039; и получим такой результат</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="text" style="font-family:monospace;">array(3) {
  [0]=&gt;
    array(2) {
      [&quot;city&quot;]=&gt; string(6) &quot;Москва&quot;
      [&quot;street&quot;]=&gt; string(12) &quot;Орджоникидзе&quot;
    }
  [1]=&gt;
    array(2) {
      [&quot;city&quot;]=&gt; string(6) &quot;Самара&quot;
      [&quot;street&quot;]=&gt; string(6) &quot;Ленина&quot;
    }
  [2]=&gt;
    array(2) {
      [&quot;city&quot;]=&gt; string(6) &quot;Москва&quot;
      [&quot;street&quot;]=&gt; string(4) &quot;Мира&quot;
    }
}</pre></td></tr></table></div>

<p>Если у Вас не ассоциативные, а обычные двумерные массивы, то вместо названия ключа нужно будет писать его номер.</p>
<p>В свое время это решение я нашел на <a href="http://www.php.net/manual/en/function.array-unique.php#68339" target="_blank">php.net</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://kuaa.ru/poisk-unikalnyx-znachenij-v-dvumernom-associativnom-massive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Склонение слов и правильная запись времени в виде текста</title>
		<link>http://kuaa.ru/sklonenie-slov-i-pravilnaya-zapis-vremeni-v-vide-teksta/</link>
		<comments>http://kuaa.ru/sklonenie-slov-i-pravilnaya-zapis-vremeni-v-vide-teksta/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 16:26:42 +0000</pubDate>
		<dc:creator>Chips</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[дата и время]]></category>
		<category><![CDATA[строки и числа]]></category>
		<category><![CDATA[функции]]></category>

		<guid isPermaLink="false">http://kuaa.ru/?p=83</guid>
		<description><![CDATA[Необходимость правильно склонять слова существует практически на любом сайте, хотя бы для отображения времени. В этой статье я предоставлю две небольшие функции, позволяющие склонять слова, а также функцию преобразующую время в виде unix_timestamp в читабельный формат. Честно сказать, функция склонения слов была где-то мной взята из просторов интернета, то это было так давно, что я [...]]]></description>
			<content:encoded><![CDATA[<p>Необходимость правильно склонять слова существует практически на любом сайте, хотя бы для отображения времени. В этой статье я предоставлю две небольшие функции, позволяющие склонять слова, а также функцию преобразующую время в виде unix_timestamp в читабельный формат.</p>
<p>Честно сказать, функция склонения слов была где-то мной взята из просторов интернета, то это было так давно, что я уже не помню откуда и кто автор данной функции.<br />
<span id="more-83"></span></p>
<h2>Склонение слов</h2>
<p>функция принимает целых три параметра, хотя третий и не является обязательным. В первом мы передаем само число, во втором параметре массив из трех элементов содержащий три вариации написания склоняемого слова, а в третьем параметре задаем флаг отображения числа. Если параметр стоит true, то будет выводится само число в результате работы функции, иначе выведется просто нужное склонение.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> declension<span style="color: #009900;">&#40;</span><span style="color: #000088;">$int</span><span style="color: #339933;">,</span> <span style="color: #000088;">$expressions</span><span style="color: #339933;">,</span> <span style="color: #000088;">$showint</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #990000;">settype</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$int</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;integer&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$count</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$int</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">100</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$count</span> <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">5</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$count</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$showint</span>? <span style="color: #000088;">$int</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">:</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000088;">$expressions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'2'</span><span style="color: #009900;">&#93;</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: #000088;">$count</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$count</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$count</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$showint</span>? <span style="color: #000088;">$int</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">:</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000088;">$expressions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'0'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$count</span> <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$count</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$showint</span>? <span style="color: #000088;">$int</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">:</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000088;">$expressions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#93;</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: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$showint</span>? <span style="color: #000088;">$int</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">:</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #000088;">$expressions</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'2'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Для примера рассмотрим такой вызов:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Ваш заказ на '</span><span style="color: #339933;">.</span>price_format<span style="color: #009900;">&#40;</span><span style="color: #000088;">$total_price</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">.</span>declension<span style="color: #009900;">&#40;</span><span style="color: #000088;">$total_price</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'рубль'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'рубля'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'рублей'</span><span style="color: #009900;">&#41;</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><span style="color: #0000ff;">'.'</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Как видите, все просто, более того, я применил еще и функцию правильного отображения чисел из <a title="Удобочитаемые цены" href="http://kuaa.ru/2010/delaem-udobochitaemye-ceny-v-kataloge/" target="_self">предыдущей статьи</a>. Они отлично сочетаются вместе.</p>
<h2>Вывод времени в текстовом формате</h2>
<p>Я всегда храню дату в базе в формате unix_timestamp, т.к. это позволяет производить математические операции со временем, а также сравнивать даты. Но выводить все же стоит более удобным способом чем в виде date(&#039;H:i:s&#039;,$date); , хотя этот вариант иногда тоже подходит.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> mk_myTime<span style="color: #009900;">&#40;</span><span style="color: #000088;">$tonpage</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: #000088;">$tonpage</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$tonpage</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">3600</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//часы</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$pos</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #000088;">$h</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #000088;">$pos</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$timenothour</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$tonpage</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">3600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$m</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$timenothour</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">60</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//минуты</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$pos</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strpos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$m</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'.'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #000088;">$m</span> <span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$m</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #000088;">$pos</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$sec</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$timenothour</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$m</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//секунды</span>
    <span style="color: #000088;">$s</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$s</span> <span style="color: #339933;">=</span> declension<span style="color: #009900;">&#40;</span><span style="color: #000088;">$h</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;час&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;часа&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;часов&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">intval</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$m</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$s</span> <span style="color: #339933;">.=</span> declension<span style="color: #009900;">&#40;</span><span style="color: #000088;">$m</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;минуту&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;минуты&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;минут&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$s</span> <span style="color: #339933;">.=</span> declension<span style="color: #009900;">&#40;</span><span style="color: #000088;">$sec</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;секунду&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;секунды&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;секунд&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Эта функция принимает один параметр &#8211; время в формате unix_timestamp. Она также использует предыдущую функцию declension для склонения часов минут и секунд.</p>
<p>Надеюсь, эти функции кому-нибудь для пригодятся.</p>
]]></content:encoded>
			<wfw:commentRss>http://kuaa.ru/sklonenie-slov-i-pravilnaya-zapis-vremeni-v-vide-teksta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Делаем удобочитаемые цены в каталоге</title>
		<link>http://kuaa.ru/delaem-udobochitaemye-ceny-v-kataloge/</link>
		<comments>http://kuaa.ru/delaem-udobochitaemye-ceny-v-kataloge/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 21:49:58 +0000</pubDate>
		<dc:creator>Chips</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[строки и числа]]></category>
		<category><![CDATA[функции]]></category>

		<guid isPermaLink="false">http://kuaa.ru/?p=78</guid>
		<description><![CDATA[Создавая каталоги товаров важно уделять внимание удобству восприятия цен на товары. Согласитесь, что достаточно сложно прочитать число 89433034, куда приятнее визуально отделить  тысячи от сотых, миллионы от тысяч, миллиарды от&#8230; впрочем, я пока не встречал в своей практике товары, стоимостью выше миллионов =). Тем не менее, нужно помнить о посетителях и создавать все условия для [...]]]></description>
			<content:encoded><![CDATA[<p>Создавая каталоги товаров важно уделять внимание удобству восприятия цен на товары. Согласитесь, что достаточно сложно прочитать число 89433034, куда приятнее визуально отделить  тысячи от сотых, миллионы от тысяч, миллиарды от&#8230; впрочем, я пока не встречал в своей практике товары, стоимостью выше миллионов =). Тем не менее, нужно помнить о посетителях и создавать все условия для покупки.</p>
<p>Хочу предложить две маленькие, но очень полезные функции на php и javascript, позволяющие автоматически преобразовывать числа в удобочитаемую строку. Другими словами превратить из 89433034 в 89 433 034.</p>
<p><span id="more-78"></span>Цены и просто числа удобнее хранить в базе в полях типа INT или FLOAT, т.к. это позволяет легко ими управлять и производить математические операции, а вот выводить на сайте их стоит разделяя пробелами, а есть быть точнее неразрывными пробелами &amp;nbsp;</p>
<p>Первая функция на php создана для того, чтобы генерировать контент и сразу выводить его на страницу, полезна при отображении цен для товаров.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> price_format<span style="color: #009900;">&#40;</span><span style="color: #000088;">$price</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$point</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strcspn</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$price</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$pr</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$price</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: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$n</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$n</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$point</span><span style="color: #339933;">;</span> <span style="color: #000088;">$n</span><span style="color: #339933;">++</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: #990000;">ceil</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$point</span><span style="color: #339933;">-</span><span style="color: #000088;">$n</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$point</span><span style="color: #339933;">-</span><span style="color: #000088;">$n</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$pr</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$pr</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&amp;nbsp;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$pr</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$pr</span><span style="color: #339933;">.</span><span style="color: #000088;">$price</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$n</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: #000088;">$pr</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Вторая функция на javascript полезна в случаях когда Вы используете на своем сайте AJAX запросы, к примеру, в корзине заказов для удобного изменения количества покупаемых товаров, а следовательно, и итоговой цены товара.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> price_format<span style="color: #009900;">&#40;</span>price<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    point <span style="color: #339933;">=</span> price.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>
    pr <span style="color: #339933;">=</span> price.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>n<span style="color: #339933;">=</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> n<span style="color: #339933;">&lt;</span>point<span style="color: #339933;">;</span> n<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">ceil</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>point<span style="color: #339933;">-</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #009900;">&#40;</span>point<span style="color: #339933;">-</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span> pr <span style="color: #339933;">=</span> pr <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&amp;nbsp;&quot;</span><span style="color: #339933;">;</span>
            pr <span style="color: #339933;">=</span> pr <span style="color: #339933;">+</span> price.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">return</span> pr<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>В обоих случаях функции принимают только один параметр &#8211; цену в числовом формате.</p>
]]></content:encoded>
			<wfw:commentRss>http://kuaa.ru/delaem-udobochitaemye-ceny-v-kataloge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Создание вложенных директорий на основе пути</title>
		<link>http://kuaa.ru/sozdanie-direktorii-na-osnove-puti/</link>
		<comments>http://kuaa.ru/sozdanie-direktorii-na-osnove-puti/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 21:14:59 +0000</pubDate>
		<dc:creator>Chips</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[директории]]></category>
		<category><![CDATA[функции]]></category>

		<guid isPermaLink="false">http://kuaa.ru/?p=69</guid>
		<description><![CDATA[Довольно часто приходится при разработке сайтов создавать иерархию каталогов. К примеру, если необходимо раскладывать загружаемые изображения по различным каталогам на основе даты или названий рубрик. В случае, если создается одна директория, то хватает обычного mkdir(). Но что делать, когда нужно создать сразу несколько вложенных директорий и не забыть про проверки. В этом случае поможет следующая [...]]]></description>
			<content:encoded><![CDATA[<p>Довольно часто приходится при разработке сайтов создавать иерархию каталогов. К примеру, если необходимо раскладывать загружаемые изображения по различным каталогам на основе даты или названий рубрик. В случае, если создается одна директория, то хватает обычного mkdir(). Но что делать, когда нужно создать сразу несколько вложенных директорий и не забыть про проверки.</p>
<p><span id="more-69"></span>В этом случае поможет следующая функция:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> rmkdir<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$mode</span> <span style="color: #339933;">=</span> <span style="color: #208080;">0777</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #990000;">rtrim</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/<span style="color: #000099; font-weight: bold;">\\</span><span style="color: #000099; font-weight: bold;">\\</span>/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/\/{2,}/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$e</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #990000;">ltrim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #009900;">&#41;</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;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</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;">$e</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: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$e</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: #000088;">$c</span> <span style="color: #339933;">=</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$cp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$e</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: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #000088;">$c</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</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;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cp</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!@</span><span style="color: #990000;">mkdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cp</span><span style="color: #339933;">,</span> <span style="color: #000088;">$mode</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: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000088;">$cp</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$e</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</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: #339933;">@</span><span style="color: #990000;">mkdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span> <span style="color: #000088;">$mode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>В этой функции всё достаточно просто. Функция получает два параметра: перечень вложенных каталогов (к примеру, /images/category1/2010/01/09/) и права на создаваемые директории.  По умолчанию права стоят в 777, однако, если Ваш сайт работает в режиме mod_fcgi, то этот параметр стоит поставить в 755.</p>
<p>В начале функция очишает полученный путь от лишних пробелов и не нужных символов, разбивает путь на массив, где в одном элементе содержится одно название директории. Далее в цикле бегает по массиву, где проверяет является ли данный элемент массива директорией, а также пытается создать директорию, если она еще не создана.</p>
<p>Вот собственно и всё, просто и быстро создаем директории не задумываясь о том, существует ли она уже или нет.</p>
]]></content:encoded>
			<wfw:commentRss>http://kuaa.ru/sozdanie-direktorii-na-osnove-puti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
