Несколько классов и функций упростивших мне жизнь

leftЭгегей)
Всем снова привет.
Нет, я не пропал. Я занят работой над своим новым проектом, раскрывать карты пока не буду)
Так вот, в процесе написания проекта мне понадобились практически все мои наработки за последние несколько лет.
Среди них много различных функций и классов, вот и их я и хочу вам представить)

1. Селект из массива:
Вызов:select_list($mas[,$id]);
$mas — массив вида key=>value
$id — key выбранного пункта

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function select_list($mas,$id=false){
    $list='';
    if(count($mas)!=0){
        foreach($mas as $index => $val){
            if(!$id){
                $list.='<option value="'.$index.'">'.$val.'</option>';
            }else{
                if($index==$id) $list.='<option value="'.$index.'" selected="selected">'.$val.'</option>';
                else $list.='<option value="'.$index.'">'.$val.'</option>';
            }
        }
    }
    return $list;
}

2. Простой персер данных:
Вызов:
$perser = new statics;
$var = $perser->parser($type, $method, $key, $str, $end);
$type — тип переменной (int,strin… и т.д.)
$method — Метод передачи (GET,POST,SESSION и т.д.)
$key — Ключ переменной $_POST[$key]
$str — длина максимального значения переменной
$end — ответ, если переменная не найдена или не определана

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class statics{
    function parser($type, $method, $key, $str, $end) {
        if($method=="POST")
            return isset($_POST[$key]) ? $this->char(substr($_POST[$key],0,$str), $type) : $end;
        else if($method=="GET")
            return isset($_GET[$key]) ? $this->char(substr($_GET[$key],0,$str), $type) : $end;
        else if($method=="SESSION")
            return isset($_SESSION[$key]) ? $this->char(substr($_SESSION[$key],0,$str), $type) : $end;
        else if($method=="COOKIE")
            return isset($_COOKIE[$key]) ? $this->char(substr($_COOKIE[$key],0,$str), $type) : $end;
        else if($method=="GLOBALS")
            return isset($GLOBALS[$key]) ? $this->char(substr($GLOBALS[$key],0,$str), $type) : $end;
       
    }
    function char($val, $type){
        if($type=="charnohtml"){
            $val = htmlspecialchars($val, ENT_QUOTES);
        }else if($type=="charnofiltr"){
        }else if($type=="int"){
            $val = round($val);
        }else{
            $val = stripslashes($val);
        }
        return $val;
    }
}

3. Редирект по заданному урлу:
Вызов:
$url — урл куда вы хотите переслать пользователя

1
2
3
function ref($url){
    return "<SCRIPT LANGUAGE=\"JavaScript\">location.replace(\"$url\");</SCRIPT>";
}

4. Ну и на последок класс для работы со скулом
Вызов:
$connect = new mysql;
$connect -> connect($db_host, $db_user, $db_pass) ;
$db_host — хост
$db_user — пользователь
$db_pass — пароль
$connect -> select_db($db_name);
$db_name — База данных
Использование:
$obj=$connect -> query($query);
$query — sql запрос
$connect -> fetch_object($obj) ;
$obj — объект, полученый query($query), возвращает результат в виде объектов
$connect -> fetch_array($obj);
$obj — то же, что и fetch_object($obj), только результат в виде массива
$connect -> num_rows($obj);
Возвращает количество рядов в результате
$connect -> insert_id();
Возвращает id последнего добавленного элемента
$connect -> query_fetch_object($query)
Принимает скул запрос и возвращет результат аналогичный fetch_object($obj)
$connect -> one_fetch_object($query)
Принимает скул запрос и возвращает первое поле первой записи

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
class mysql {
    var $db_id;
    function connect($db_host, $db_user, $db_pass) {
        if(!$this->db_id = @mysql_connect($db_host, $db_user, $db_pass)) {
            $this->display_error(@mysql_error(), @mysql_errno());
            return false;
        }
        return true;
    }
    function select_db($db_name) {
        if(!@mysql_select_db($db_name)) {
            $this->display_error(@mysql_error(), @mysql_errno());
            return false;
        }
        return true;
    }
    function query($query) {
        if(!$result = @mysql_query($query, $this->db_id)) {
            $this->display_error(@mysql_error(), @mysql_errno(), $query);
            return false;
        }
        return $result;
    }
    function fetch_object($query) {
        return @mysql_fetch_object($query);
    }
    function fetch_array($query) {
        return @mysql_fetch_array($query);
    }
    function num_rows($query) {
        return @mysql_num_rows($query);
    }
    function insert_id() {
        return @mysql_insert_id();
    }
    function query_fetch_object($query){
        if($sql=$this->query($query)) return $this->fetch_object($sql);
        else return false;     
    }
    function one_fetch_object($query){
        if($sql=$this->query($query)){
            $rez = $this->fetch_array($sql);
            if($rez[0])return $rez[0];
            else return false; 
        }else return false;
    }
    function display_error($error, $error_num, $query = '') {
        echo '<div class="MySqlErrsor"><a href="javascript:open_div(\'MySqlError\')">MySQL Fatal Error</a></div>
        <div id="MySqlError" style="display:none;">
            <div style="font-size:24px;color:#FF0000">MySQL Error!</div>
            <div>--------------------------------</div>
            <div>The Error returned was:</div>
            <div>'
.$error.'</div>
            <div>Error Number:</div>
            <div>'
.$error_num.'</div>
            <div><textarea name="message" rows="8" cols="50">'
.$query.'</textarea></div>
        </div>'
;
        exit;
    }
}

На сегодня это все, надеюсь они вам пригодятся)

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru TEXT LINK Mister Wong

Читай с RSS. Не пропусти интересное)

Теги:

Среда, 18 Фев 2009 PHP, Мой скрипт

3 комментария на Несколько классов и функций упростивших мне жизнь

  1. Уже пару лет для обработки запросов к MySQL использую класс Андрея Наумова (http://www.mysql.ru/docs/naumov/), настолько удобная штука, что уже забыл как разбирать результаты ручками. Класс небольшой, синтаксис очень удобный.

  2. kikaha on 22 Мар 2009
  3. kikaha, спасибо за интересную ссылку, надо будет изучить повнимательнее)

  4. DrNemo on 22 Мар 2009
  5. Для доступа к БД удобно пользоваться PHP PDO. Эта объектно-ориентированная обертка поддерживает разные драйвера (MySQL, PgSQL).

  6. Kly on 03 Апр 2009

Ваш отзыв

Читать в Яндекс.Ленте
регистрация доменов
Зарегистрируй себе домен!
.RU - 99 рублей в год
www.
Блогун - реклама в блогах. Хостинг для блогов

Поиск

 

Комментарии