Google+

Некоторые PHP функций #

Некоторые PHP функций


function seo_url($string, $seperator='-') {
    $string = strtolower($string);
    $string = preg_replace("/[^a-z0-9_\s-]/", $seperator, $string);
    $string = preg_replace("/[\s-]+/", " ", $string);
    $string = preg_replace("/[\s_]/", $seperator, $string);
    return $string;
}
Делает из "Privet Ivan" => "privet-ivan"

function detect_encoding($string) {  
  static $list = array('utf-8', 'windows-1251');
   
  foreach ($list as $item) {
     $sample = iconv($item, $item, $string);
     if (md5($sample) == md5($string))
       return $item;
   }
   return null;
 }
Функция детектит кодировку

function full_url()
{
    $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
    $protocol = substr(strtolower($_SERVER["SERVER_PROTOCOL"]), 0, strpos(strtolower($_SERVER["SERVER_PROTOCOL"]), "/")) . $s;
    $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
    return $protocol . "://" . $_SERVER['SERVER_NAME'] . $port . $_SERVER['REQUEST_URI'];
}
Разберает урл на протокол имя сервера порта и сам запрос

Получает имя домена

echo json_decode(str_replace('%u', '\\u', json_encode($str_from_js)));
Преобразовует символы Юникода в виде «%uXXXX» в UTF-8

И на закусь некоторые правила htaccess:
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA]
# http://domain/about -> http://domain/about.php
 --------------------------------------------------
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
# http://domain/about -> http://domain/index.php?q=about

Функция определения смартфона PHP #

function check_smartphone() {

    if ( $_SESSION['mobile_enable'] ) return true;

    $phone_array = array('iphone', 'android', 'pocket', 'palm', 'windows ce', 'windowsce', 'cellphone', 'opera mobi', 'operamobi', 'ipod', 'small', 'sharp', 'sonyericsson', 'symbian', 'symbos', 'opera mini', 'nokia', 'htc_', 'samsung', 'motorola', 'smartphone', 'blackberry', 'playstation portable', 'tablet browser', 'android');
    $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );

    foreach ($phone_array as $value) {

        if ( strpos($agent, $value) !== false ) return true;

    }

    return false;

}

Защищаемся от xcrf на php #

$secretkey = date("m.d.y");
//убераем авторизированный токен
setcookie ("token", '', time() - 12200);
//ставим токен авторизированный
setcookie ("token", sha1($username.$secretkey), time() + 12200);

if (!isset($_COOKIE['token'])) {
    //нет токена = умри!
    die();
} else {
    if ( sha1($_COOKIE['user'].$secretkey) !== $_COOKIE['token'] ) {
        setcookie ("user", "", time() - 3600);
        setcookie ("token", "", time() - 3600);
        show_login("Please Login");
        die();
    }
}

Блог » PHP / Теги: xcrf, php, token / 14.12.12 / Комментировать [0]

PhpTrends.com - php-тренды на гитхабе #

PhpTrends.com - php-тренды на гитхабе

PhpTrends.com

dhtmlxSpreadsheet виджет таблиц #

dhtmlxSpreadsheet виджет таблиц

dhtmlxSpreadsheet открытый виджет таблиц писаный на javascript, аякс и PHP.
Офф страница

Простейшая из функций защиты от роботов, капча #

Простейшая из функций защиты от роботов, капча

function generate_code () {
  srand (time());
  $num=round(rand(1,4));
  $valid=0;
  echo "$num-й код из чисел: ";
  for ($i=1; $i<5; $i++) {
   $n=round(rand(1000,9999));
   if ($i==$num) $valid=$n;
   echo "$n";
   if ($i<4) echo ", ";
   else echo '
';
  }
  $valid1=md5($valid);
  echo "";
}

//Вызов
echo generate_code();

//Проверка
if ( empty($_POST['code']) or empty($_POST['valid']) or md5($_POST['code'])!=$_POST['valid'] )
    die('Капчу запили блеать!');
+ Не использует сессии