Архив

Публикации с меткой ‘PHP’
2 февраля 2011 2 комментария

В примере 3 первых элемента.

$arr=array_slice($arr,0,2);
Categories: PHP Tags:
2 февраля 2011 5 комментариев
$arr=array_unique($arr);
Categories: PHP Tags:
1 февраля 2011 Нет комментариев

Формируется массив, каждый элемент которого отдельная строка.

$arr=preg_split("/[\n\r]+/s",$text);
Categories: PHP Tags:
27 января 2011 3 комментария

Целое число дней между сегодняшней датой и любой другой:

floor((strtotime("now")-strtotime("2010-01-20"))/86400)
Categories: PHP Tags:
18 января 2011 2 комментария

Вариант 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)");
Categories: MySQL, PHP Tags: ,
29 декабря 2010 Нет комментариев

Вот нужно например из файла 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>";
?>

ну а дальше копи-паст в исходник :)

Categories: PHP Tags:
9 декабря 2010 3 комментария

Часть формы где у нас инпут для логина:

echo "<input type='text' id='login' name='login' onblur='checkName(this.value, \"\")'/>";
	echo "&nbsp;&mdash;&nbsp;<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/

Categories: Javascript, PHP Tags: , ,