downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

imap_renamemailbox> <imap_ping
Last updated: Fri, 13 Nov 2009

view this page in

imap_qprint

(PHP 4, PHP 5)

imap_qprintquoted-printable 文字列を 8 ビット文字列に変換する

説明

string imap_qprint ( string $string )

» RFC2045, section 6.7 に基づき)quoted-printable 文字列を 8 ビット文字列に変換します。

パラメータ

string

quoted-printable 文字列。

返り値

8 ビット文字列を返します。

参考

  • imap_8bit() - 8 ビット文字列を quoted-printable 文字列に変換する



imap_renamemailbox> <imap_ping
Last updated: Fri, 13 Nov 2009
 
add a note add a note User Contributed Notes
imap_qprint
wese at gmx dot at
11-Nov-2008 02:52
I just got rid of the loops using a regex.

<?php
function decode_qprint($str) {
   
$str = preg_replace("/\=([A-F][A-F0-9])/","%$1",$str);
   
$str = urldecode($str);
   
$str = utf8_encode($str);
    return
$str;
}
?>

Thanks for sharing!
tonitester at gmx dot net
27-Mar-2007 02:35
If you don't have access to the imap_qprint function and you have to encode URL Decoded and Quoted Printable Strings you receive by Mail try this simple function. But if you don't receive URL Decoded data and the string doesn't contain an = you better use http://www.php.net/manual/en/function.quoted-printable-decode.php

function decode_qprint($str){
$arr= array("A","B","C","D","E","F");
while (list(, $var) = each($arr)) {   
    $i=0;
    while ($i <=9){
        $str=str_replace("=".$var.$i,"%".$var.$i,$str);
        $i++;}
    $arr2 = array("A","B","C","D","E","F");
    while (list(, $val) = each($arr2)) {
        $str=str_replace("=".$var.$val,"%".$var.$val,$str);}}
$str = urldecode($str);
$str = utf8_encode($str);
return $str;}

$s2d='=F6=D6=DF=C4=E4=DC=FC=A9=AE';
$2s2d='%F6';

$output = decode_qprint($s2d);
$output2 = decode_qprint($2s2d);

echo $output;
echo $output2;
bletous at yahoo dot fr
28-Aug-2005 12:55
Some mails are encoded in bad quoted printable format:
I use this function to decode the qprint:

for($i=0;$i<256;$i++)
    {
    $c1=dechex($i);
    if(strlen($c1)==1){$c1="0".$c1;}
    $c1="=".$c1;
    $myqprinta[]=$c1;
    $myqprintb[]=chr($i);
    }

function decode($data,$code)

if(!$code){return imap_utf7_decode($data);}
if($code==0){return imap_utf7_decode($data);}
if($code==1){return imap_utf8($data);}
if($code==2){return ($data);}
if($code==3){return imap_base64($data);}
if($code==4){return imap_qprint(str_replace($myqprinta,$myqprintb,($data)));}
if($code==5){return ($data);}

}
jdr
16-Jul-2003 04:28
$subject=utf8_decode(imap_utf8($subject));

works instead of imap_qprint on php 4.2.0 (win32)
bernard at bmpsystems dot com
26-Feb-2000 08:35
This function seems to have a bug, when the quoted-printable string contains a "=" without the HEX code of a Character.
I use the regular quoted_printable_decode instead.

imap_renamemailbox> <imap_ping
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites