background image

    isEraseLink:是否去掉 HTML 代码中的超链接
    返回值为 mht 的文件内容,您可以通过 file_put_content 将它保存成后缀名为 doc 的文件
这个函数的主要功能其实就是分析

HTML 代码中的所有图片地址,并且依次下载下来。获

取到了图片的内容以后,调用

MhtFileMaker 类,将图片添加到 mht 文件中。具体的添加细

节,封装在

MhtFileMaker 类中了。

代码如下

:

/**

 * 根据 HTML 代码获取 word 文档内容
 * 创建一个本质为 mht 的文档,该函数会分析文件内容并从远程下载页面中的图片资源
 * 该函数依赖于类 MhtFileMaker
 * 该函数会分析 img 标签,提取 src 的属性值。但是,src 的属性值必须被引号包围,否则不
能提取

 *
 * @param string $content HTML 内容
 * @param string $absolutePath 网页的绝对路径。如果 HTML 内容里的图片路径为相对路径,
那么就需要填写这个参数,来让该函数自动填补成绝对路径。这个参数最后需要以

/结束

 * @param bool $isEraseLink 是否去掉 HTML 内容中的链接
* by www.jb51.net
 */
function getWordDocument( $content , $absolutePath = "" , $isEraseLink = true )
{
    $mht = new MhtFileMaker();
    if ($isEraseLink)
        $content = preg_replace('/<a\s*.*?\s*>(\s*.*?\s*)<\/a>/i' , '$1' , $content);   //去掉链接 

    $images = array();

    $files = array();
    $matches = array();
    //这个算法要求 src 后的属性值必须使用引号括起来
    if ( preg_match_all('/<img[.\n]*?src\s*?=\s*?[\"\'](.*?)[\"\'](.*?)\/>/i',$content ,$matches ) )
    {
        $arrPath = $matches[1];
        for ( $i=0;$i<count($arrPath);$i++)
        {
            $path = $arrPath[$i];
            $imgPath = trim( $path );
            if ( $imgPath != "" )
            {
                $files[] = $imgPath;
                if( substr($imgPath,0,7) == 'http://')