文章目录
服务器操作系统是Linux,centos
首先安装pandoc
            
            
              shell
              
              
            
          
          yum install -y pandoc
        安装完成后输入如下代码,检查安装是否成功
            
            
              shell
              
              
            
          
          pandoc --version
        
PHP处理
我把markdown内容存到了数据库里,所以要从数据库读取内容。对内容需要做一些处理。
- 图片的路径要转为绝对路径,不然pandoc导出的word没有图片。
 - 把处理后的内容生成md文件
 - 调用pandoc把md文件转为word
 
            
            
              php
              
              
            
          
          public function download(){
        $id=input('id/d',0);
        $info=Db::name('article')->find($id);
          //测试使用pandoc转word
        // 使用正则替换:捕获完整路径,将图片路径改为绝对路径
        $newContent = preg_replace_callback(
            '/\((\/uploads\/\d{8}\/([a-zA-Z0-9_\-]+(?:\.[a-zA-Z0-9]+)?(?:\?.*)?))\)/',
            function ($matches) {
                // $matches[2] 是文件名(不含路径)
				//ROOT_PATH是根目录路径常量
                return '(' . ROOT_PATH.$matches[1] . ')';
            },
            $info['content']
        );
        $f='/ziptemp/'.$info['title'].'.md';
        $mdFile=ROOT_PATH.$f;
        //生成md文件
        file_put_contents($mdFile,$newContent);
        $wf='/ziptemp/'.$info['title'].'.docx';
        $outputFile=ROOT_PATH.$wf;
        //转成的word路径
        exec("pandoc {$mdFile} -o {$outputFile}");
    }
    ```