Формируется массив, каждый элемент которого отдельная строка.
$arr=preg_split("/[\n\r]+/s",$text);
Формируется массив, каждый элемент которого отдельная строка.
$arr=preg_split("/[\n\r]+/s",$text);
Целое число дней между сегодняшней датой и любой другой:
floor((strtotime("now")-strtotime("2010-01-20"))/86400)
Вариант 1. Дату получаем на PHP:
Вариант 1.1.
$time=mktime(date('H'),date('i'),date('s'),date('m'),date('d')-1,date('Y')); $yd=date("Y-m-d",$time);
Вариант 1.2.
$yd=date("Y-m-d",time()-3600*24);
Вариант 1.3.
$yd=date('Y-m-d',strtotime('yesterday'));
Вариант 1.4.
$yd=date('Y-m-d',strtotime('-1 day'));
из всех этих вариантов последний наверное самый нормальный.
Ну и сама выборка
$query=mysql_query("SELECT fieldname FROM tablename WHERE datefield='".$yd."'");
И вариант 2. где только sql-запрос. Самый правильный в данном случае.
$query=mysql_query("SELECT fieldname FROM tablename WHERE datefield = DATE_SUB(CURDATE(), INTERVAL 1 DAY)");
Вот нужно например из файла http://static.wipmania.com/static/countries.txt получить 2 массива: массив кодов стран и масиив кодов стран с названиями. Как сделать быстро:
Итак файл в формате:
AC Ascension Island AD Andorra AE United Arab Emirates AF Afghanistan ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ZA South Africa ZM Zambia ZW Zimbabwe
а нужно:
$arr1=array('AC','AD','AE','AF','AG','AI','AL','AM','AN','AO','AQ','AR','AS','AT','AU','AW','AX','AZ','BA','BB','BD','BE','BF','BG','BH','BI','BJ','BL','BM','BN','BO','BR','BS','BT','BV','BW','BY','BZ','CA','CC','CD','CF','CG','CH','CI','CK','CL','CM','CN','CO','CR','CU','CV','CX','CY','CZ','DE','DJ','DK','DM','DO','DZ','EC','EE','EG','EH','ER','ES','ET','FI','FJ','FK','FM','FO','FR','GA','GB','GD','GE','GF','GG','GH','GI','GL','GM','GN','GP','GQ','GR','GS','GT','GU','GW','GY','HK','HM','HN','HR','HT','HU','ID','IE','IL','IM','IN','IO','IQ','IR','IS','IT','JE','JM','JO','JP','KE','KG','KH','KI','KM','KN','KP','KR','KW','KY','KZ','LA','LB','LC','LI','LK','LR','LS','LT','LU','LV','LY','MA','MC','MD','ME','MF','MG','MH','MK','ML','MM','MN','MO','MP','MQ','MR','MS','MT','MU','MV','MW','MX','MY','MZ','NA','NC','NE','NF','NG','NI','NL','NO','NP','NR','NU','NZ','OM','PA','PE','PF','PG','PH','PK','PL','PM','PN','PR','PS','PT','PW','PY','QA','RE','RO','RS','RU','RW','SA','SB','SC','SD','SE','SG','SH','SI','SJ','SK','SL','SM','SN','SO','SR','ST','SV','SY','SZ','TC','TD','TF','TG','TH','TJ','TK','TL','TM','TN','TO','TR','TT','TV','TW','TZ','UA','UG','UM','US','UY','UZ','VA','VC','VE','VG','VI','VN','VU','WF','WS','YE','YT','ZA','ZM','ZW');
и
$arr2=array('AC'=>'Ascension Island', 'AD'=>'Andorra', 'AE'=>'United Arab Emirates', 'AF'=>'Afghanistan', ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 'ZA'=>'South Africa', 'ZM'=>'Zambia', 'ZW'=>'Zimbabwe');
И так решение:
<?php $ish = "AC Ascension Island AD Andorra AE United Arab Emirates AF Afghanistan ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ZA South Africa ZM Zambia ZW Zimbabwe "; $arr1=preg_replace("/\t.+\n/", "\n",$ish); $arr1=preg_replace("/\n/","','",$arr1); echo "<pre>"; echo '$arr1=array(\''; echo substr($arr1,0,-2); echo ');'; echo "</pre>"; echo "<br/><br/>"; $arr2=preg_replace("/\t/","'=>'",$ish); $arr2=preg_replace("/\n/","',\n\t'",$arr2); echo "<pre>"; echo '$arr2=array(\''; echo substr($arr2,0,-4); echo ');'; echo "</pre>"; ?>
ну а дальше копи-паст в исходник :)
Часть формы где у нас инпут для логина:
echo "<input type='text' id='login' name='login' onblur='checkName(this.value, \"\")'/>"; echo " — <label for='login'>LOGIN</label><br/>"; echo "<span class='hidden' id='nameCheckFailed'>NOT AVAILABLE</span>"; echo "<span class='hidden' id='nameCheckOK'>AVAILABLE</span><br/>";
Яваскрипт, подключенный например где-то в head:
function checkName(input,response) { if (response != '') { failtext=document.getElementById('nameCheckFailed'); oktext=document.getElementById('nameCheckOK'); if (response == '1') { failtext.className='failtext'; oktext.className='hidden'; } else { failtext.className='hidden'; oktext.className='oktext'; } } else { if (input != '') { url='http://hostname/xml/checkUserName.php?q='+input; loadXMLDoc(url); } else { failtext.className='hidden'; oktext.className='hidden'; } } } var req; function loadXMLDoc(url) { if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange=processReqChange; req.open("GET",url,true); req.send(null); } else if (window.ActiveXObject) { req = new ActiveXObject("Micrisoft.XMLHTTP"); if (req) { req.onreadystatechange=processReqchange; req.open("GET",url,true); req.send(); } } } function processReqChange() { if (req.readyState == 4) { if (req.status == 200) { response=req.responseXML.documentElement; method=response.getElementsByTagName('method')[0].firstChild.data; result=response.getElementsByTagName('result')[0].firstChild.data; eval(method + '(\'\', result)'); } else { alert("There was a problem retrieving the XML data:\n"+req.statusText); } } }
Файл /xml/checkUserName.php (в первой строчке инклуд подключения к БД, если не знаем что там и как — гуглим, еще конечно должна существовать таблица users с полем username, в которое пишутся логины)
<?php include ($_SERVER['DOCUMENT_ROOT']."/include/dbconfig.php"); header('Content-Type: text/xml'); echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'; function nameInUse($q) { $query=mysql_query("SELECT COUNT(*) FROM users WHERE username='".$q."'"); $result=mysql_fetch_array($query); switch($result[0]) { case '1' : return '1'; break; default: return '0'; } } echo '<response> <method>checkName</method> <result>'.nameInUse($_GET['q']).'</result> </response>'; ?>
И CSS:
span.hidden { display:none; } span.failtext { display: inline; background: #ffebea; } span.oktext { display: inline; background-color: #efffea;; }
На основе: http://wmdn.ru/javascript/example-of-check-login-using-ajax/
Вариант от WMDN: http://wmdn.ru/javascript/example-of-check-login-using-ajax/
function YearTextArg($year) { $year = abs($year); $t1 = $year % 10; $t2 = $year % 100; return ($t1 == 1 && $t2 != 11 ? "год" : ($t1 >= 2 && $t1 <= 4 && ($t2 < 10 || $t2 >= 20) ? "года" : "лет")); }
Источник: http://habrahabr.ru/blogs/php/53210/
/** * Сумма прописью * @author runcore */ function num2str($inn, $stripkop=false) { $nol = 'ноль'; $str[100]= array('','сто','двести','триста','четыреста','пятьсот','шестьсот', 'семьсот', 'восемьсот','девятьсот'); $str[11] = array('','десять','одиннадцать','двенадцать','тринадцать', 'четырнадцать','пятнадцать','шестнадцать','семнадцать', 'восемнадцать','девятнадцать','двадцать'); $str[10] = array('','десять','двадцать','тридцать','сорок','пятьдесят', 'шестьдесят','семьдесят','восемьдесят','девяносто'); $sex = array( array('','один','два','три','четыре','пять','шесть','семь', 'восемь','девять'),// m array('','одна','две','три','четыре','пять','шесть','семь', 'восемь','девять') // f ); $forms = array( array('копейка', 'копейки', 'копеек', 1), // 10^-2 array('рубль', 'рубля', 'рублей', 0), // 10^ 0 array('тысяча', 'тысячи', 'тысяч', 1), // 10^ 3 array('миллион', 'миллиона', 'миллионов', 0), // 10^ 6 array('миллиард', 'миллиарда', 'миллиардов', 0), // 10^ 9 array('триллион', 'триллиона', 'триллионов', 0), // 10^12 ); $out = $tmp = array(); // Поехали! $tmp = explode('.', str_replace(',','.', $inn)); $rub = number_format($tmp[ 0], 0,'','-'); if ($rub== 0) $out[] = $nol; // нормализация копеек $kop = isset($tmp[1]) ? substr(str_pad($tmp[1], 2, '0', STR_PAD_RIGHT), 0,2) : '00'; $segments = explode('-', $rub); $offset = sizeof($segments); if ((int)$rub== 0) { // если 0 рублей $o[] = $nol; $o[] = morph( 0, $forms[1][ 0],$forms[1][1],$forms[1][2]); } else { foreach ($segments as $k=>$lev) { $sexi= (int) $forms[$offset][3]; // определяем род $ri = (int) $lev; // текущий сегмент if ($ri== 0 && $offset>1) {// если сегмент==0 & не последний уровень(там Units) $offset--; continue; } // нормализация $ri = str_pad($ri, 3, '0', STR_PAD_LEFT); // получаем циферки для анализа $r1 = (int)substr($ri, 0,1); //первая цифра $r2 = (int)substr($ri,1,1); //вторая $r3 = (int)substr($ri,2,1); //третья $r22= (int)$r2.$r3; //вторая и третья // разгребаем порядки if ($ri>99) $o[] = $str[100][$r1]; // Сотни if ($r22>20) {// >20 $o[] = $str[10][$r2]; $o[] = $sex[ $sexi ][$r3]; } else { // <=20 if ($r22>9) $o[] = $str[11][$r22-9]; // 10-20 elseif($r22> 0) $o[] = $sex[ $sexi ][$r3]; // 1-9 } // Рубли $o[] = morph($ri, $forms[$offset][ 0],$forms[$offset][1],$forms[$offset][2]); $offset--; } } // Копейки if (!$stripkop) { $o[] = $kop; $o[] = morph($kop,$forms[ 0][ 0],$forms[ 0][1],$forms[ 0][2]); } return preg_replace("/\s{2,}/",' ',implode(' ',$o)); } /** * Склоняем словоформу */ function morph($n, $f1, $f2, $f5) { $n = abs($n) % 100; $n1= $n % 10; if ($n>10 && $n<20) return $f5; if ($n1>1 && $n1<5) return $f2; if ($n1==1) return $f1; return $f5; }
Пример использования:
num2str(878867.15);
выведет:
восемьсот семьдесят восемь тысяч восемьсот шестьдесят семь рублей пятнадцать копеек
Источник: http://habrahabr.ru/blogs/php/53210/