PHP中函数gzuncompress无法使用的解决方法,php在线
分类:美高梅游戏官网网站

解决过程

gzuncompress函数不是php自带的系统函数而是一个插件函数了所以要使用 gzuncompress函数我们必须安装一个插件,下面来看看PHP函数gzuncompress无法使用的问题解决办法吧。

linux需开启zlib。下面是具体的开启方法

我的PHPMailer发送邮件代码

1.gzuncompress函数需要zlib支持才可以正常使用
2.可以使用探针检查当前php版本中是否已经开启了该函数
3.解决方式,额外编译php,安装zlib组件

一、解决过程

 1. 下载安装zlib

 代码如下

解决步骤

1.gzuncompress函数需要zlib支持才可以正常使用

header("Content-type:text/html;charset=utf-8");
include('phpmailer/class.phpmailer.php');
include('phpmailer/class.smtp.php');

1.开发环境为centos6.5 bit php5.3
2.参考代码(不可以直接拿去用,请思考下在执行以下代码)

2.可以使用探针检查当前php版本中是否已经开启了该函数

解压tar包,进入目录执行命令:

$mail = new PHPMailer();  
 
$mail->IsSMTP();                                      // set mailer to use SMTP  
$mail->Host = "smtp.sohu.com";  // SMTP服务器  
$mail->Port = 25;
$mail->SMTPAuth = true;     // SMTP认证?  
$mail->Username = "yourmail@sohu.com";  // 用户名  
$mail->Password = "yourmail168"; // 密码  
$mail->From = "spr_zsql@163.com"; //发件人地址  
$mail->FromName = "test"; //发件人  
$mail->AddAddress("yourmail@qq.com", "test"); //收件人地址,收件人名称  
 
 
 
$mail->WordWrap = 50;                                 //   
//$mail->AddAttachment("/var/tmp/file.tar.gz");         // 附件  
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");    // 附件,新文件名  
$mail->IsHTML(true);                                  // HTML格式  
 
$mail->Subject    = "测试";
$mail->Body       = "测试";
              
if(!$mail->Send())
{
 echo "Mailer Error: " . $mail->ErrorInfo;
 echo "发送邮件错误!";
}else{
 echo "邮件发送成功!";
}

[root@leafrainy zlib]# pwd
/root/dl/php/ext/zlib
[root@leafrainy zlib]#mv config0.m4 config.m4
[root@leafrainy zlib]#/usr/local/php/bin/phpize
[root@leafrainy zlib]#./configure --with-php-config=/usr/local/php/bin/php-config
[root@leafrainy zlib]#make
[root@leafrainy zlib]# cp modules/zlib.so /usr/local/php/lib/php/extension/
[root@leafrainy zlib]#vi /usr/local/php/lib/php.ini
添加extension=zlib.so

3.解决方式,额外编译php,安装zlib组件

./configure && make && make install  

在使用PHPMailer发送邮件报错Msg:stream_socket_enable_crypto(): this stream does not support SSL/crypto,

重启apache

二、解决步骤

  1. 添加php扩展,命令如下:

出现这种情况请输出phpinfo()看下openssl这个扩展没有安装。

1.开发环境为centos6.5 bit php5.3

[root@Ansen zlib]# pwd
/root/lnmp/php-5.3.0/ext/zlib #php源码包目录
[root@Ansen zlib]#mv config0.m4 config.m4
[root@Ansen zlib]#/usr/local/php5/bin/phpize
[root@Ansen zlib]#./configure --with-php-config=/usr/local/php/bin/php-config
[root@Ansen zlib]#make
[root@Ansen zlib]# cp modules/zlib.so /usr/local/php/lib/php/extension/   #php扩展目录
[root@Ansen zlib]#vi /usr/local/php5/lib/php.ini
添加extension=zlib.so

查找php安装时源码包的位置以/usr/local/src/php/php-5.3为例子

2.参考代码(不可以直接拿去用,请思考下在执行以下代码)

3.重启apache

 代码如下

 

php 在线压缩打包rar代码

cd  /usr/local/src/php/php-5.3/ext/openssl

 代码如下

<?php
$filename = "./zip/" . date ( 'YmdH' ) . ".zip"; // 生成的压缩包名称(含路径)
// 生成文件
$zip = new ZipArchive (); // linux需开启zlib,
if ($zip->open ( $filename, ZIPARCHIVE::CREATE ) !== TRUE) {
    exit ( '无法打开文件,或者文件创建失败' );
}
$fileNameArr = array('/upload/20140606/20140606011813-0.jpg','/upload/20140606/20140606013717-0.jpg');
foreach ( $fileNameArr as $val ) {
    $zip->addFile ( $val, basename ( $val ) ); // 第二个参数是放在压缩包中的文件名称,要检查一下文件是否已经有了
}
$zip->close (); // 关闭
 
//发送到浏览器提示下载;
header ( "Cache-Control: max-age=0" );
header ( "Content-Description: File Transfer" );
header ( 'Content-disposition: attachment; filename=' . basename ( $filename ) ); // 文件名
header ( "Content-Type: application/zip" ); // zip格式的
header ( "Content-Transfer-Encoding: binary" ); // 告诉浏览器,二进制文件
header ( 'Content-Length: ' . filesize ( $filename ) ); // 告诉浏览器,文件大小
readfile ( $filename );//输出文件;
?>

/usr/local/php/bin/phpize

[root@leafrainy zlib]# pwd

可能会出现下面的错误

/root/dl/php/ext/zlib

 代码如下

[root@leafrainy zlib]#mv config0.m4 config.m4

Cannot find config.m4.
Make sure that you run ‘/usr/local/php/bin/phpize’ in the top level source directory of the module

[root@leafrainy zlib]#/usr/local/php/bin/phpize

解决办法:

[root@leafrainy zlib]#./configure --with-php-config=/usr/local/php/bin/php-config

 代码如下

[root@leafrainy zlib]#make

mv config0.m4 config.m4
/usr/local/php/bin/phpize
./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
make && make install安装成功后会有以下提示
Build complete.
Don’t forget to run ‘make test’.

[root@leafrainy zlib]# cp modules/zlib.so /usr/local/php/lib/php/extension/

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

[root@leafrainy zlib]#vi /usr/local/php/lib/php.ini

/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/ 改目录下回生成一个openssl.so文件,找到php的配
置文件,在扩展区域添加

 

 代码如下

添加extension=zlib.so

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/openssl.so
ps -ef | grep php-fpm  | grep -v grep | awk '{print $2}'|xargs kill -9
/usr/local/php/sbin/php-fpm

重启apache

如果你配置了还不能发送邮箱我们可以尝试在linux中直接使用mail函数直接发送邮件哦。

本文由美高梅网址发布于美高梅游戏官网网站,转载请注明出处:PHP中函数gzuncompress无法使用的解决方法,php在线

上一篇:类和对象应用例题 下一篇:使用PHP的curl连接微信的服务器,微信菜单
猜你喜欢
热门排行
精彩图文