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      = '[email protected]'; 

//// тема 

$subject = 'the subject';  

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

$message = 'hello'; 

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

$headers = 'From: [email protected]' . "\r\n" . 

    'Reply-To: [email protected]' . "\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
Спасибо полезные сниппеты
Просмотров: 7081
Страхование КАСКО
карта банка
ндфл
усн
Оформление доверенности
страхование ипотеки
esim
осаго
ВЗР страхование
кредитная карта
Cialis barato Viagra Contrareembolso Cialis 5 mg precio mejores farmacias para comprar Viagra reacciones adversas de Cialis Reduslim cómo tomar soluciones para la impotencia Sildenafil Comprare Cialis 5 mg Giornaliero online in Italia Effetti indesiderati del Cialis 5 mg Acquista Cialis 20mg Cialis originale in vendita In Svizzera si compra il Viagra senza ricetta Cialis 10mg online Acquista Viagra in farmacia Offerta Cialis 5mg Spedra Avanafil in vendita online Acquista Viagra in Svizzera senza prescrizione авиатор спрайб Consegna a domicilio di Cialis 5 mg Effetti collaterali di Cialis 5 mg Consegna a domicilio di Cialis 20mg Acquista Cialis originale generico in Svizzera Consegna a domicilio di Viagra senza ricetta in Svizzera Compra Cialis 10mg Consegna a domicilio di Viagra in farmacia online Sconto Cialis 5mg Comprar Reduslim por internet Comprare Spedra Avanafil senza ricetta online Dove comprare il Viagra in Svizzera Compra Cialis Comprar online Viagra Contrareembolso Dónde encontrar Cialis 5 mg al mejor precio Viagra sin receta Cialis 5 mg efectos secundarios graves Reduslim comprar en línea Disfuncion Erectil tadalafilo avanafil prezzo cialis 20 mg prezzo cialis effetti benefici cialis 10 mg Reduslim Kaufen pulse x coin price