ФорумПрограммированиеPHP для идиотов → Функция

Функция

  • felix90

    Сообщения: 191 Репутация: N Группа: Адекваты

    Spritz 27 декабря 2009 г. 9:02

    Мужики, выручайте! Не могу вспомнить функцию, которая возвращает кодировку передаваемой ей переменной или текста. Подскажите?
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 27 декабря 2009 г. 9:03, спустя 1 минуту 12 секунд

    iconv ?
  • felix90

    Сообщения: 191 Репутация: N Группа: Адекваты

    Spritz 27 декабря 2009 г. 9:04, спустя 1 минуту 12 секунд

    Нет! iconv конвертирует строку из одной кодировки в другую, а мне нужна функция, которая возвращает кодировку входящей в неё строки!
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 27 декабря 2009 г. 9:12, спустя 7 минут 32 секунды


    Нет! iconv конвертирует строку из одной кодировки в другую, а мне нужна функция, которая возвращает кодировку входящей в неё строки!
    Да ты че?! http://ru2.php.net/manual/en/function.iconv-get-encoding.php
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 27 декабря 2009 г. 9:13, спустя 51 секунду

    http://forum.searchengines.ru/showthread.php?t=143010 , это тупо, даже не знаю для чего это надо тебе
  • felix90

    Сообщения: 191 Репутация: N Группа: Адекваты

    Spritz 27 декабря 2009 г. 9:19, спустя 5 минут 57 секунд



    Нет! iconv конвертирует строку из одной кодировки в другую, а мне нужна функция, которая возвращает кодировку входящей в неё строки!
    Да ты че?! http://ru2.php.net/manual/en/function.iconv-get-encoding.php

    type

    The value of the optional type can be:
    all
    input_encoding
    output_encoding
    internal_encoding

    Мне нужно узнать кодировку определённой переменной и эта переменная сидит в модуле для cms, соответственно iconv-get-encoding будет мне выдавать ошибочные данные. Если вообще будет..
  • Ewg777

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 27 декабря 2009 г. 9:26, спустя 7 минут




    Нет! iconv конвертирует строку из одной кодировки в другую, а мне нужна функция, которая возвращает кодировку входящей в неё строки!
    Да ты че?! http://ru2.php.net/manual/en/function.iconv-get-encoding.php

    type

    The value of the optional type can be:
    all
    input_encoding
    output_encoding
    internal_encoding

    Мне нужно узнать кодировку определённой переменной и эта переменная сидит в модуле для cms, соответственно iconv-get-encoding будет мне выдавать ошибочные данные. Если вообще будет..
    Тогда вообще нет смысла.
  • felix90

    Сообщения: 191 Репутация: N Группа: Адекваты

    Spritz 27 декабря 2009 г. 11:28, спустя 2 часа 2 минуты 46 секунд

    Ситуация такова: модуль обратной связи с администратором. Его задача - отправлять e-mail администратору с сайта. Сам сайт в utf-8, скрипт тоже в utf-8, бд с которой работает скрипт: utf8_general_ci. Скрипт берёт из бд шаблон, подставляет необходимые теги данными, которые были заполнены в форме на сайте и отправляет администратору. Проблема в том, что письмо приходит в хз какой кодировке. По крайней мере The Bat её самостоятельно не распознаёт, но если его тыкнуть носом, что это - utf-8, то письмо сразу становится читабельным. С заголовках письма присутствует:
    Content-type: text/plain; charset="UTF-8"
    Как быть в подобной ситуации? :(
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 27 декабря 2009 г. 10:20, спустя 22 часа 51 минуту 55 секунд

    http://ru.php.net/manual/en/function.mb-check-encoding.php
    Спустя 20 сек.
    http://ru.php.net/manual/en/function.mb-detect-encoding.php
    Спустя 13 сек.
    грызы мануал науки сук*!)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 27 декабря 2009 г. 10:43, спустя 23 минуты 6 секунд

    felix90, может зебат ждет "utf8", а не "utf-8"? В других почтовых клиентах как дела?
    И еще, при формировании мыла юзаешь base64?

    $subject = '=?utf-8?B?'.base64_encode($subject).'?=';
    Спустя 76 сек.
    http://ivr.webzone.ru/articles/defcod_2/index.htm
    adw/0
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 27 декабря 2009 г. 13:43, спустя 2 часа 59 минут 23 секунды


    $subject = '=?'.$encoding.'?B?'.base64_encode($subject).'?=';
    $headers = 'From: '.$from."\r\n".'Date: '.date('r')."\r\n".'MIME-Version: 1.0'."\r\n".'Content-transfer-encoding: 8bit'."\r\n".'Content-type: text/plain; charset='.$encoding."\r\n".'X-Mailer: Hujnane Mailer';


    The Bat вроде корректно показывает, когда всё правильно сделано
    ιιlllιlllι унц-унц
  • felix90

    Сообщения: 191 Репутация: N Группа: Адекваты

    Spritz 28 декабря 2009 г. 7:36, спустя 17 часов 53 минуты 40 секунд



    $subject = '=?'.$encoding.'?B?'.base64_encode($subject).'?=';
    $headers = 'From: '.$from."\r\n".'Date: '.date('r')."\r\n".'MIME-Version: 1.0'."\r\n".'Content-transfer-encoding: 8bit'."\r\n".'Content-type: text/plain; charset='.$encoding."\r\n".'X-Mailer: Hujnane Mailer';


    The Bat вроде корректно показывает, когда всё правильно сделано

    Огромное тебе человеческое спасибо! Не знаю почему, но с твоим хеадером всё работает отлично. Может теперь скажите, что в моём хеадере не так было?
    Привожу урезанную версию своего класса:


    class felix_mail {

    public  $site_name    = "Anonim";
    public  $from            = "[email protected]";
    public  $charset        = "UTF-8";
    public  $error            = false;
    private $to;
    private $subject;
    private $message;
    private $headers;
    private $headers;
    private $html_mail    = false;

    private function compile_headers() {

    if ( $this->html_mail ) {
    $this->headers .= "MIME-Version: 1.0\n";
    $this->headers .= "Content-type: text/html; charset=\"".$this->charset."\"\n";
    } else {
    $this->headers .= "MIME-Version: 1.0\n";
    $this->headers .= "Content-type: text/plain; charset=\"".$this->charset."\"\n";
    }

    $this->headers  .= "From: \"".$this->site_name."\" <".$this->from.">\n";

    if ( $this->to ) $this->headers .= "To: ".$this->to."\n";
    $this->headers .= "Subject: ".$this->subject."\n";

    $this->headers .= "Return-Path: ".$this->from."\n";
    $this->headers .= "X-Priority: 3\n";
    $this->headers .= "X-Mailer: FelixCMS with PHP\n";
    $this->headers .= "X-Unique-ID: ".md5(time())."\n";

       }
             private function header_encode($send_charset) {
           
             return '=?' . $this->charset . '?B?' . base64_encode($send_charset) . '?=';
       }

             public function send($to, $subject, $message) {

    $this->to   = preg_replace( "/[ \t]+/" , ""  , $to   );
    $this->from = preg_replace( "/[ \t]+/" , ""  , $this->from );

    $this->to   = preg_replace( "/,,/"     , ","  , $this->to );
    $this->from = preg_replace( "/,,/"     , ","  , $this->from );

    $this->to     = preg_replace( "#\#\[\]'\"\(\):;/\$!Ј%\^&\*\{\}#" , "", $this->to  );
    $this->from   = preg_replace( "#\#\[\]'\"\(\):;/\$!Ј%\^&\*\{\}#" , "", $this->from);

    $this->subject = $this->header_encode($subject);
    $this->message = $message;

    $this->compile_headers();

    if ( !preg_match( "/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/", $this->to ) ) {
    $this->error = true;
    $this->to = false;
    }

    if ( ($this->to) and ($this->from) and ($this->subject) ) {
                                if ([email protected]( $this->to, $this->subject, $this->message, $this->headers )) $this->error = true;
                         }

    $this->headers = "";
           
       }
    }
  • md5

    Сообщения: 11948 Репутация: N Группа: в ухо

    Spritz 28 декабря 2009 г. 7:37, спустя 47 секунд

    возьми готовый PHPMailer и не еби мозг, Феликс Эдмундович )
    все умрут, а я изумруд
  • felix90

    Сообщения: 191 Репутация: N Группа: Адекваты

    Spritz 28 декабря 2009 г. 7:38, спустя 29 секунд


    возьми готовый PHPMailer и не еби мозг, Феликс Эдмундович )

    ))))))))))))))))))))))
  • Trej Gun

    Сообщения: 5299 Репутация: N Группа: в ухо

    Spritz 28 декабря 2009 г. 8:05, спустя 27 минут 22 секунды

    felix90, обрывы строк у тебя кривые

    ЗЫ это предположение

Пожалуйста, авторизуйтесь, чтобы написать комментарий!