首页 > 编程技术 > php

php使用ZipArchive提示Fatal error: Class ZipArchive not found in

发布时间:2016-11-25 15:39

ZipArchive是php自带的一个压缩与解压缩函数了,今天理所当然的情况中使用new ZipArchive来创建zip文件时碰到提示Fatal error: Class ZipArchive not found in错误,下面一聚教程小伙伴就此问题来看看排除办法。

测试代码如下

 代码如下 复制代码

//PHP解压缩文件(zip)
function unzip_file($file, $destination){
$zip = new ZipArchive() ;
//打开压缩文件
if ($zip->open($file) !== TRUE) {
die ('Could not open archive');
}
//创建文件
$zip->extractTo($destination);
$zip->close();
echo '成功';
}
unzip_file("htdocs.zip","wenjianming");

执行时发现

Fatal error: Class 'ZipArchive' not found in E:wwwqqdown.php on line 63

看这个不是未定义了,所以小编百度搜索一下,如下如下解说

在Windows下的解决办法是:

1、在php.ini文件中,将extension=php_zip.dll前面的分号“;”去除;

重启Apache服务器,我们再试发现可以了

补充如果是linux系统参考下面方法

在Linux下没有php_zip.dll这个文件

需要重新编译一下php的zip模块。具体安装方法如下:

 代码如下 复制代码

cd /usr/src
wget http://pecl.php.net/get/zip
tar -zxvf zip
cd zip-1.x.x
phpize
./configure
make
sudo make instal

其中, 在最后使用make install命令的时候,可能需要用到root的权限,所以建议使用sudo来运行。安装完之后,屏幕上会提示zip.so的位置。然后将其记录下来,如:/usr/local/lib/php/extensions/zip.so。

2、使用root权限修改php.ini(通常可能会在/usr/local/lib/文件夹下,不过视当初安装php而定,可以通过phpinfo()来查看):

增加extension = /usr/local/lib/php/extensions/zip.so,然后同样在php.ini文件中,将 zlib.output_compression = Off 改为 zlib.output_compression = On ;

3、最后别忘了重启一下Apache:apachectl restart;

注意:关于网站有一些朋友说zlib.output_compression = Off 改为 zlib.output_compression = On ; 我在windows下没有操作在php.ini文件中也没有看到但这样确实是可以生成或解压文件哦。

php 获取文章内容的第一张图片方法非常的简单,我们最常用的是使用了正则了,下面与一聚教程小伙伴一起来看看吧。

以下是关于选取文章中第一张图片的代码:

 代码如下 复制代码

$obj=M("News");
$info=$obj->where('id=1')->find();
//方法1*********

$soContent = $info['content'];
$soImages = '~<img [^>]* />~';
preg_match_all( $soImages, $soContent, $thePics );
$allPics = count($thePics[0]);
preg_match('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$thePics[0][0],$match);
dump($thePics);
if( $allPics> 0 ){
    echo "<img" width=100% src='".$match[1]."' title='".$match[1]."'>";//获取的图片名称
}
else {
    echo "没有图片";
}
//**************

$soContent = $info['content'];
$soImages = '~<img [^>]* />~';
preg_match_all( $soImages, $soContent, $thePics );
$allPics = count($thePics[0]);
dump($thePics);
if( $allPics> 0 ){
    echo $thePics[0][0]; //获取的整个Img属性
} else {
    echo "没有图片";
}
//**************

$soImages = '~<img [^>]* />~';
$str=$info['content'];
preg_match_all($soImages,$str,$ereg);//正则表达式把图片的整个都获取出来了
$img=$ereg[0][0];//图片
$p="#src=('|\")(.*)('|\")#isU";//正则表达式
preg_match_all ($p, $img, $img1);
   $img_path =$img1[2][0];//获取第一张图片路径
if(!$img_path){
    $img_path="images/nopic.jpg";
} //如果新闻中不存在图片,用默认的nopic.jpg替换 */
echo $img_path;
//*************88

$str=$info['content'];
preg_match_all("/<img.*\>/isU",$str,$ereg);//正则表达式把图片的整个都获取出来了
$img=$ereg[0][0];//图片
$p="#src=('|\")(.*)('|\")#isU";//正则表达式
preg_match_all ($p, $img, $img1);
   $img_path =$img1[2][0];//获取第一张图片路径
if(!$img_path){
    $img_path="images/nopic.jpg";
} //如果新闻中不存在图片,用默认的nopic.jpg替换 */
echo $img_path;

我们在使用phpmyadmin时碰到提示 phpMyAdmin错误-无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装的处理方法 问题,下面来看看解决办法。


当登录 phpMyAdmin 出现错误提示“无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。”。原因是退出phpMyAdmin的时候,没有点“退出”而退出,而是直接叉掉浏览器窗口,当再次登录phpMyAdmin的时候就会出现这个错误。

如果服务器是用的wdcp管理软件的话,直接SSH登录服务器,进入:

/www/wdlinux/tmp

把里面的sess开头的文件全部删除。

如果是其他系统就进入

PHP安装目录/tmp

删除sess开头的文件。

大转盘是最近很多线上网动中一个比较有意思的东西了,下面我们来看看这个大转盘中奖概率算法与例子,希望对各位有帮助。

近日工作中有一项目,APP客户端有大转盘抽奖,具体如何抽奖当然在我们服务端实现洛。下面和大家简单分享一下实现代码:

 代码如下 复制代码

header("Content-type: text/html; charset=utf-8");
$prize_arr = array(
'0' => array('id'=>1,'prize'=>'平板电脑','v'=>1),
'1' => array('id'=>2,'prize'=>'数码相机','v'=>5),
'2' => array('id'=>3,'prize'=>'音箱设备','v'=>10),
'3' => array('id'=>4,'prize'=>'4G优盘','v'=>12),
'4' => array('id'=>5,'prize'=>'10Q币','v'=>22),
'5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50),
);
 
$actor = 100;
 
foreach ($prize_arr as $v) {
$arr[$v['id']] = $v['v'];
}
foreach ($arr as &$v) {
$v = $v*$actor;
}
asort($arr);
$sum = array_sum($arr);   //总概率
 
$rand = mt_rand(1,$sum);
 
$result = '';    //中奖产品id
 
foreach ($arr as $k => $x)
{
if($rand <= $x)
{
$result = $k;
break;
}
else
{
$rand -= $x;
}
}
$res['yes'] = $prize_arr[$result-1]['prize']; //中奖项
print_r($res);

file_get_contents代替使用curl其实不多见了,但有时你碰到服务器不支持curl时我们可以使用file_get_contents代替使用curl了,下面看个例子。

当用尽一切办法发现 服务器真的无法使用curl时。或者curl不支持https时。curl https 出现502时。你又不想重装网站环境。

那你就改用file_get_contents 代替吧。

curl 经常使用的 curl get curl post

curl get 替代 直接用file_get_contents($url) 就可以了

curl post 替代:

 代码如下 复制代码

function Post($url, $post = null) {      
        $content = http_build_query($post);
        $content_length = strlen($content);
        $options = array(
            'http' => array(
                'method' => 'POST',
                'header' =>"Content-type: application/x-www-form-urlencoded",
                'content' => $post
            )
        );
        return file_get_contents($url, false, stream_context_create($options));
}

标签:[!--infotagslink--]

您可能感兴趣的文章: