PHP

Пишем первый class на php

Для чего нужны классы в 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', 'Тестовое сообщения', 'Текст письма');

Теги:
class
Добавлено: 09 Мая 2018 15:02:46 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...