0

如果我尝试从文件加载它会很好,但我正在使用以前存储在 MySQL 表中的 mbox 格式的消息。我已将消息加载到 $variable 中,无论出于何种原因它都不想接受它。有任何想法吗?

示例代码:

<?php
    // Reads a mbox file
    #$mbox = new Mail_Mbox('test.mbox');        // Works
    $mbox = new Mail_Mbox($data);               // Doesn't work (what the heck?!)
    $mbox->open();

    $message = $mbox->get(0);

    $decodedMessage = new Mail_mimeDecode($message, "\r\n");
    $structuredMessage = $decodedMessage->decode(
        array(
            'include_bodies'    =>  true,
            'decode_bodies'     =>  true
        )
    );
?>

一切正常,除了从字符串而不是文件将消息加载到此脚本中。完全迷失了这一点。

供参考: http: //pear.php.net/package/Mail_Mbox

有效的解决方案示例:

<?php
    // Setup a Stream_Var() to let us use a $variable like a file...so that Mail_Mbox() works
    stream_wrapper_register( "var", "Stream_Var" );

    // Reads a mbox file
    $mbox = new Mail_Mbox('var://GLOBALS/this-is-my-variable');   // Leave the $ off
    $mbox->open();

    $message = $mbox->get(0);

    $decodedMessage = new Mail_mimeDecode($message, "\r\n");
    $structuredMessage = $decodedMessage->decode(
        array(
            'include_bodies'    =>  true,
            'decode_bodies'     =>  true
        )
    );
?>
4

1 回答 1

2

文件指出

无效构造函数 Mail_Mbox::Mail_Mbox ( 字符串 $file )

该类不接受字符串,只接受文件。

您可能想尝试使用Stream_Var之类的流包装器来使变量像文件一样可访问。也许它有效。如果没有,请在 PEAR bugtracker 中打开功能请求。

于 2011-06-07T05:54:57.487 回答