Google+

Короткий аналог условия if else (Тернарная условная операция) #

Короткий аналог условия if else (Тернарная условная операция)

логическое выражение ? выражение 1 : выражение 2

PHP
//длинный код
if($a $msg = 'a }else{
$msg = 'a>b';
}
//короткий аналог кода
$msg = (ab';
?>


JS
if (document.all==true) then ie=1 else ie=0;
сокращенное условие: var ie=document.all?1:0;

Перенос сайта на HTTPS #

Перенос сайта на 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 апача

  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"  
    
        SSLOptions +StdEnvVars
    

    BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0    

.htaccess - принудительно редиректим на https
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [L,R]

Функция времени #

Как в вконтакте или твиттере
Функция времени

А делается это примерно, так:
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);
?>

Каскадный выбор CascadeSelect #

Каскадный выбор CascadeSelect




Скачать исходники cascadeSelect.rar

Полезные функции PHP #

Полезные функции 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 "$file
";
    }
closedir($dir_handle);


Создание защищенной паролем страницы
$username = "someuser";
$password = "somepassword";

if ($_POST['txtUsername'] != $username || $_POST['txtPassword'] != $password) {?>

Login



      


      



      


      


  




    

This is the protected page. Your private content goes here.




Искать файлы, используя шаблоны
$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
)
*/

Функция создания цветовой палитры на PHP #

Функция создания цветовой палитры на 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);
}
?>
58.jpg


// пример использования:
$palette = colorPalette('58.jpg', 10, 5);
echo "\n";
foreach($palette as $color)
{
   echo "\n";
}
echo "
 #$color
\n";
Обязательно наличие модуля GD

СМОТРЕТЬ ДЕМО