centos7安装ZipArchive

  1. 编译php的zip模块

    mkdir /zip-php
    cd /zip-php
    yum -y install gcc autoconf
    wget http://pecl.php.net/get/zip
    tar -xvzf zip
    cd zip-1.15.4
    /opt/lampp/bin/phpize php的安装路径
    ./configure --with-php-config=/opt/lampp/bin/php-config
    报错 checking for libzip… not found

  2. 安装libzip

    cd /zip-php
    wget https://nih.at/libzip/libzip-1.2.0.tar.gz
    tar -zxvf libzip-1.2.0.tar.gz
    cd libzip-1.2.0
    ./configure
    报错 error: ZLIB version too old, please install at least v1.1.2

  3. 安装zlib-devel

    yum install -y zlib-deve
    make ;make install
    报错 /usr/local/include/zip.h:59:21: 致命错误:zipconf.h:没有那个文件或目录
    #include <zipconf.h>

    执行以下命令查找,一般情况都是有的 find /usr/local -iname ‘zipconf.h’
    找到后执行做个软链接
    ln -s /usr/local/lib/libzip/include/zipconf.h /usr/local/include/
    然后再执行
    make ;make install

  4. 修改php.ini

    打开php.ini文件,去掉extension="zip.so"前面的分号
    修改extension_dir = “./” 为 zip.so 所在的路径,重启apache ,httpd

附上一个php的测试脚本

function remove_directory($dir) {
    $files = array_diff(scandir($dir), array('.','..'));

    foreach ($files as $file) {
        if (is_dir("$dir/$file")) {
            remove_directory("$dir/$file");
        } else {
            unlink("$dir/$file");
        }
    }
    return rmdir($dir);

}

function parseWord($file) {
            $content = '';
            $zip = new ZipArchive();
            if ($zip->open($file) === true) {
                for ($i=0; $i < $zip->numFiles; $i++){
                    $entry = $zip->getNameIndex($i);
                    if (pathinfo($entry, PATHINFO_BASENAME) == "document.xml") {
                        $zip->extractTo(pathinfo($file, PATHINFO_DIRNAME)."/".pathinfo($file, PATHINFO_FILENAME).array($entry));
                        $filepath = pathinfo($file, PATHINFO_DIRNAME)."/".pathinfo($file, PATHINFO_FILENAME)."Array"."/".$entry;
                        $content = strip_tags(file_get_contents($filepath));
                        break;
                    }
                }
                $zip->close();
                remove_directory(pathinfo($file, PATHINFO_DIRNAME)."/".pathinfo($file, PATHINFO_FILENAME)."Array");
                return $content;
            } else {
                return '';
            }
        }

echo parseWord('/opt/test.docx');
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值