$email_message = chunk_split(base64_encode(str_replace("\r\n.", " \r\n..", str_replace("\n", "\r\n", str_replace("\r", "\n", str_replace("\r\n", "\n", str_replace("\n\r", "\r", $email_message)))))));这段是discuz发邮件时用的!
不明白这样有什么好处

解决方案 »

  1.   


    string chunk_split ( string body [, int chunklen [, string end]] )
    使用此函数将字符串分割成小块非常有用。例如将 base64_encode() 的输出转换成符合 RFC 2045 语义的字符串。它会在每 chunklen(默认为 76)个字符后边插入 end(默认为“\r\n”)。此函数会返回新的字符串,而不会修改原有字符串。 
    $email_message = chunk_split(base64_encode(str_replace("\r\n.", " \r\n..", str_replace("\n", "\r\n", str_replace("\r", "\n", str_replace("\r\n", "\n", str_replace("\n\r", "\r", $email_message)))))));
    这段代码先把所有的“\n\r”替换成“\r”, 
    再把所有的"\r\n"替换成"\n", 
    再把所有的"\r"替换成"\n", 
    再把所有的“\n” 换成"\r\n",
    再把所有的"\r\n."替换成"\r\n..",
    这样在把$email_message用RFC2045格式化的时候不会对原来的\n,\r产生影响。