Войти Регистрация

PHP сниппеты | 10 полезных php сниппетов


Что такое PHP сниппеты?

PHP сниппеты – это полезные строки PHP кода, которые можно применить при разработке веб приложения.

Очень часто необходимо реализовать какую-то функцию с минимальным использованием строк php кода, в этом нам помогут PHP сниппеты, которые написаны коротко и направлены на решение конкретной проблемы.

10 полезных PHPсниппетов

Ниже предоставлена подборка из десяти полезных php сниппетов.

Получение анимированной GIF картинки из видео

На сервере должна быть установлена библиотека ffmpeg

$file = "file.avi";   

$movie = new ffmpeg_movie($file);   

$gif=new ffmpeg_animated_gif("image.gif",100 ,100 ,24);   

for ($frame = 150; $frame <= 200; $frame++) {  

$image = $movie->getFrame($frame);  

$gif->addFrame($image);}

Функция определения количества запросов к БД

Полезна при оптимизации вашего PHP приложения

function query($query)   

{ global $cquery;   

$cquery++;   

return mysql_query($query);   

}

Время генерации страницы

Необходима для отслеживания скорости работы вашего приложения

$time1 = microtime(); //стоит в начале скрипта   

//--------------------   

// здесь идет php код вашего скрипта   

//--------------------   

$time2 = microtime(); //стоит в конце скрипта   

// выводим в браузер $mtime - время генерации страницы.   

$mtime = $time2 - $time1;   

echo round($mtime,5).' Sek.';

Фильтр нежелаемых GET и POST запросов

Данный PHP сниппет должен быть подключен ко всем файлам. При желании можно доработать.

foreach ($_GET as $getstr) { 

if (eregi('\'|<|>|char|union|select|bench|,|`',$getstr)) { 

header("Location: not_query.php");  

exit; 

}}

foreach ($_POST as $poststr) { 

if (eregi('\'|char|union|select|bench|alert|`',$poststr)) { 

header("Location: not_query.php");  

exit;  

}}

Отправка письма на e-mail

/// кому 

$to      = 'nobody@example.com'; 

//// тема 

$subject = 'the subject';  

//// сообщение 

$message = 'hello'; 

//// заголовки 

$headers = 'From: webmaster@example.com' . "\r\n" . 

    'Reply-To: webmaster@example.com' . "\r\n" . 

    'X-Mailer: PHP/' . phpversion(); 

//// отправка сообщения 

mail($to, $subject, $message, $headers);

Функция определения реального IP

function real_ip() 

{ 

   if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' ) 

   { 

      $client_ip = 

         ( !empty($_SERVER['REMOTE_ADDR']) ) ? 

            $_SERVER['REMOTE_ADDR'] 

            : 

            ( ( !empty($_ENV['REMOTE_ADDR']) ) ? 

               $_ENV['REMOTE_ADDR'] 

               : 

               "unknown" ); 

      $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']); 

 

      reset($entries); 

      while (list(, $entry) = each($entries)) 

      { 

         $entry = trim($entry); 

         if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) ) 

         { 

 

            $private_ip = array( 

                  '/^0\./', 

                  '/^127\.0\.0\.1/', 

                  '/^192\.168\..*/', 

                  '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/', 

                  '/^10\..*/'); 

 

            $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]); 

 

            if ($client_ip != $found_ip) 

            { 

               $client_ip = $found_ip; 

               break; 

            } 

         } 

      } 

   } 

   else 

   { 

      $client_ip = 

         ( !empty($_SERVER['REMOTE_ADDR']) ) ? 

            $_SERVER['REMOTE_ADDR'] 

            : 

            ( ( !empty($_ENV['REMOTE_ADDR']) ) ? 

               $_ENV['REMOTE_ADDR'] 

               : 

               "unknown" ); 

   } 

   return $client_ip; 

}

Создание скриншота сайта

<?php

function screen($url, $razr, $razm, $form)

{

$toapi="http://mini.s-shot.ru/".$razr."/".$razm."/".$form."/?".$url;

$scim=file_get_contents($toapi);

file_put_contents("screen.".$form, $scim);

}

screen("http://sitear.ru", "1024x768", "600", "jpeg");

?>

Функция создаст файл screen.jpg с указанными параметрами.

Параметры функции:

screen(адрес, разрешение, размер, формат);

адрес – начиная с http:// адрес сайта, с которого будет снят скриншот

разрешение - указывается в пикселях, например (1024x768)

размер - ограничивается максимальное значение высоты и ширины, масштабированной картинки

формат - может принимать два значения (JPEG|PNG), по умолчанию "JPEG".

Функция защиты от XSS

function antihack(&$var){  

if(is_array($var)) array_walk($var, 'antihack');  

else $var = htmlspecialchars(stripslashes(mysql_real_escape_string($var)), ENT_QUOTES, 'UTF-8');  

}  

foreach(array('_SERVER', '_GET', '_POST', '_COOKIE', '_REQUEST') as $v){  

if(!empty(${$v})) array_walk(${$v}, 'antihack');  

}

Копирайт на картинку

<?php  

$img = $_GET['img']; /// путь к картинке которую копирайтим  

$im = imagecreatefromjpeg($img);   

$lg = imagecreatefrompng('copyrite.png'); /// наша картинка копирайта  

$img_x = imagesx($im);  

$img_y = imagesy($im);  

$img_x_copy = imagesx($lg);  

$img_y_copy = imagesy($lg);  

imagecopy($im, $lg, $img_x-$img_x_copy, $img_y-$img_y_copy, 0, 0, $img_x_copy, $img_y_copy);   

header('Content-Type: image/jpeg');    

imagejpeg($im);    

imagedestroy($im); /// чистиммусор  

imagedestroy($lg); /// чистим мусор  

?>

Данный код сохраняем в файле: image.php

Обращение к скрипту:  <img src="image.php?img=адрес/картинки">

И главное не забудьте создать логотип сайта: copyrite.png

Редирект с задержкой

<?php

header('Refresh: 3; URL=http://sitear.ru');

echo 'Через 3 сек. вы будете перенаправлены на новую страницу.';

exit;

?>

ВАЖНО!!! Заголовки функцией header нужно отправлять до любого вывода текста в браузер! Даже перед <?php не должно быть пробелов!

В заключение подборки php сниппетов

Это только некоторые примеры сниппетов. Есть вопросы или замечания, не молчим, пишем комментарии…



Дальше: PHP работа с FTP: создание FTP класса


Дискуссия по теме     2 Комментария 
Добавить комментарий
Pisatel 30.05.2014 в 07:49
eregi() до безобразия устарела, preg_match с i рулит
Viktor 20.03.2014 в 14:29
Спасибо полезные сниппеты
Просмотров: 5315