-
06 МАРТ 20110
-
22 ФЕВР 20110
Поиск на Ajax
|
HTML<form id="searchForm" name="searchForm" method="post" action="javascript:insertTask();">
<div class="searchInput">
<input name="searchq" type="text" id="searchq" size="30" onkeyup="javascript:searchNameq()"/>
<input type="button" name="submitSearch" id="submitSearch" value="Search" onclick="javascript:searchNameq()"/>
</div>
</form>
<h3>Search Results</h3>
<div id="msg">Type something into the input field</div>
<div id="search-result"></div>
JSfunction createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
} else {
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
function searchNameq() {
searchq = encodeURI(document.getElementById('searchq').value);
document.getElementById('msg').style.display = "block";
document.getElementById('msg').innerHTML = "Searching for <strong>" + searchq+"";
// Set te random number to add to URL request
nocache = Math.random();
http.open('get', 'in-search.php?name='+searchq+'&nocache = '+nocache);
http.onreadystatechange = searchNameqReply;
http.send(null);
}
function searchNameqReply() {
if(http.readyState == 4){
var response = http.responseText;
document.getElementById('search-result').innerHTML = response;
}
}
php in-search.php<?php
include('config.php');
$searchq = $_GET['name'];
$getName = mysql_query('SELECT * FROM USER WHERE name LIKE "%'.addslashes($searchq).'%"');
while ($row = mysql_fetch_array($getName))
echo $row['name'] . '<br/>';
?> -
21 ФЕВР 20110
Обзор регурярных выражений

Найти текст, заключенный в какой-то тег и заменить его на другой тег
Например: ... заменить аналогично на ... в HTML-файле:preg_replace("!<title>(.*?)</title>!si","<МОЙ_ТЕГ>\1</МОЙ_ТЕГ>",$string);
Взять то, что находится между тегами иif (preg_match('|<title.*?>(.*)</title>|sei', $str, $arr)) $title = $arr[1]; else $title='';
Получить расширение файлаpreg_replace("/.*?\./", '', 'photo.jpg');
Проверяем, является ли переменная числомif (!preg_match("|^[\d]+$|", $var))
Запретим пользователю использовать в своем имени любые символы, кроме букв русского и латинского алфавита, знака "_" (подчерк), пробела и цифр:if (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/",$username)) {
echo "invalid username";
exit;
}
Для поля ввода адреса e-mail добавим в список разрешенных символов знаки "@" и "." и "-", иначе пользователь не сможет корректно ввести адрес. Зато уберем русские буквы и пробел:if (preg_match("/[^(\w)|(\@)|(\.)|(\-)]/",$usermail)) {
echo "invalid mail";
exit;
}
Проверка на числоif(preg_match('/^\d+$/', $var)) echo $var;
Парсер всех внешних и внутренних ссылок со страницы
В массиве $vnut только ссылки внутренние, в массиве $vnech только внешние ссылки.$html=file_get_contents ('http://www.popsu.net');
$url='popsu.net';
$vnut=array();
$vnech=array();
preg_match_all('~<a [^<>]*href=[\'"]([^\'"]+)[\'"][^<>]*>(((?!~si',$html, $matches);
foreach ($matches[1] as $val) {
if (!preg_match("~^[^=]+://~", $val) || preg_match("~^[^://]+://(www\.)?".$url."~i", $val)) { $vnut[]=$val; }
else $vnech[]=$val;
}
$vnut=array_unique ($vnut);
$vnech=array_unique ($vnech);
print_r ($vnut);
print_r ($vnech);
Конвертор HTML в текст$search = array ("'<script[^>]*?>.*?</script>'si", // Вырезает javascript
"'<[\/\!]*?[^<>]*?>'si", // Вырезает HTML-теги
"'([\r\n])[\s]+'", // Вырезает пробельные символы
"'&(quot|#34);'i", // Заменяет HTML-сущности
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(\d+);'e"); // интерпретировать как php-код
$replace = array ("",
"",
"\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\1)");
$text = preg_replace($search, $replace, $document); -
09 ФЕВР 20110
Короткий аналог условия if else (Тернарная условная операция)
|
логическое выражение ? выражение 1 : выражение 2
PHP<?php
//длинный код
if($a<b){
$msg = 'a<b';
}else{
$msg = 'a>b';
}
//короткий аналог кода
$msg = (a<b)? 'a<b': 'a>b';
?>
JSif (document.all==true) then ie=1 else ie=0;
сокращенное условие: var ie=document.all?1:0; -
08 ФЕВР 20110
Перенос сайта на HTTPS

Стала задача перенести один не хитрый сайт на https принудительно.
HTTPS (Hypertext Transfer Protocol Secure) — расширение протокола HTTP, поддерживающее шифрование. Данные, передаваемые по протоколу HTTPS, «упаковываются» в криптографический протокол SSL или TLS, тем самым обеспечивается защита этих данных. В отличие от HTTP, для HTTPS по умолчанию используется TCP-порт 443.
PHP - в моем случаее не понадобилось, но в Вашем может...if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
$uri = 'https://';
} else {
$uri = 'http://';
}
$uri .= $_SERVER['HTTP_HOST'];
header('Location: '.$uri.'/');
exit;
SSL config апача<VirtualHost *:443>
DocumentRoot /usr/var/www/site
ServerName site
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
<FilesMatch "\.(cgi|shtml|pl|asp|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</VirtualHost>
.htaccess - принудительно редиректим на httpsRewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}/ [L,R] -
10 ЯНВ 20110
Функция времени
Как в вконтакте или твиттере
А делается это примерно, так:<?php
function time_stamp($session_time)
{
$time_difference = time() - $session_time;
$seconds = $time_difference;
$minutes = round($time_difference / 60 );
$hours = round($time_difference / 3600 );
$days = round($time_difference / 86400 );
$weeks = round($time_difference / 604800 );
$months = round($time_difference / 2419200 );
$years = round($time_difference / 29030400 );
// Секунды
if($seconds <= 60) { echo "$seconds секунд назад"; }
// Минуты
else if($minutes <=60) {
if($minutes==1) { echo "одну минуту назад"; }
else { echo "$minutes минут назад"; }
}
// Часы
else if($hours <=24)
{
if($hours==1)
{ echo "один час назад"; }
else
{ echo "$hours часов назад"; }
}
// Дни
else if($days <= 7)
{
if($days==1)
{ echo "один день назад"; }
else
{ echo "$days дней назад"; }
}
// Недели
else if($weeks <= 4)
{
if($weeks==1)
{ echo "одну неделю назад"; }
else
{ echo "$weeks недель назад"; }
}
// Месяцы
else if($months <=12)
{
if($months==1)
{ echo "один месяц назад"; }
else
{ echo "$months месяцев назад"; }
}
// Года
else
{
if($years==1)
{ echo "один год назад"; }
else
{ echo "$years года\лет назад"; }
}
}
$session_time ="1264326122";
//$session_time=time();
echo time_stamp($session_time);
?> -
07 ЯНВ 20110
Полезные функции PHP

Простой способ реализации списка структуры папок$path = "/home/user/public/foldername/";
$dir_handle = @opendir($path) or die("Unable to open $path");
while ($file = readdir($dir_handle)) {
if($file == "." || $file == ".." || $file == "index.php" )
continue;
echo "<a href=\"$file\">$file</a><br />";
}
closedir($dir_handle);
Создание защищенной паролем страницы<?
$username = "someuser";
$password = "somepassword";
if ($_POST['txtUsername'] != $username || $_POST['txtPassword'] != $password) {?>
<h1>Login</h1>
<form name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p><label for="txtUsername">Username:</label>
<br><input type="text" title="Enter your Username" name="txtUsername"></p>
<p><label for="txtpassword">Password:</label>
<br><input type="password" title="Enter your password" name="txtPassword"></p>
<p><input type="submit" name="Submit" value="Login"></p>
</form>
<?} else {?>
<p>This is the protected page. Your private content goes here.</p>
<?}?>
Искать файлы, используя шаблоны$files = glob('*.php');
print_r($files);
/* Выдаст что-то типа:
Array
(
[0] => phptest.php
[1] => pi.php
[2] => post_output.php
[3] => test.php
)
*/
Сериализация// a complex array
$myvar = array(
'hello',
42,
array(1,'two'),
'apple'
);
// convert to a string
$string = serialize($myvar);
echo $string;
/* prints
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}
*/
// you can reproduce the original variable
$newvar = unserialize($string);
print_r($newvar);
/* prints
Array
(
[0] => hello
[1] => 42
[2] => Array
(
[0] => 1
[1] => two
)
[3] => apple
)
*/ -
21 НОЯ 20100
Функция создания цветовой палитры на PHP

Обязательно наличие модуля GD<?php
function colorPalette($imageFile, $numColors, $granularity = 5)
{
$granularity = max(1, abs((int)$granularity));
$colors = array();
$size = @getimagesize($imageFile);
if($size === false)
{
user_error("Unable to get image size data");
return false;
}
$img = @imagecreatefromjpeg($imageFile);
if(!$img)
{
user_error("Unable to open image file");
return false;
}
for($x = 0; $x < $size[0]; $x += $granularity)
{
for($y = 0; $y < $size[1]; $y += $granularity)
{
$thisColor = imagecolorat($img, $x, $y);
$rgb = imagecolorsforindex($img, $thisColor);
$red = round(round(($rgb['red'] / 0x33)) * 0x33);
$green = round(round(($rgb['green'] / 0x33)) * 0x33);
$blue = round(round(($rgb['blue'] / 0x33)) * 0x33);
$thisRGB = sprintf('%02X%02X%02X', $red, $green, $blue);
if(array_key_exists($thisRGB, $colors))
{
$colors[$thisRGB]++;
}
else
{
$colors[$thisRGB] = 1;
}
}
}
arsort($colors);
return array_slice(array_keys($colors), 0, $numColors);
}
?>
<div align="center"><img src="58.jpg" alt="58.jpg"/><br/><br/></div>
<?php
// пример использования:
$palette = colorPalette('58.jpg', 10, 5);
echo "<table align='center'>\n";
foreach($palette as $color)
{
echo "<tr><td style='background-color:#$color;width:2em;'> </td><td>#$color</td></tr>\n";
}
echo "</table>\n";
СМОТРЕТЬ ДЕМО
Категории:
Оставить на заметку в:
