<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>PHP</title>
		<link>https://lily-software.com</link>
		<description>программирование на известном языке</description>
		<generator>Cotonti</generator>
		<language>ru</language>
		<pubDate>Sat, 02 May 2026 02:31:43 +0300</pubDate>

		<item>
			<title>Alex - Solving the PHP files in LaPuzzle</title>
			<description><![CDATA[<p>Hi, LaPuzzle  is a content management system. And it is not free.</p>
]]></description>
			<pubDate>чт, 08 сен 2016 10:03:50 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=10370#10370]]></link>
		</item>
		<item>
			<title>Totiruzi - Solving the PHP files in LaPuzzle</title>
			<description><![CDATA[<p><font><font>Hello Alex, I am learning PHP and I have got this folder LaPuzzle. </font><font>What is the puzzle all about. </font><font>What is to be solved. </font><font>Thanks</font></font></p>
]]></description>
			<pubDate>сб, 27 авг 2016 12:35:46 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=10366#10366]]></link>
		</item>
		<item>
			<title>Alex - Fatal error: Allowed memory size of 2097152 bytes exhausted</title>
			<description><![CDATA[Такая возможность доступна не на всех хостнгах]]></description>
			<pubDate>пт, 09 окт 2009 06:58:06 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=539#539]]></link>
		</item>
		<item>
			<title>Alex - strptime() под windows. Парсим дату</title>
			<description><![CDATA[Недавно, занимаясь одним проектом, потребоваось <strong>спарсить строку, содержащую дату</strong> по заданному формату. Формат известен.<br />
<br />
В <strong>php</strong>, начиная с версии  <strong>5.1.0RC1</strong> есть функция для этих целей: <strong>strptime()</strong>, которая принимает в качестве параметров саму строку и формат. Строго говоря, эта функция является обратной к strftime().<br />
<br />
Но вот для Windows-платформ эта функция не реализована. Странно, но факт. <br />
<br />
Для счастливых обладателей &quot;окон&quot; предлагаю воспользоваться приведенной ниже реализацией данной функции. Для переносимости между платформами, сама функция заключена в условие if(function_exists(&quot;strptime&quot;) == false). Если Вы перенесете скрипт на UNIX хостинг, то этот условный оператор позволит избежать ошибки, связанной с повторным объявлением функции.<br />
<br />
сам код:<br />
<br />
<pre class="code">
/*
* Для совместимости с системами, где нет этой ф-ции. Преобразуем время, заданное соотвественно формату
*	strptime() returns an array with the date parsed, or FALSE on error. 
*
* Month and weekday names and other language dependent strings respect the current
* locale set with setlocale() (LC_TIME). 
*
* Функция уже есть в PHP PHP 5 &gt;= 5.1.0RC1. Замечание: Для Windows-платформ эта функция не реализована.
*
* Функция обратна функции: strtotime()
*
* @author Lionel SAURON 
* @version 1.0 
* @public 
*  
* @param $sDate(string)    The string to parse (e.g. returned from strftime()). 
* @param $sFormat(string)  The format used in date  (e.g. the same as used in strftime()). 
* @return (array)          Returns an array with the &lt;code&gt;$sDate&lt;/code&gt; parsed, or &lt;code&gt;false&lt;/code&gt; on error. 

Таблица 1. The following parameters are returned in the array

parameters Description 
tm_sec 		Seconds after the minute (0-61) 
tm_min 		Minutes after the hour (0-59) 
tm_hour 	Hour since midnight (0-23) 
tm_mday 	Day of the month (1-31) 
tm_mon 		Months since January (0-11) 
tm_year 	Years since 1900 
tm_wday 	Days since Sunday (0-6) 
tm_yday 	Days since January 1 (0-365) 
unparsed 	the date part which was not recognized using the specified format 

*/ 
if(function_exists(&quot;strptime&quot;) == false) 
{ 
    function strptime($sDate, $sFormat) 
    { 
        $aResult = array 
        ( 
            'tm_sec'   =&gt; 0, 
            'tm_min'   =&gt; 0, 
            'tm_hour'  =&gt; 0, 
            'tm_mday'  =&gt; 1, 
            'tm_mon'   =&gt; 0, 
            'tm_year'  =&gt; 0, 
            'tm_wday'  =&gt; 0, 
            'tm_yday'  =&gt; 0, 
            'unparsed' =&gt; $sDate, 
        ); 
         
        while($sFormat != &quot;&quot;) 
        { 
            // ===== Search a %x element, Check the static string before the %x ===== 
            $nIdxFound = strpos($sFormat, '%'); 
            if($nIdxFound === false) 
            { 
                 
                // There is no more format. Check the last static string. 
                $aResult&#091;'unparsed'&#093; = ($sFormat == $sDate) ? &quot;&quot; : $sDate; 
                break; 
            } 
             
            $sFormatBefore = substr($sFormat, 0, $nIdxFound); 
            $sDateBefore   = substr($sDate,   0, $nIdxFound); 
             
            if($sFormatBefore != $sDateBefore) break; 
             
            // ===== Read the value of the %x found ===== 
            $sFormat = substr($sFormat, $nIdxFound); 
            $sDate   = substr($sDate,   $nIdxFound); 
             
            $aResult&#091;'unparsed'&#093; = $sDate; 
             
            $sFormatCurrent = substr($sFormat, 0, 2); 
            $sFormatAfter   = substr($sFormat, 2); 
             
            $nValue = -1; 
            $sDateAfter = &quot;&quot;; 
            switch($sFormatCurrent) 
            { 
                case '%S': // Seconds after the minute (0-59) 
                     
                    sscanf($sDate, &quot;%2d%&#091;^\\n&#093;&quot;, $nValue, $sDateAfter); 
                     
                    if(($nValue &lt; 0) || ($nValue &gt; 59)) return false; 
                     
                    $aResult&#091;'tm_sec'&#093;  = $nValue; 
                    break; 
                 
                // ---------- 
                case '%M': // Minutes after the hour (0-59) 
                    sscanf($sDate, &quot;%2d%&#091;^\\n&#093;&quot;, $nValue, $sDateAfter); 
                     
                    if(($nValue &lt; 0) || ($nValue &gt; 59)) return false; 
                 
                    $aResult&#091;'tm_min'&#093;  = $nValue; 
                    break; 
                 
                // ---------- 
                case '%H': // Hour since midnight (0-23) 
                    sscanf($sDate, &quot;%2d%&#091;^\\n&#093;&quot;, $nValue, $sDateAfter); 
                     
                    if(($nValue &lt; 0) || ($nValue &gt; 23)) return false; 
                 
                    $aResult&#091;'tm_hour'&#093;  = $nValue; 
                    break; 
                 
                // ---------- 
                case '%d': // Day of the month (1-31) 
                    sscanf($sDate, &quot;%2d%&#091;^\\n&#093;&quot;, $nValue, $sDateAfter); 
                     
                    if(($nValue &lt; 1) || ($nValue &gt; 31)) return false; 
                 
                    $aResult&#091;'tm_mday'&#093;  = $nValue; 
                    break; 
                 
                // ---------- 
                case '%m': // Months since January (0-11) 
                    sscanf($sDate, &quot;%2d%&#091;^\\n&#093;&quot;, $nValue, $sDateAfter); 
                     
                    if(($nValue &lt; 1) || ($nValue &gt; 12)) return false; 
                 
                    $aResult&#091;'tm_mon'&#093;  = ($nValue - 1); 
                    break; 
                 
                // ---------- 
                case '%Y': // Years since 1900 
                    sscanf($sDate, &quot;%4d%&#091;^\\n&#093;&quot;, $nValue, $sDateAfter); 
                     
                    if($nValue &lt; 1900) return false; 
                 
                    $aResult&#091;'tm_year'&#093;  = ($nValue - 1900); 
                    break; 
                 
                // ---------- 
                default: break 2; // Break Switch and while 
            } 
             
            // ===== Next please ===== 
            $sFormat = $sFormatAfter; 
            $sDate   = $sDateAfter; 
             
            $aResult&#091;'unparsed'&#093; = $sDate; 
             
        } // END while($sFormat != &quot;&quot;) 
         
         
        // ===== Create the other value of the result array ===== 
        $nParsedDateTimestamp = mktime($aResult&#091;'tm_hour'&#093;, $aResult&#091;'tm_min'&#093;, $aResult&#091;'tm_sec'&#093;, 
                                $aResult&#091;'tm_mon'&#093; + 1, $aResult&#091;'tm_mday'&#093;, $aResult&#091;'tm_year'&#093; + 1900); 
         
        // Before PHP 5.1 return -1 when error 
        if(($nParsedDateTimestamp === false) 
        ||($nParsedDateTimestamp === -1)) return false; 
         
        $aResult&#091;'tm_wday'&#093; = (int) strftime(&quot;%w&quot;, $nParsedDateTimestamp); // Days since Sunday (0-6) 
        $aResult&#091;'tm_yday'&#093; = (strftime(&quot;%j&quot;, $nParsedDateTimestamp) - 1); // Days since January 1 (0-365) 

        return $aResult; 
    } // END of function 
     
} // END if(function_exists(&quot;strptime&quot;) == false) 
</pre>]]></description>
			<pubDate>вс, 12 апр 2009 10:34:33 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=466#466]]></link>
		</item>
		<item>
			<title>Alex - PHP Сумма прописью</title>
			<description><![CDATA[Попробуйте этот. Гривны можно заменить на рубли<br />
<br />
<pre class="code">
&lt;script language=&quot;JavaScript&quot; type=&quot;text/javascript&quot;&gt;
var money;
var price;
var rub, kop;
var litera = sotny = desatky = edinicy = minus = &quot;&quot;;
var k = 0, i, j;

N = &#091;&quot;&quot;, &quot;одина&quot;, &quot;две&quot;, &quot;три&quot;, &quot;четыре&quot;, &quot;пять&quot;, &quot;шесть&quot;, &quot;семь&quot;, &quot;восемь&quot;, &quot;девять&quot;,
&quot;&quot;, &quot;одиннадцать&quot;, &quot;двенадцать&quot;, &quot;тринадцать&quot;, &quot;четырнадцать&quot;, &quot;пятнадцать&quot;, &quot;шестнадцать&quot;, &quot;семнадцать&quot;, &quot;восемнадцать&quot;, &quot;девятнадцать&quot;,
&quot;&quot;, &quot;десять&quot;, &quot;двадцать&quot;, &quot;тридцать&quot;, &quot;сорок&quot;, &quot;пятьдесят&quot;, &quot;шестьдесят&quot;, &quot;семьдесят&quot;, &quot;восемьдесят&quot;, &quot;девяносто&quot;,
&quot;&quot;, &quot;сто&quot;, &quot;двести&quot;, &quot;триста&quot;, &quot;четыреста&quot;, &quot;пятьсот&quot;, &quot;шестьсот&quot;, &quot;семьсот&quot;, &quot;восемьсот&quot;, &quot;девятьсот&quot;,
&quot;тысяч&quot;, &quot;тысяча&quot;, &quot;тысячи&quot;, &quot;тысячи&quot;, &quot;тысячи&quot;, &quot;тысяч&quot;, &quot;тысяч&quot;, &quot;тысяч&quot;, &quot;тысяч&quot;, &quot;тысяч&quot;,
&quot;миллионов&quot;,&quot;миллион&quot;,&quot;миллиона&quot;,&quot;миллиона&quot;, &quot;миллиона&quot;, &quot;миллионов&quot;, &quot;миллионов&quot;, &quot;миллионов&quot;, &quot;миллионов&quot;, &quot;миллионов&quot;,
&quot;миллиардов&quot;, &quot;миллиард&quot;, &quot;миллиарда&quot;, &quot;миллиарда&quot;, &quot;миллиарда&quot;, &quot;миллиардов&quot;, &quot;миллиардов&quot;, &quot;миллиардов&quot;, &quot;миллиардов&quot;, &quot;миллиардов&quot;&#093;;

var M = new Array(10);
for (j = 0; j &lt; 10; ++j)
  M&#091;j&#093; = new Array(N.length);

for (i = 0; i &lt; N.length; i++)
  for (j = 0; j &lt; 10; j++)
    M&#091;j&#093;&#091;i&#093; = N&#091;k++&#093;

var R = new Array(&quot;гривен&quot;, &quot;гривна&quot;, &quot;гривни&quot;, &quot;гривни&quot;, &quot;гривни&quot;, &quot;гривен&quot;, &quot;гривен&quot;, &quot;гривен&quot;, &quot;гривен&quot;, &quot;гривен&quot;);
var K = new Array(&quot;копеек&quot;, &quot;копейка&quot;, &quot;копейки&quot;, &quot;копейки&quot;, &quot;копейки&quot;, &quot;копеек&quot;, &quot;копеек&quot;, &quot;копеек&quot;, &quot;копеек&quot;, &quot;копеек&quot;);

function num2str(money, target)
{
  rub = &quot;&quot;, kop = &quot;&quot;;
  money = money.replace(&quot;,&quot;, &quot;.&quot;);

  if(isNaN(money)) {document.getElementById(target).innerHTML = &quot;Не числовое значение&quot;; return}
  if(money.substr(0, 1) == &quot;-&quot;) {money = money.substr(1); minus = &quot;минус &quot;}
   else minus = &quot;&quot;;
  money = Math.round(money * 100) / 100 + &quot;&quot;;

  if(money.indexOf(&quot;.&quot;) != -1)
    {
     rub = money.substr(0, money.indexOf(&quot;.&quot;));
     kop = money.substr(money.indexOf(&quot;.&quot;) + 1);
     if(kop.length == 1) kop += &quot;0&quot;;
    }
  else rub = money;

  if(rub.length &gt; 12) {document.getElementById(target).innerHTML = &quot;Слишком большое число&quot;; return}

  ru = propis(price = rub, R);
  ko = propis(price = kop, K);
  ko != &quot;&quot; ? res = ru + &quot; &quot; + ko: res = ru;
  ru == &quot;Ноль &quot; + R&#091;0&#093; &amp;&amp; ko != &quot;&quot;? res = ko: 0;
  kop == 0? res += &quot; ноль &quot; + K&#091;0&#093;: 0;
  document.getElementById(target).innerHTML = (minus + res).substr(0,1).toUpperCase() + (minus + res).substr(1);
}

function propis(price, D)
{
  litera = &quot;&quot;;
  for(i = 0; i &lt; price.length; i += 3)
    {
     sotny = desatky = edinicy = &quot;&quot;;
     if(n(i + 2, 2) &gt; 10 &amp;&amp; n(i + 2, 2) &lt; 20)
       {
        edinicy = &quot; &quot; + M&#091;n(i + 1, 1)&#093;&#091;1&#093; + &quot; &quot; + M&#091;0&#093;&#091;i / 3 + 3&#093;;
        i == 0? edinicy += D&#091;0&#093;: 0;
       }
     else
       {
        edinicy = M&#091;n(i + 1, 1)&#093;&#091;0&#093;;
        (edinicy == &quot;один&quot; &amp;&amp; (i == 3 || D == K))? edinicy = &quot;одна&quot;: 0;
        (edinicy == &quot;два&quot;  &amp;&amp; (i == 3 || D == K))? edinicy = &quot;две&quot; : 0;
        i == 0 &amp;&amp; edinicy != &quot;&quot;? 0: edinicy += &quot; &quot; + M&#091;n(i + 1, 1)&#093;&#091;i / 3 + 3&#093;;
        edinicy == &quot; &quot;? edinicy = &quot;&quot;: (edinicy == &quot; &quot; + M&#091;n(i + 1, 1)&#093;&#091;i / 3 + 3&#093;)? 0: edinicy = &quot; &quot; + edinicy;
        i == 0? edinicy += &quot; &quot; + D&#091;n(i + 1, 1)&#093;: 0;
        (desatky = M&#091;n(i + 2, 1)&#093;&#091;2&#093;) != &quot;&quot;? desatky = &quot; &quot; + desatky: 0;
       }
     (sotny = M&#091;n(i + 3, 1)&#093;&#091;3&#093;) != &quot;&quot;? sotny = &quot; &quot; + sotny: 0;
     if(price.substr(price.length - i - 3, 3) == &quot;000&quot; &amp;&amp; edinicy == &quot; &quot; + M&#091;0&#093;&#091;i / 3 + 3&#093;) edinicy = &quot;&quot;;
     litera = sotny + desatky + edinicy + litera;
    }
   if(litera == &quot; &quot; + R&#091;0&#093;) return &quot;ноль&quot; + litera;
     else return litera.substr(1);
}

function n(start,len)
{
  if(start &gt; price.length) return 0;
    else return Number(price.substr(price.length - start, len));
}

&lt;/script&gt;
</pre>]]></description>
			<pubDate>вс, 12 апр 2009 10:12:57 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=465#465]]></link>
		</item>
		<item>
			<title>Nikola - PHP Сумма прописью</title>
			<description><![CDATA[А есть такая же под JavaScript?]]></description>
			<pubDate>пт, 27 фев 2009 12:11:02 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=438#438]]></link>
		</item>
		<item>
			<title>Nikola - Fatal error: Allowed memory size of 2097152 bytes exhausted</title>
			<description><![CDATA[А у меня не работает :(. Не получилось.]]></description>
			<pubDate>пт, 27 фев 2009 12:06:40 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=437#437]]></link>
		</item>
		<item>
			<title>Nikola - Отправка СМС с PHP скрипта</title>
			<description><![CDATA[Долго искал для одного проекта. Может кому и пригодится:<br />
<br />
HTML - форма:<br />
<br />
для html <br />
<pre class="code">&lt;FORM ACTION=&quot;send.php&quot; METHOD=POST&gt; 
&lt;TABLE BORDER=0&gt; 
&lt;TR&gt; 
&lt;TD&gt;Номер телефона:&lt;/TD&gt; 
&lt;TD&gt;&lt;input type=text name=&quot;phone&quot; cols=40&gt;&lt;/TD&gt;&lt;/TR&gt; 
&lt;TR&gt; 
&lt;TD&gt;Выбор оператора:&lt;/TD&gt; 
&lt;TD&gt;&lt;select name=operator size=1&gt; 
&lt;option value=01 selected&gt;operator 1&lt;/option&gt; 
&lt;option value=02&gt;operator 2&lt;/option&gt; 
&lt;option value=03&gt;operator3&lt;/option&gt;&lt;/TD&gt;&lt;/TR&gt; 
&lt;TR&gt; 
&lt;TD colspan=2&gt; 
Сообщение: &lt;BR&gt;&lt;textarea name=&quot;sms&quot; cols=40 rows=5&gt;&lt;/textarea&gt;&lt;/TD&gt;&lt;/TR&gt; 
&lt;TR&gt; 
&lt;TD colspan=2 align=center&gt;&lt;input type=submit value=&quot;Отправить&quot;&gt; &lt;input type=reset value=&quot;Очистить&quot;&gt;&lt;/TD&gt;&lt;/TR&gt; 
&lt;/TABLE&gt;&lt;/FORM&gt; </pre>
<br />
И сам PHP - скрипт<br />
<br />
<pre class="code">&lt;? 
$mail_addr = $_POST&#091;&quot;phone&quot;&#093;; 
$text = $_POST&#091;&quot;sms&quot;&#093;; 
switch ($_POST&#091;&quot;operator&quot;&#093;) { 
case &quot;01&quot;: // megavon 
$mail_addr .= &quot;@megafon.ru&quot;; 
break; 
case &quot;02&quot;: // operator2 
$mail_addr .= &quot;@operator2.com&quot;; 
break; 
case &quot;03&quot;: // operator3 
$mail_addr .= &quot;@operator3.com&quot;; 
break; 
// Здесь для других операторов... 
} 
$mes=&quot;$text&quot;; 
mail($mail_addr, &quot;&quot;, $mes); 
echo &quot;Ваше SMS на номер $mail_addr &lt;br&gt; с текстом: $mes &lt;br&gt; отправлено&lt;BR&gt;&lt;center&gt;&lt;a href='https://lily-software.com/index.html'&gt;Отправить ещё&lt;/a&gt;&quot;; 
?&gt; </pre>
<br />
Сами шлюзы:<br />
<br />
<pre class="code">Билайн                                @sms.beemail.ru 
ГлобалТел (MailGate)                  @sms.globaltel.ru 
ЗАО Енисей Телеком                    @sms.etk.ru 
Мегафон поволжье                      @sms.mgsm.ru 
Мегафон Урал                          @sms.megafonural.ru 
НСС                                   @mobilemail.ru 
Смартс                                @sms.samara-gsm.ru 
ТатИнком                              @tatincom.ru 

Алма-ата - Kcell 588300               @sms.kcell.kz 
Астрахань - Мобил-Телеком             page@page.bignet.ru (номер нужного абонента, нужно указывать в теме письма) 
Астрахань - Астраханьпейдж            page@page.astranet.ru (номер нужного абонента, нужно указывать в теме письма) 
Баку - Azercell Telecom               @sms.azercell.com 
Барнаул   - МобилТелеком              pager@mtc.alt.ru (номер нужного абонента, нужно указывать в теме письма) 
Беларусь - МТС                        @sms.mts.by 
Беларусь - Velcom GSM                 @sms.velcom.by 
Белгород - РеКом GSM                  @rekom.ru 
Брест - Velcom                        @tut.by 
Владивосток  Вессо-Тел                @vesso.vl.ru 
Владивосток - NTC НТК 510-510         @sms.vntc.ru 
Владивосток - Примтелефон             @sms.primtel.ru 
Владивосток - Новая тел. компания     @sms.vntc.ru 
Владивосток - Мегафон                 @sms.megafondv.ru 
Владивосток - Мобил Телеком Восток    pager@mtv.febras.ru (номер нужного абонента, нужно указывать в теме письма) 
Владивосток - МТС                     @sms.primtel.ru 
Волгоград - GSM                       @volgogsm.ru 
Воронеж - Реком GSM                   @recom.ru 
Димитровград - Вариант-Информ         @pager.vinf.ru 
Днепропетровск - Евроинформ           @ei.dp.ua 
Днепропетровск - Днiпро-Виклик        320069@dv.dp.ua (номер нужного абонента, нужно указывать в теме письма) 
Днепропетровск - Сентоса-Связь        790790@online.alkar.dp.ua (номер нужного абонента, нужно указывать в теме письма) 
Екатеринбург - Экском                 @excom.nexcom.ru 
Екатеринбург - Билайн GSM             @sms.smsmail.ru 
Екатеринбург - Мегафон                @sms.megafonural.ru 
Екатеринбург - Мотив                  @sms.ycc.ru 
Екатеринбург - Уралтел                @sms.uraltel.ru 
Ижевск -  МТС в Удмуртии              @sms.gsm.udmnet.ru 
Иркутск - Байкалвестком               @sms.bwc.ru 
Казань - Линк                         pager@linkpage.ru (номер нужного абонента, нужно указывать в теме письма) 
Казань - Континенталь                 pager@continental.kazan.ru (номер нужного абонента, нужно указывать в теме письма) 
Казань - InterAntena                  inter@bancorp.ru (номер нужного абонента, нужно указывать в теме письма) 
Казань - RCA                          pager@rca.ru (номер нужного абонента, нужно указывать в теме письма) 
Казань - МобилТелеком                 pager@bancorp.ru (номер нужного абонента, нужно указывать в теме письма) 
Казахстан - K-mobile                  @sms.kartel.kz 
Казахстан - Kcell                     @sms.kcell.kz 
Калининград - Экстел                  @extel-gsm.com 
Калининград - Билайн                  @sform.ru 
Калининград - Экстел-GSM              @extel-gsm.com 
Калуга - Mobil Telecom                @pager.mobil-telecom.kaluga.com 
Кемерово - Алком Электроникс          @alel.kuzbass.net  
Киев - Beeper                         @beeper.kiev.ua 
Киев - U-Page                         @eurotext.kiev.ua 
Киев - Golden Telecom                 @sms.gt.kiev.ua 
Киев - Golden Telecom                 @sms.goldentele.com 
Киев - UMC                            @sms.umc.com.ua 
Киев - UMC Jeans                      @sms.jeans.com.ua 
Киев - WellCom                        @sms.welcome2well.com 
Киев - КиевСтар ACE&amp;BASE              @sms.kyivstar.net 
Киев - КиевСтар Djuise                @2sms.kyivstar.net 
Киев - Interpage                      ipage@ukr.net (номер нужного абонента, нужно указывать в теме письма) 
Краснодар Кубань-GSM                  @sms.kubangsm.ru 
Красноярск - СибЧелендж               @sms.scn.ru 
Красноярск - Искра-пейдж              page@iskra.krs.ru (номер нужного абонента, нужно указывать в теме письма) 
Красноярск - НПС Континенталь         cont@continental.krsk.ru (номер нужного абонента, нужно указывать в теме письма)    
Красноярск - Парагон                  pager@paragon.krasnoyarsk.su (номер нужного абонента, нужно указывать в теме письма) 
Кременчуг - UKRPAGE                   pager@ukrpage.kremenchug.net (номер нужного абонента, нужно указывать в теме письма)    
Курск - Вессолинк Е.П.С.              pager@vlep.sovtest.ru (номер нужного абонента, нужно указывать в теме письма) 
Латвия - Baltcom GSM                  @sms.baltcom.lv 
Латвия - Tele2                        @sms.tele2.lv 
Липецк - Kontinental                  pager@link.lipetsk.su (номер нужного абонента, нужно указывать в теме письма)    
Липецк - Экском-Липецк                pager@excom.lipetsk.ru (номер нужного абонента, нужно указывать в теме письма) 
Магадан - ТТС                         page@tts.magadan.su (номер нужного абонента, нужно указывать в теме письма) 
Магнитогорск - ЮУСТ GSM               @suct.uu.ru 
Марий Эл - Эллайн GSM                 @sms.martelcom.ru 
Мариуполь - UKR-page                  @ukrpage.donin.com 
Минск - Solid Paging                  pager@solid.minsk.by (номер нужного абонента, нужно указывать в теме письма) 
Минск - Белрадиопэйдж                 @pager.radiopage.com.by 
Минск - Вессобел                      pager@vessobel.minsk.by (номер нужного абонента, нужно указывать в теме письма) 
Минск - Мобилком                      pager@mobilcom.com.by (номер нужного абонента, нужно указывать в теме письма) 
Молдова - Кишинев Voxtel              @voxmail.md 
Москва - БИБИКОМ                      page@ccs.ru (номер нужного абонента, нужно указывать в теме письма) 
Москва - Vessolink                    @pager.vessolink.ru 
Москва - МобилТелеком                 @notify.mtelecom.ru  
Москва - Радиопэйдж                   @radiopage.ru 
Москва - ТАСКОМ                       @pager.tascom.ru 
Москва - MCC                          @sms.mcc.ru 
Москва - Билайн                       @sms.gate.ru 
Москва - Мульти-Пейдж                 @pager.multi-page.ru 
Москва - СОНЕТ                        @sms.pcom.ru 
Москва - Билайн                       @sms.gate.ru 
Москва - МТС                          @sms.gate.ru 
Москва - (Федеральный) МТС            @sms.gate.ru 
Москва - Оператор АМТ                 @flextel.ru 
Москва - РусПейдж                     @pager.asvt.ru 
Москва - RANET                        send@ra.net.ru  (номер нужного абонента, нужно указывать в теме письма) 
Москва - ПС Континенталь              pager@continental.ru (номер нужного абонента, нужно указывать в теме письма) 
Москва - Alphacom                     @page.alphacom.ru 
Набережные Челны - Континенталь       pager@continental.chelny.ru (номер нужного абонента, нужно указывать в теме письма) 
Нижневартовск - Сибпейдж              page@nvart.ru (номер нужного абонента, нужно указывать в теме письма)    
Нижний Новгород - Мегафон             @sms.megafoncenter.ru 
Нижний Новгород - НСС                 @sms.ncc.nnov.ru 
Новокузнецк - Tele2                   @sms.kmc.ru 
Новосибирск - НГТС                    @pager.nsk.su 
Новосибирск - ССС-900                 @scs-900.ru 
Новосибирск - Восточный экспресс      pager@exp.irs.ru (номер нужного абонента, нужно указывать в теме письма) 
Новосибирск - Пейджинговая компания   pmail@pagercom.ru (номер нужного абонента, нужно указывать в теме письма)    
Новосибирск - СибПэйдж                pager@pager.sibpage.ru (номер нужного абонента, нужно указывать в теме письма)    
Новосибирск - СИБтон &amp; Транс Ком      pager@sibton.nsk.su (номер нужного абонента, нужно указывать в теме письма) 
Одесса - Golden Telecom               @sms.gt.com.ua 
Одесса - Одесса-Пейджинг              ring@paging.odessa.net (номер нужного абонента, нужно указывать в теме письма) 
Омск - Мобил ТелеКом                  @pager.rvs-mtc.infomsk.ru 
Омск - Мобильные системы связи        @abn.omsk.mts.ru 
Омск - Омский пэйджер                 ompager@online.ru (номер нужного абонента, нужно указывать в теме письма) 
Омск - Tele2                          @omsk.tele2.ru 
Орёл - F1 Communications              @pager.oryol.ru 
Пенза - GSM                           @penza-gsm.ru 
Пермь - УралСвязьИнформ               @pager.mtts.perm.ru 
Пермь - УСИ                           @sms.kubangsm.ru 
Пермь - СТлинк                        pager@stlink.perm.ru (номер нужного абонента, нужно указывать в теме письма) 
Псков - Итекс                         @pager.pskov.ru 
Рига - LMT                            @sms.lmt.lv 
Ростов - ААА                          @pager.aaanet.ru 
Ростов - МТС                          @dontelecom.ru 
Рязань - VessoLink                    pager@vessolink.pptus.ru (номер нужного абонента, нужно указывать в теме письма) 
Рязань - Интегпейдж Телеком           pager@interpage.ryazan.ru (номер нужного абонента, нужно указывать в теме письма) 
С-Петербург - ВессоЛинк               @pager.vesso.spb.ru 
С-Петербург - N-W GSM                 @nwgsm.ru 
С-Петербург - nwgsm                   @sms.nwgsm.ru 
Самара - Мегафон-GSM                  @sms.mgsm.ru 
Самара - Смартс                       @sms.smr.ru 
Самара - ВестКом                      wectcom@transit.samara.ru (номер нужного абонента, нужно указывать в теме письма) 
Саратов - Радиосервис-Мобил           @pager.rsm.ru 
Саратов - Единая Пейджинговая         pager@epsr.renet.ru (номер нужного абонента, нужно указывать в теме письма) 
Ставрополь - NC-GSM                   @stavropol.net 
Сыктывкар - МТС                       @mts.komi.ru 
Татарстан - Мегафон                   @sms.mgsm.ru 
Татарстан - МТС                       @sms.santel.ru 
Ташкент - Daewoo Unitel               @daewoounitel.com 
Ташкент - Уздунробита GSM             @sms.uzdunrobita.uz 
Ташкент - Радиопэйдж                  pager@rpage.uznet.net (номер нужного абонента, нужно указывать в теме письма) 
Тольятти - Билайн                     @sms.beeline.samara.ru 
Тольятти - Мегафон                    @sms.mgsm.ru 
Тольятти - СМАРТС                     @sms.smr.ru 
Томск - Сотовая Связь                 @pager.tomsknet.ru 
Томск - пейджиновая сеть Планет       paging@paging.tomsk.ru (номер нужного абонента, нужно указывать в теме письма) 
Томск - Джакур                        pager@pager.tomsk.ru (номер нужного абонента, нужно указывать в теме письма) 
Троицк - ЮУСТ                         @suuct.uu.ru 
Тула - Мегафон                        @megafoncenter.ru 
Тюмень -  Мобил Сервис                @page.scc.ru 
Тюмень - МТС                          @mts.tyumen.ru 
Тюмень - Единая Пэйджинговая          pager@tyumen.ru (номер нужного абонента, нужно указывать в теме письма) 
Тюмень - Мобил Сервис                 @page.scc.ru 
Улан-Удэ - Сотовая сеть               @uucn.ru 
Ульяновск - Европроект                @pager.europe.mv.ru 
Ульяновск - Интерпейдж                @pager.simbir.ru 
Ульяновск - GSM                       @sms.smr.ru 
Ульяновск - Единая пейджинговая       pg@epsr.mv.ru (номер нужного абонента, нужно указывать в теме письма) 
Хабаровск - Даль Телеком              @sms.dti.ru 
Хабаровск - Дальневосточный GSM       @fecs-900.khv.ru 
Хантымансийск - Хант.электросвязь     pagein@hms.wsnet.ru (номер нужного абонента, нужно указывать в теме письма)    
Харьков - ПиТ-Связь                   pager@pit.kharkov.ua (номер нужного абонента, нужно указывать в теме письма) 
Челябинск - Южно-Урал. сот. тел.      @suct.uu.ru        
Челябинск - КОДАШ                     pager@mtelecom.chel.su (номер нужного абонента, нужно указывать в теме письма) 
Челябинск - ПФК Елена                 pager@elena.chel.su (номер нужного абонента, нужно указывать в теме письма) 
Череповецк - МобилТелеКом             pager@metacom.ru (номер нужного абонента, нужно указывать в теме письма)    
Челябинск - Мегафон                   @sms.megafonural.ru 
Челябинск - ЮУСТ                      @suct.uu.ru 
Черкассы - Филиал СП УКРПЕЙДЖ         mail2pager@uch.net (номер нужного абонента, нужно указывать в теме письма)    
Черкассы - U-Page                     mail2pager@uch.net (номер нужного абонента, нужно указывать в теме письма)    
Чернигов - СМТ-ПЕЙДЖИНГ               @cmt.cn.ua         
Якутск - МТС                          @sms.sakha.mts.ru 
Ярославль - Яртелеком                 pgrgate@номер абонента.pager.yaroslavl.su 
Ярославль GSM                         @gsm.yaroslavl.ru</pre>
<br />
Преверял не все шлюзы.]]></description>
			<pubDate>пт, 27 фев 2009 12:03:30 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=436#436]]></link>
		</item>
		<item>
			<title>Maikl - Fatal error: Allowed memory size of 2097152 bytes exhausted</title>
			<description><![CDATA[Спасибо. Не знал про эту возможность. Помогло. :-8)]]></description>
			<pubDate>ср, 04 фев 2009 09:44:52 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=422#422]]></link>
		</item>
		<item>
			<title>Alex - Fatal error: Allowed memory size of 2097152 bytes exhausted</title>
			<description><![CDATA[Директивы для конфигурирования PHP можно размещать не только в файле <strong>php.ini</strong>, который вам править хостер наверняка не даст, но также и в конфигурационных файлах Apache – httpd.conf и <strong>.htaccess</strong>. Это позволяет проводить тонкую настройку php для разных директорий и виртуальных хостов.<br />
<br />
Например вставив в файл <strong>.htaccess</strong> строку<br />
<br />
<pre class="code">php_value memory_limit 24M </pre>
<br />
Изменим предел памяти, выделяемой для выполнения скрипта на 24 мб. Можно и больше указать. Но злоупотреблять этим не стоит, чтобы не получилось большой &quot;утечки&quot; памяти.<br />
Аналогично:<br />
<pre class="code">php_value upload_max_filesize 20M </pre>
изменит максимальный размер закачиваемого файла. 20M означает &quot;максимальный размер - 20 Мб&quot;. Также бывает полезно увеличить значение переменных PHP post_max_size (объем передаваемых методом POST данных), max_input_time и max_execution_time (время приема данных и выполнения скрипта, время указывается в секундах): <br />
<br />
<pre class="code">php_value post_max_size 20M 
php_value max_input_time 864000 
php_value max_execution_time 864000 </pre>
<br />
<img class="aux smiley" src="https://lily-software.com/./images/smilies/smile.gif" alt=":)" />]]></description>
			<pubDate>пн, 02 фев 2009 10:41:11 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=418#418]]></link>
		</item>
		<item>
			<title>Maikl - Fatal error: Allowed memory size of 2097152 bytes exhausted</title>
			<description><![CDATA[Такая проблема:<br />
Есть сайт на Joomla! 1.5. На нем стоит компонент каталока SOBI2. После установки к нему плагинов <br />
<br />
<strong>Галереи</strong> и <strong>Отзывов</strong>, при заходе на сайт стала выдаваться такая ошибка:<br />
<br />
<strong>Fatal error</strong>: Allowed memory size of 8388608 bytes exhausted (tried to allocate 393216 bytes) и т.д.<br />
<br />
На локальной машине на (Denwer'е) все работает. В чем может быть проблема? Скорее всего в памяти, как <br />
<br />
написано в ошибке <img class="aux smiley" src="https://lily-software.com/./images/smilies/smile.gif" alt=":)" /> и как с ней можно бороться?]]></description>
			<pubDate>пт, 30 янв 2009 14:33:25 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=413#413]]></link>
		</item>
		<item>
			<title>Alex - посчитать разницу между TIMESTAMP на PHP</title>
			<description><![CDATA[Я использую такую функцию:	<br />
<br />
<pre class="code">
/**
	* Вычисляем разницу между двумя timestamps
	* Параметры:
	*   string $date_start начальная дата в формате unix timestamp
	*   string $date_finish конечая дата в формате unix timestamp
	* Возвращает
	*   массив в следующем формате: 0 =&gt; секунды, 1 =&gt;	минуты, 2 =&gt; часы, 3 =&gt; дни, 4 =&gt; месяцы, 5 =&gt; годы
	* @author zerkms (Ivan Kurnosov)
	*/
	
	function calcPeriod($date_start, $date_finish) {
		$st = explode('-', date('d-m-Y-H-i-s', $date_start));
		$fin = explode('-', date('d-m-Y-H-i-s', $date_finish));

		if (($seconds = $fin&#091;5&#093; - $st&#091;5&#093;) &lt; 0) {
				$fin&#091;4&#093;--;
				$seconds += 60;
		}

		if (($minutes = $fin&#091;4&#093; - $st&#091;4&#093;) &lt; 0) {
				$fin&#091;3&#093;--;
				$minutes += 60;
		}

		if (($hours = $fin&#091;3&#093; - $st&#091;3&#093;) &lt; 0) {
				$fin&#091;0&#093;--;
				$hours += 24;
		}

		if (($days = $fin&#091;0&#093; - $st&#091;0&#093;) &lt; 0) {
				$fin&#091;1&#093;--;
				$days = date('t', mktime(1, 0, 0, $st&#091;1&#093;, $st&#091;0&#093;, $st&#091;2&#093;)) - $st&#091;0&#093; + $fin&#091;0&#093;;
		}

		if (($months = $fin&#091;1&#093; - $st&#091;1&#093;) &lt; 0) {
				$fin&#091;2&#093;--;
				$months += 12;
		}

		$years = $fin&#091;2&#093; - $st&#091;2&#093;;
		
		return array($seconds, $minutes, $hours, $days, $months, $years);
	}</pre>
<br />
вот пример ипользования:<br />
<br />
<pre class="code">$date_finish = strtotime(&quot;1-03-2008&quot;);
$date_start = strtotime(&quot;31-01-2008&quot;);

$result = calcPeriod($date_start, $date_finish);

echo 'C ' . date('h:i:s d-m-y', $date_start) . ' по '. date('h:i:s d-m-y', $date_finish) .' прошло ' . $result&#091;0&#093; . ' секунд ' . $result&#091;1&#093;. ' минут ' .$result&#091;2&#093; . ' часов ' .$result&#091;3&#093; . ' дней ' . $result&#091;4&#093; . ' месяцев ' . $result&#091;5&#093; . ' лет &lt;br&gt;';

</pre>]]></description>
			<pubDate>ср, 01 окт 2008 19:23:39 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=303#303]]></link>
		</item>
		<item>
			<title>Maikl - посчитать разницу между TIMESTAMP на PHP</title>
			<description><![CDATA[Всем привет!<br />
<br />
Поздравляю всех с днем города Астрахань <img class="aux smiley" src="https://lily-software.com/./images/smilies/smile.gif" alt=":)" /><br />
<br />
А вот и сама проблема:<br />
Есть две временные метки TIMESTAMP. Требуется средствами PHP вычислить разницу и вывести ее в днях, месяцах и годах. Фактически нужно посчитать разницу в датах, то есть вывести что то типо такого: &quot;прошло 15 дней 2 месяца и 4 года&quot;<br />
Два дня голову ломаю, пока безуспешно.]]></description>
			<pubDate>ср, 01 окт 2008 13:57:49 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=301#301]]></link>
		</item>
		<item>
			<title>Alex - PHP Сумма прописью</title>
			<description><![CDATA[Можно как то вот так:<br />
<br />
<pre class="code">
// Функция СУММА ПРОПИСЬЮ

$_1_2&#091;1&#093;=&quot;одна &quot;;
$_1_2&#091;2&#093;=&quot;две &quot;;

$_1_19&#091;1&#093;=&quot;один &quot;;
$_1_19&#091;2&#093;=&quot;два &quot;;
$_1_19&#091;3&#093;=&quot;три &quot;;
$_1_19&#091;4&#093;=&quot;четыре &quot;;
$_1_19&#091;5&#093;=&quot;пять &quot;;
$_1_19&#091;6&#093;=&quot;шесть &quot;;
$_1_19&#091;7&#093;=&quot;семь &quot;;
$_1_19&#091;8&#093;=&quot;восемь &quot;;
$_1_19&#091;9&#093;=&quot;девять &quot;;
$_1_19&#091;10&#093;=&quot;десять &quot;;

$_1_19&#091;11&#093;=&quot;одиннацать &quot;;
$_1_19&#091;12&#093;=&quot;двенадцать &quot;;
$_1_19&#091;13&#093;=&quot;тринадцать &quot;;
$_1_19&#091;14&#093;=&quot;четырнадцать &quot;;
$_1_19&#091;15&#093;=&quot;пятнадцать &quot;;
$_1_19&#091;16&#093;=&quot;шестнадцать &quot;;
$_1_19&#091;17&#093;=&quot;семнадцать &quot;;
$_1_19&#091;18&#093;=&quot;восемнадцать &quot;;
$_1_19&#091;19&#093;=&quot;девятнадцать &quot;;

$des&#091;2&#093;=&quot;двадцать &quot;;
$des&#091;3&#093;=&quot;тридцать &quot;;
$des&#091;4&#093;=&quot;сорок &quot;;
$des&#091;5&#093;=&quot;пятьдесят &quot;;
$des&#091;6&#093;=&quot;шестьдесят &quot;;
$des&#091;7&#093;=&quot;семьдесят &quot;;
$des&#091;8&#093;=&quot;восемдесят &quot;;
$des&#091;9&#093;=&quot;девяносто &quot;;

$hang&#091;1&#093;=&quot;сто &quot;;
$hang&#091;2&#093;=&quot;двести &quot;;
$hang&#091;3&#093;=&quot;триста &quot;;
$hang&#091;4&#093;=&quot;четыреста &quot;;
$hang&#091;5&#093;=&quot;пятьсот &quot;;
$hang&#091;6&#093;=&quot;шестьсот &quot;;
$hang&#091;7&#093;=&quot;семьсот &quot;;
$hang&#091;8&#093;=&quot;восемьсот &quot;;
$hang&#091;9&#093;=&quot;девятьсот &quot;;

$namerub&#091;1&#093;=&quot;рубль &quot;;
$namerub&#091;2&#093;=&quot;рубля &quot;;
$namerub&#091;3&#093;=&quot;рублей &quot;;

$nametho&#091;1&#093;=&quot;тысяча &quot;;
$nametho&#091;2&#093;=&quot;тысячи &quot;;
$nametho&#091;3&#093;=&quot;тысяч &quot;;

$namemil&#091;1&#093;=&quot;миллион &quot;;
$namemil&#091;2&#093;=&quot;миллиона &quot;;
$namemil&#091;3&#093;=&quot;миллионов &quot;;

$namemrd&#091;1&#093;=&quot;миллиард &quot;;
$namemrd&#091;2&#093;=&quot;миллиарда &quot;;
$namemrd&#091;3&#093;=&quot;миллиардов &quot;;

$kopeek&#091;1&#093;=&quot;копейка &quot;;
$kopeek&#091;2&#093;=&quot;копейки &quot;;
$kopeek&#091;3&#093;=&quot;копеек &quot;;


function semantic($i,&amp;$words,&amp;$fem,$f){
global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd;
$words=&quot;&quot;;
$fl=0;
if($i &gt;= 100){
$jkl = intval($i / 100);
$words.=$hang&#091;$jkl&#093;;
$i%=100;
}
if($i &gt;= 20){
$jkl = intval($i / 10);
$words.=$des&#091;$jkl&#093;;
$i%=10;
$fl=1;
}
switch($i){
case 1: $fem=1; break;
case 2:
case 3:
case 4: $fem=2; break;
default: $fem=3; break;
}
if( $i ){
if( $i &lt; 3 &amp;&amp; $f &gt; 0 ){
if ( $f &gt;= 2 ) {
$words.=$_1_19&#091;$i&#093;;
}
else {
$words.=$_1_2&#091;$i&#093;;
}
}
else {
$words.=$_1_19&#091;$i&#093;;
}
}
}


function num2str($L){
global $_1_2, $_1_19, $des, $hang, $namerub, $nametho, $namemil, $namemrd, $kopeek;

$s=&quot; &quot;;
$s1=&quot; &quot;;
$s2=&quot; &quot;;
$kop=intval( ( $L*100 - intval( $L )*100 ));
$L=intval($L);
if($L&gt;=1000000000){
$many=0;
semantic(intval($L / 1000000000),$s1,$many,3);
$s.=$s1.$namemrd&#091;$many&#093;;
$L%=1000000000;
}

if($L &gt;= 1000000){
$many=0;
semantic(intval($L / 1000000),$s1,$many,2);
$s.=$s1.$namemil&#091;$many&#093;;
$L%=1000000;
if($L==0){
$s.=&quot;рублей &quot;;
}
}

if($L &gt;= 1000){
$many=0;
semantic(intval($L / 1000),$s1,$many,1);
$s.=$s1.$nametho&#091;$many&#093;;
$L%=1000;
if($L==0){
$s.=&quot;рублей &quot;;
}
}

if($L != 0){
$many=0;
semantic($L,$s1,$many,0);
$s.=$s1.$namerub&#091;$many&#093;;
}

if($kop &gt; 0){
$many=0;
semantic($kop,$s1,$many,1);
$s.=$s1.$kopeek&#091;$many&#093;;
}
else {
$s.=&quot; 00 копеек&quot;;
}

return $s;
}
if (!isset($per)){



// КОНЕЦ функции СУММА ПРОПИСЬЮ
</pre>]]></description>
			<pubDate>сб, 06 сен 2008 07:01:10 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=270#270]]></link>
		</item>
		<item>
			<title>Maikl - PHP Сумма прописью</title>
			<description><![CDATA[Снова созрел вопросик!<br />
<br />
 В общем нужно сумму прописать словами. Как при выписке счета или квитанции. Короче, имеем 25 698 нужно получить &quot;Двадцать пять тысяч шестьсот девяносто восемь&quot;. Заранее огромное спасибо. А то надо срочно.]]></description>
			<pubDate>пт, 05 сен 2008 23:43:10 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=267#267]]></link>
		</item>
		<item>
			<title>Alex - Проблема с кодировкой в WebMoney merchant</title>
			<description><![CDATA[Я пользуюсь русским интерфейсом оплаты <strong>https://merchant.webmoney.ru/lmi/payment.asp</strong><br />
<br />
Ему в поле <strong>LMI_PAYMENT_DESC</strong> передаю значение в кодировке <strong>Windows-1251</strong>. Проблем с кодировкой нет. Все отображается нормально.<br />
<br />
  А преобразовать кодировку в строковой переменнуой можно например функцией php <strong>iconv()</strong>, например следующий код преобразует UTF-8 в Windows-1251: <br />
<br />
<pre class="code">$payment_desc = iconv(&quot;UTF-8&quot;,&quot;WINDOWS-1251&quot;,$payment_desc);</pre>
<br />
а затем $payment_desc и помещаем в поле <strong>LMI_PAYMENT_DESC</strong>.<br />
<br />
<img class="aux smiley" src="https://lily-software.com/./images/smilies/smile.gif" alt=":)" />]]></description>
			<pubDate>ср, 23 июл 2008 08:17:55 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=234#234]]></link>
		</item>
		<item>
			<title>Nikola - Проблема с кодировкой в WebMoney merchant</title>
			<description><![CDATA[Добрый день! <br />
Может кто сталкивался с такой проблемой...<br />
<br />
При формировании запроса на оплату по протоколу <strong>WebMoney merchant</strong> в поле <strong>LMI_PAYMENT_DESC</strong> значение - текст который во-первых не терпит пробелов, а во вторых, в зависимости от кодировки при использовении кирилицы выдает различные символы. Как правило совершенно неудобоваримые для человека.<br />
Кому-то удавалось решить эту проблему?]]></description>
			<pubDate>ср, 23 июл 2008 07:39:24 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=233#233]]></link>
		</item>
		<item>
			<title>Alex - MySQL Значение поля с AUTO_INCREMENT  последней операции INSERT</title>
			<description><![CDATA[Для этого можно воспользоваться функцией php:<br />
<br />
  int <strong>mysql_insert_id </strong>( [resource link_identifier] )<br />
<br />
функция <strong>mysql_insert_id()</strong> возвращает ID, сгенерированный колонкой с AUTO_INCREMENT последним запросом INSERT к серверу, на который ссылается переданный функции указатель link_identifier. Если параметр link_identifier не указан, используется последнее открытое соединение. <br />
<br />
mysql_insert_id() возвращает <strong>0</strong>, если последний запрос не работал с AUTO_INCREMENT полями. Если вам надо сохранить значение, убедитесь, что mysql_insert_id() вызывается сразу после запроса. <br />
<br />
<strong><span style="text-decoration:underline">Замечание:</span></strong> Значение в SQL функции MySQL LAST_INSERT_ID() всегда содержит последний сгенерированный ID и не обнуляется между запросами. <br />
<br />
<strong><span style="color:#F93737">ВНИМАНИЕ</span></strong><br />
<strong>mysql_insert_id()</strong> конвертирует возвращаемый функцией MySQL C API тип значения функции mysql_insert_id() в тип long int (называемый int в PHP). Если ваша колонка AUTO_INCREMENT имеет тип BIGINT, значение, возвращаемое функцией <strong>mysql_insert_id()</strong>, будет искажено. Вместо него используйте функцию SQL LAST_INSERT_ID(). <br />
<br />
Например:<br />
<pre class="code">&lt;?php
    mysql_connect(&quot;localhost&quot;, &quot;mysql_user&quot;, &quot;mysql_password&quot;) or
        die(&quot;Could not connect: &quot; . mysql_error());
    mysql_select_db(&quot;mydb&quot;);

    mysql_query(&quot;INSERT INTO mytable (product) values ('kossu')&quot;);
    printf (&quot;Last inserted record has id %d\n&quot;, mysql_insert_id());
?&gt; </pre>]]></description>
			<pubDate>чт, 17 июл 2008 08:39:41 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=225#225]]></link>
		</item>
		<item>
			<title>Михаил - MySQL Значение поля с AUTO_INCREMENT  последней операции INSERT</title>
			<description><![CDATA[Такой вопросик.<br />
<br />
Есть таблица в базе данных MySQL. В нее добавляется запись запросом INSERT. Как мне после выполнения запроса получить значение поля которое автоматически генерируется в колонке AUTO_INCREMENT?<br />
<br />
Конечно сразу за этим запросом можно выполнить запрос типа &quot;SELECT id FROM myTable WHERE chtoTo='lastInserted'&quot;... то есть выбрать id (это и есть поле с AUTO_INCREMENT) зная последние введеные значения, но хотелось бы получить наверняка именно тот id, который был добавлен последним, вдруг lastInserted уже есть в этой таблице. :|]]></description>
			<pubDate>чт, 17 июл 2008 08:25:01 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=224#224]]></link>
		</item>
		<item>
			<title>Alex - Проверить строку на отсутствие цифр</title>
			<description><![CDATA[На PHP можно сделать так (с применением регулярных выражений):<br />
<br />
<pre class="code">&lt;?php 
if(!preg_match(&quot;/^&#091;a-zA-Zа-Я&#093;+$/&quot;, $str)) { 
    echo &quot;Строка содержит не только буквы&quot;; 
} else { 
    echo &quot;Строка задана в правильном формате, только буквы&quot;; 
} 
?&gt;</pre>
<br />
Единственная проблема сдесь с русскими буквами. <br />
Дело в том что диапазоны можно применять только для <strong>латинских букв и цифр</strong>. Т.к. только эти символы гарантировано идут подряд в любой кодировке (по крайней мере реально применяемой). Все остальные символы могут быть разбросаны <strong>как угодно</strong> (например, русский символы в KOI), да и кодировок существует куча.<br />
<br />
Поэтому есть два варианта. Неправильный: Забить все символы в квадратные скобки [абвгде...яАБ...Я]. Правильный: поставить русскую локаль и пользоваться.]]></description>
			<pubDate>ср, 02 июл 2008 12:45:12 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=215#215]]></link>
		</item>
		<item>
			<title>aristarh - Проверить строку на отсутствие цифр</title>
			<description><![CDATA[Всем привет!<br />
<br />
   Такая вот проблемка. Есть строка, которая хранится в переменной, допустим $str. Так вот как бы мне проверить ее на наличие цифр. И если цифры в ней будут найдены, выдать сообщение об ошибке? Если точнее, то нужно чтобы в строке вообще были только буквы, как английские, так и русские.<br />
   Как вот реализовать это на PHP?]]></description>
			<pubDate>ср, 02 июл 2008 11:27:57 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=214#214]]></link>
		</item>
		<item>
			<title>Maikl - FCKEditor и подсветка синтаксиса</title>
			<description><![CDATA[Есть такой хороший визуальный HTML - редактор для Web - FCKEditor. (<a href="http://www.fckeditor.net">http://www.fckeditor.net</a>). Меня он устраивает во всем. Единственное что, хотелось бы организовать в нем подсветку синтаксиса. Как это можно сделать? Очень нада. Буду рад любым идеям, заранее спасибо!]]></description>
			<pubDate>вт, 01 июл 2008 06:06:45 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=212#212]]></link>
		</item>
		<item>
			<title>Alex - Как получить текущее время?</title>
			<description><![CDATA[Текущее время в нужном формате получить достаточно просто, используя комбинацию функций PHP <strong>date()</strong> + <strong>time()</strong>.<br />
<br />
Для этого нужно писать так:<br />
<pre class="code">echo date('d.m.y', time());</pre>
<br />
Более подробно о всех вариациях синтаксиса для функции date можно почитать здесь - <a href="http://php-manual.info/f/date.html">http://php-manual.info/f/date.html</a><br />
<br />
P.S.<br />
функция time - возвращает текущий <em>UNIX timestamp</em>]]></description>
			<pubDate>вс, 22 июн 2008 16:46:28 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=188#188]]></link>
		</item>
		<item>
			<title>Alex - Автоматический запуск PHP кода</title>
			<description><![CDATA[CRON<br />
<br />
Это приложение и служит для запуска скриптов на сервере по расписанию.]]></description>
			<pubDate>сб, 21 июн 2008 20:10:16 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=185#185]]></link>
		</item>
		<item>
			<title>Михаил - Как получить текущее время?</title>
			<description><![CDATA[Что мне нужно сделать? У меня есть дата,<br />
<br />
fputs($f, &quot;Дата: &quot;.date('d.m.y').&quot;\n&quot;);<br />
<br />
мне нужно еще и время.<br />
если вписать time(), он показывает секундномер запущеный с 70-го(<br />
а надо текущее время.<br />
<br />
плиз помогите :|]]></description>
			<pubDate>пт, 20 июн 2008 15:24:49 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=183#183]]></link>
		</item>
		<item>
			<title>Nikola - Автоматический запуск PHP кода</title>
			<description><![CDATA[У меня такая проблема мне надо чтобы мой код написанный на PHP запускался автоматически например каждые 10 секунд. Вне зависимости от того, открыт сайт где находиться этот код или нет.]]></description>
			<pubDate>пт, 20 июн 2008 14:18:35 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=182#182]]></link>
		</item>
		<item>
			<title>Alex - Реализация дерева</title>
			<description><![CDATA[В общем есть такой вариант решения:<br />
<br />
  Допустим у нас есть БД 'test' в ней таблица 'tree' с полями: ID, parentID и title (ID узла, ID родительского узла и название соответственно)<br />
<br />
функуии вывода структуры дерева и удаления узла вместе со всем поддеревом:<br />
<br />
<pre class="code">//выводим дерево
function showTree ($parentID = 0) { 
	$result = ($parentID == 0)? &quot;ROOT&amp;nbsp;&lt;a href=https://lily-software.com/\&quot;/?do=child&amp;amp;ID=0\&quot; &gt;&lt;img src=https://lily-software.com/\&quot;/pic/child.gif\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; border=\&quot;0\&quot; align=\&quot;absmiddle\&quot; alt=\&quot;Добавить дочернее значение\&quot; /&gt;&lt;/a&gt;&quot; : '';
	$sql = &quot;SELECT * FROM tree WHERE parentID='$parentID' ORDER BY title&quot;;
	$res = mysql_query($sql); 
	if (mysql_num_rows($res) &gt; 0) { 
		$result .= &quot;&lt;ul&gt;&quot;;
		while ($row = mysql_fetch_array($res)) {
			$result .= &quot;&lt;li&gt;&quot;.$row&#091;'title'&#093;.&quot;
					  &lt;a href=https://lily-software.com/\&quot;/?do=edit&amp;amp;ID=&quot;.$row&#091;'ID'&#093;.&quot;\&quot;&gt;&lt;img src=https://lily-software.com/\&quot;pic/edit.gif\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; border=\&quot;0\&quot; align=\&quot;absmiddle\&quot; alt=\&quot;Редактировать название\&quot;/&gt;&lt;/a&gt;
					  &lt;a href=https://lily-software.com/\&quot;/?do=child&amp;amp;ID=&quot;.$row&#091;'ID'&#093;.&quot;\&quot;&gt;&lt;img src=https://lily-software.com/\&quot;/pic/child.gif\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; border=\&quot;0\&quot; align=\&quot;absmiddle\&quot; alt=\&quot;Добавить дочернее значение\&quot; /&gt;&lt;/a&gt;
					  &lt;a href=https://lily-software.com/\&quot;/?do=del&amp;amp;ID=&quot;.$row&#091;'ID'&#093;.&quot;&amp;amp;sessID=&quot;.session_id().&quot; \&quot;&gt;&lt;img src=https://lily-software.com/\&quot;/pic/del.gif\&quot; width=\&quot;16\&quot; height=\&quot;16\&quot; border=\&quot;0\&quot; align=\&quot;absmiddle\&quot; alt=\&quot;Удалить узел (удалит и все вложенные поддеревья)\&quot; onClick=\&quot;return Delete_confirm()\&quot; /&gt;&lt;/a&gt;
			&lt;/li&gt;&quot;;
			$result .= showTree ($row&#091;'ID'&#093;); 
		} 
		$result .= '&lt;/ul&gt;';
		//$result = trim($result,&quot; &quot;);
	} 
	return $result;
}

//удаляем ветку(вместе с поддеревьями)
function deleteSubTree($ID){
	$sql = &quot;SELECT ID FROM tree WHERE parentID='$ID'&quot;;
	$res = mysql_query($sql); 
	if (mysql_num_rows($res) &gt; 0) {
		while ($row = mysql_fetch_array($res)) {
			if (!deleteSubTree($row&#091;&quot;ID&quot;&#093;)) return false;
		}	
	}
	$sql = &quot;DELETE FROM tree WHERE ID='$ID' LIMIT 1&quot;;
	mysql_query($sql); 
	if (mysql_affected_rows() &lt; 1) return false;
	else return true;
	
	return false;
}

$do = (!empty($_POST&#091;'do'&#093;)) ? $_POST&#091;'do'&#093; : &quot;&quot;;
  if (empty($_POST&#091;'do'&#093;) &amp;&amp; (!empty($_GET&#091;'do'&#093;))) $do = $_GET&#091;'do'&#093;;
  
  $error = &quot;&quot;;
  $out1 = &quot;&quot;;</pre>
<br />
И в зависимости от принятого запроса выполняем те или иные действия<br />
<br />
<pre class="code">
  switch ($do) {
  	
	// редактирование узла
	case &quot;edit&quot;:
		$sql = &quot;SELECT * FROM tree WHERE ID='&quot;.$_GET&#091;&quot;ID&quot;&#093;.&quot;' LIMIT 1&quot;;
		$res = mysql_query($sql); 
		if (mysql_num_rows($res) &gt; 0) {
			$row = mysql_fetch_assoc($res);
			$out1 .= &quot;&lt;form method=\&quot;post\&quot; action=\&quot;\&quot;&gt;
					  Введите новое название для «&quot;.$row&#091;&quot;title&quot;&#093;.&quot;»: 
					  &lt;input type=\&quot;text\&quot; name=\&quot;title\&quot; /&gt;
					  &lt;input type=\&quot;hidden\&quot; name=\&quot;do\&quot; value=\&quot;save\&quot; /&gt;
					  &lt;input type=\&quot;hidden\&quot; name=\&quot;ID\&quot; value=&quot;.$_GET&#091;&quot;ID&quot;&#093;.&quot; /&gt;
					  &lt;input type=\&quot;hidden\&quot; name=\&quot;sessId\&quot; value=\&quot;&quot;.session_id().&quot;\&quot; /&gt;
					  &lt;input type=\&quot;submit\&quot; value=\&quot;Сохранить\&quot; /&gt;
					&lt;/form&gt;&quot;;
		}
      	break;
	
	// сохранение отредактированного	
	case &quot;save&quot;:
		if ($_POST&#091;&quot;sessId&quot;&#093; != session_id()) exit(&quot;Ошибка: попытка передачи данных с другого хоста&quot;);
		$_POST&#091;&quot;title&quot;&#093; = sql_prep(trim (htmlspecialchars($_POST&#091;&quot;title&quot;&#093;, ENT_QUOTES)));
	    $sql = &quot;UPDATE tree SET title='&quot;.$_POST&#091;&quot;title&quot;&#093;.&quot;' WHERE ID='&quot;.$_POST&#091;&quot;ID&quot;&#093;.&quot;' LIMIT 1&quot;;
		mysql_query($sql); 
		if (mysql_affected_rows() &lt; 1) $error .= &quot;&lt;strong&gt;Ошибка сохранения названия узла&lt;/strong&gt;&quot;;
      	break;
	
	// Удаление узла с поддеревом	
	case &quot;del&quot;:
		if ($_GET&#091;&quot;sessID&quot;&#093; != session_id()) exit(&quot;Ошибка: попытка передачи данных с другого хоста&quot;);
		if (!deleteSubTree($_GET&#091;&quot;ID&quot;&#093;)) $error .= &quot;&lt;strong&gt;Ошибка удаления узла&lt;/strong&gt;&quot;;
      	break;
	  
    // Форма ввода нового узла	
	case &quot;child&quot;:
		$out1 .= &quot;&lt;form method=\&quot;post\&quot; action=\&quot;\&quot;&gt;
					  Введите название нового узла: 
					  &lt;input type=\&quot;text\&quot; name=\&quot;title\&quot; /&gt;
					  &lt;input type=\&quot;hidden\&quot; name=\&quot;do\&quot; value=\&quot;saveChild\&quot; /&gt;
					  &lt;input type=\&quot;hidden\&quot; name=\&quot;ID\&quot; value=&quot;.$_GET&#091;&quot;ID&quot;&#093;.&quot; /&gt;
					  &lt;input type=\&quot;hidden\&quot; name=\&quot;sessId\&quot; value=\&quot;&quot;.session_id().&quot;\&quot; /&gt;
					  &lt;input type=\&quot;submit\&quot; value=\&quot;Сохранить\&quot; /&gt;
					&lt;/form&gt;&quot;;
      	break;
		
	// удаление дерева	
	case &quot;saveChild&quot;:
		if ($_POST&#091;&quot;sessId&quot;&#093; != session_id()) exit(&quot;Ошибка: попытка передачи данных с другого хоста&quot;);
		$_POST&#091;&quot;title&quot;&#093; = sql_prep(trim (htmlspecialchars($_POST&#091;&quot;title&quot;&#093;, ENT_QUOTES)));
		$_POST&#091;&quot;ID&quot;&#093; = sql_prep(trim (htmlspecialchars($_POST&#091;&quot;ID&quot;&#093;, ENT_QUOTES)));
		$_POST&#091;&quot;title&quot;&#093; = sql_prep(trim (htmlspecialchars($_POST&#091;&quot;title&quot;&#093;, ENT_QUOTES)));
	    $sql = &quot;INSERT INTO tree (parentID, title) VALUES ('&quot;.$_POST&#091;'ID'&#093;.&quot;', '&quot;.$_POST&#091;'title'&#093;.&quot;')&quot;;
		mysql_query($sql); 
		if (mysql_affected_rows() &lt; 1) $error .= &quot;&lt;strong&gt;Ошибка сохранения узла&lt;/strong&gt;&quot;;
      	break;
	
	// 	
  }</pre>
<br />
Осталось организовать вывод в браузер и все <img class="aux smiley" src="https://lily-software.com/./images/smilies/smile.gif" alt=":)" /><br />
<br />
З.Ы. Единственное, что тут в рекурсии отправляется SQL запрос. При большом дереве это не очень хорошо, т.к. будет много SQL запросов. Лучше считать дерево в переменную одним запросом и обрабатывать получившийся массив. 8)]]></description>
			<pubDate>пт, 20 июн 2008 12:39:25 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=181#181]]></link>
		</item>
		<item>
			<title>aristarh - Реализация дерева</title>
			<description><![CDATA[В общем есть такая необходимость, реализовать дерево на php и MySql<br />
<br />
Недвижисость<br />
...|_ Участки<br />
...........|_ Дачи<br />
...........|_Под сельхоз. использование<br />
...........|_Под строительство<br />
...|_ Квартиры<br />
...........|_Однокомнатные<br />
...........|_Двухкомнатные<br />
................|_новостройки<br />
................|_вторичное жилье<br />
<br />
Нужно реализовать следующие функции:<br />
•  добавление элементов в дерево на любой уровень (для этого выбирается родитель и вписывается имя нового элемента)<br />
•  переименование любого элемента дерева, кроме корневого элемента 'Недвижисость'<br />
•  удаление любого элемента дерева (c удалением ветки)<br />
<br />
Буду рад любым идеям]]></description>
			<pubDate>чт, 19 июн 2008 12:50:35 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=180#180]]></link>
		</item>
		<item>
			<title>Alex - Документация по PHP, MySQL, Apache</title>
			<description><![CDATA[Для начала - ссылки на документацию. Хочу заметить, что на русский язык не всегда успевают переводить все, т.к. объем документации очень большой. По этому документация на английском языке часто бывает более актуальной.<br />
<br />
    <strong>Руководство по PHP</strong>: <a href="http://www.php.net/manual/ru/">http://www.php.net/manual/ru/</a> (есть и английская официальная версия документации), <a href="http://php.ru/manual/">http://php.ru/manual/</a>, <a href="http://www.php.su/">http://www.php.su/</a><br />
<br />
  <strong>Справочное руководство по MySQL</strong>: <a href="http://php.ru/mysql/">http://php.ru/mysql/</a>, <a href="http://www.mysql.ru/docs/">http://www.mysql.ru/docs/</a>, ну и конечно <a href="http://www.mysql.com/">http://www.mysql.com/</a><br />
<br />
   <strong>Документация к HTTP серверу Apache</strong>: <a href="http://php.ru/apache2/">http://php.ru/apache2/</a>, <a href="http://www.apache.ru/docs/">http://www.apache.ru/docs/</a>, <a href="http://apache.org/">http://apache.org/</a><br />
<br />
   Пройдя по большинству вышеуказанных ссылок, Вы можете и скачать означенные продукты. Для обучения и отладки скриптов очень хорошо подойдет &quot;Джентельменский набор Web-разработчика&quot; <a href="http://www.denwer.ru/">http://www.denwer.ru/</a>. Он очень легко устанавливается под <strong>Windows</strong> и почти не требует настроек (Спасибо Дмитрию Котерову).]]></description>
			<pubDate>чт, 29 мая 2008 22:18:54 +0300</pubDate>
			<link><![CDATA[https://lily-software.com/forums?m=posts&p=152#152]]></link>
		</item>
	</channel>
</rss>