Для чего нужны классы в php спросите вы?
Ну во первых для работы это очень удобно, во вторых читабельность кода становится гораздо лучше, а в третьих вы всегда сможете поправить одну функцию и тем самым исправить исправить результат этой функция.
Приступ, мы напишем функций System, она отвечает за стандартные функция сайта.
Создадим файл System.php и напишем в нём следующее.
<php
Class System{
public function safesql( $so ){
return str_replace("'", "'", $so);
}
public function ip(){
$ip=getenv("HTTP_X_FORWARDED_FOR");if (empty($ip) || $ip=='unknown') { $ip=getenv("REMOTE_ADDR"); }
return $this->safesql(htmlspecialchars($ip));
}
public function date_($time = ''){
return date('d.m.Y, H:i', $time);
}
public function mail($Email, $Title, $Message){
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=utf-8";
$headers[] = "From: System robot <support@site.ru>";
$headers[] = "Subject: $Title";
$headers[] = "X-Mailer: PHP/".phpversion();
return mail($Email, $Title, $Message, implode("\r\n", $headers));
}
public function totranslit($var, $lower = true, $punkt = true) {
$langtranslit = array(
'а' => 'a', 'б' => 'b', 'в' => 'v',
'г' => 'g', 'д' => 'd', 'е' => 'e',
'ё' => 'e', 'ж' => 'zh', 'з' => 'z',
'и' => 'i', 'й' => 'y', 'к' => 'k',
'л' => 'l', 'м' => 'm', 'н' => 'n',
'о' => 'o', 'п' => 'p', 'р' => 'r',
'с' => 's', 'т' => 't', 'у' => 'u',
'ф' => 'f', 'х' => 'h', 'ц' => 'c',
'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch',
'ь' => '', 'ы' => 'y', 'ъ' => '',
'э' => 'e', 'ю' => 'yu', 'я' => 'ya',
"ї" => "yi", "є" => "ye",
'А' => 'A', 'Б' => 'B', 'В' => 'V',
'Г' => 'G', 'Д' => 'D', 'Е' => 'E',
'Ё' => 'E', 'Ж' => 'Zh', 'З' => 'Z',
'И' => 'I', 'Й' => 'Y', 'К' => 'K',
'Л' => 'L', 'М' => 'M', 'Н' => 'N',
'О' => 'O', 'П' => 'P', 'Р' => 'R',
'С' => 'S', 'Т' => 'T', 'У' => 'U',
'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',
'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sch',
'Ь' => '', 'Ы' => 'Y', 'Ъ' => '',
'Э' => 'E', 'Ю' => 'Yu', 'Я' => 'Ya',
"Ї" => "yi", "Є" => "ye",
);
if ( is_array($var) ) return "";
if (!is_array ( $langtranslit ) OR !count( $langtranslit ) ) {
$var = trim( strip_tags( $var ) );
if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );
$var = preg_replace( '#[.]+#i', '.', $var );
$var = str_ireplace( ".php", ".ppp", $var );
if ( $lower ) $var = strtolower( $var );
return $var;
}
$var = trim( strip_tags( $var ) );
$var = preg_replace( "/\s+/ms", "-", $var );
$var = str_replace( "/", "-", $var );
$var = strtr($var, $langtranslit);
if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );
$var = preg_replace( '#[\-]+#i', '-', $var );
$var = preg_replace( '#[.]+#i', '.', $var );
if ( $lower ) $var = strtolower( $var );
$var = str_ireplace( ".php", "", $var );
$var = str_ireplace( ".php", ".ppp", $var );
return $var;
}
}
Описания функций
safesql() - Защита от sql инъекций.
ip() - Ip адрес пользователя, как в ip можно написать что хочет, то его нужно прогнать через функцию safesql, и функцию htmlspecialchars, защита от sql и xss.
date_() - Конвертируем time() в нужную нам дату
mail() - Отправка сообщений
totranslit() - Перевод текста, пример: привет, переведёт на privet.
Пример работы с классом, для этого нам нужно создать любой другой файл и подключить наш class.
<php
include('./System.php');
$sys = new System;
echo $sys->safesql("?id='");
echo '<br/>';
echo $sys->ip();
echo '<br/>';
echo $sys->date_(time());
echo '<br/>';
echo $sys->totranslit('Привет мир', true, false);
$sys->mail('test@testmail.ru', 'Тестовое сообщения', 'Текст письма');