- → Программирование
- → PHP
- → Статьи
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 класса


Development — Taras Moroz