Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с сылками в письмах, после равно пропадают символы 
V
    Опции темы
Feldmarschall
Дата 17.3.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



flashaa, у него же класс. черный ящик. который наверняка что-то там у себя внутри кодирует. криво, судя по всему.
PM   Вверх
Vigoroso
Дата 17.3.2008, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



Код

Function QuotedPrintableEncode($text,$header_charset='',$break_lines=1)
    {
        $ln=strlen($text);
        $h=(strlen($header_charset)>0);
        if($h)
        {
            $s=array(
                '='=>1,
                '?'=>1,
                '_'=>1,
                '('=>1,
                ')'=>1,
                '<'=>1,
                '>'=>1,
                '@'=>1,
                ','=>1,
                ';'=>1,
                '"'=>1,
                '\\'=>1,
/*
                '/'=>1,
                '['=>1,
                ']'=>1,
                ':'=>1,
                '.'=>1,
*/
            );
            $space=$break_lines=0;
            for($i=0;$i<$ln;$i++)
            {
                if(IsSet($s[$text[$i]]))
                    break;
                if(strcmp($text[$i]," "))
                {
                    $o=Ord($text[$i]);
                    if($o<32
                    || $o>127)
                            break;
                }
                else
                    $space=$i+1;
            }
            if($i==$ln)
                return($text);
            if($space>0)
                return(substr($text,0,$space).($space<$ln ? $this->QuotedPrintableEncode(substr($text,$space),$header_charset,0) : ""));
        }
        for($w=$e='',$l=0,$i=0;$i<$ln;$i++)
        {
            $c=$text[$i];
            $o=Ord($c);
            $en=0;
            switch($o)
            {
                case 9:
                case 32:
                    if(!$h)
                    {
                        $w=$c;
                        $c='';
                    }
                    else
                    {
                        if($o==32)
                            $c='_';
                        else
                            $en=1;
                    }
                    break;
                case 10:
                case 13:
                    if(strlen($w))
                    {
                        if($break_lines
                        && $l+3>75)
                        {
                            $e.='='.$this->line_break;
                            $l=0;
                        }
                        $e.=sprintf('=%02X',Ord($w));
                        $l+=3;
                        $w='';
                    }
                    $e.=$c;
                    $l=0;
                    continue 2;
                default:
                    if($o>127
                    || $o<32
                    || !strcmp($c,'='))
                        $en=1;
                    elseif($h
                    && IsSet($s[$c]))
                        $en=1;
                    break;
            }
            if(strlen($w))
            {
                if($break_lines
                && $l+1>75)
                {
                    $e.='='.$this->line_break;
                    $l=0;
                }
                $e.=$w;
                $l++;
                $w='';
            }
            if(strlen($c))
            {
                if($en)
                {
                    $c=sprintf('=%02X',$o);
                    $el=3;
                }
                else
                    $el=1;
                if($break_lines
                && $l+$el>75)
                {
                    $e.='='.$this->line_break;
                    $l=0;
                }
                $e.=$c;
                $l+=$el;
            }
        }
        if(strlen($w))
        {
            if($break_lines
            && $l+3>75)
                $e.='='.$this->line_break;
            $e.=sprintf('=%02X',Ord($w));
        }
        if($h
        && strcmp($text,$e))
            return('=?'.$header_charset.'?q?'.$e.'?=');
        else
            return($e);
    }

вырезанно из класса email_message_class()

Добавлено @ 15:42
Цитата(Feldmarschall @ 17.3.2008,  12:41)
flashaa, у него же класс. черный ящик. который наверняка что-то там у себя внутри кодирует. криво, судя по всему.

вот именно, черный ящик, кто же знал что надо предварительно вызывать кодирование...
(если тип сообщения уже установлен)

Это сообщение отредактировал(а) Vigoroso - 17.3.2008, 15:43
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0657 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.