win7 安装php插件imagick

 

 

win7 安装php插件imagick

 

安装步骤:

步骤一:先安装好扩展包

之所以先安装扩展是因为扩展的版本要与软件版本对应,而扩展版本出来的速度比软件版本要慢得多,所以总是没法支持最新版本的软件,因此最好是根据自己安装的扩展来选择安装的ImageMagick软件版本。

首先Imagic的php扩展包下载地址:http://pecl.php.net/package/imagick

首先根据你自己的php版本选择,如果不知道自己的版本可以查看phpinfo,下面我截图自己的给个示范:

下面红框标识的地方都是要注意的,最上面是php版本,我的是5.5.30版本的,另外是服务器环境是x86的,也就是32位的,如果这里是64就是64位的,要注意。

再接着就是看php的安全线程情况:disabled是关闭状态,enable是开启状态,我的安全线程是关闭的,这里一定要留意

下面来看上面的下载页面是什么情况:这里有最新的各个版本imagick的php扩展,也写明了要求的版本,这里支持的ImageMagick版本是6.5.3-6.10的,并且php版本要高于5.4。

如果你的php版本低于这个,那么可能你需要找更低的扩展版本了,而且软件的版本也随之更低,这篇博文与你的安装情况应该是有出入的,顶多做个参考,例如低版本的ImageMagick是需要手动进行系统变量path配置的,高版本的都自动安装时勾选了自动配置了。

好了下面进入上面给的扩展下载页面会看到如下图片的显示:

红框里是我选择的版本,基本上这个是最新的且是稳定版本所以还是很好的选择,当然也可以根据自己的情况选择其他的版本,但注意选择stable稳定版本比较好,点击蓝色windows标识的DDL进入windows的版本选项,下面有截图。

根据上面我们看phpinfo得到的各个参数,这里选择php5.5版本的,并且是Non Thread Safe版本,同时32位,因此应该选择红框里的版本下载。

下载完毕后我们来看看里面有些什么东西:

用红框标识的都是在php安装imagick扩展所需要用到的:

1)最下面的php_imagick.dll放入php安装文件夹的ext扩展文件夹内

2)上面的dll文件直接放入php安装文件夹,如果是phpstudy多版本的php话,放入自

ps:这个地方同样dll还要放到apache里的bin目录里面 切记

己使用的版本对应的文件夹,例如php55n就是指php5.5以上但不高于5.6的版本

再来就是改php的配置文件,打开php.ini文件,像下图那样加上extension=php_imagick.dll的扩展配置。

完成这些配置后,重启电脑和服务器再打开phpinfo就可以看到imagick的扩展了,如果phpinfo里没有imagick则标识扩展表示没有安装成功,错误的可能性是服务器参数和php参数与imagick扩展参数不一致导致,因此检查上述的版本是否对应一致。

然后看phpinfo里面的imagick

查看这个Imagick compiled with ImageMagick version这个参数 ImageMagick 6.8.9-1 Q16 x86 2014-05-08 要安装这个 版本一定要对应 装好以后

 

需要 新建一个系统环境变量名为MAGICK_HOME,值为E:\你的imagick路径\modules\coders, 这步主要用来定位imagemagick的module,很重要。( 否则支持的图片格式数量默认为0 ImageMagick number of supported formats:  => 0 )

 

然后重启(必须重启)

然后再看PHPinfo ImageMagick supported formats 就会出现信息了 就是安装完成了 可以用了

如果没有信息 那就没办法了

 

这个是所有imagick历史版本 http://ftp.icm.edu.pl/packages/ImageMagick/binaries/

 

PHP判断是否为手机端的方法

PHP判断是否为手机端的方法

private function ismobile()
{
// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
if (isset($_SERVER[‘HTTP_X_WAP_PROFILE’])) {
return true;
}

//此条摘自TPM智能切换模板引擎,适合TPM开发
if (isset($_SERVER[‘HTTP_CLIENT’]) && ‘PhoneClient’ == $_SERVER[‘HTTP_CLIENT’]) {
return true;
}

//如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
if (isset($_SERVER[‘HTTP_VIA’]))
//找不到为flase,否则为true
{
return stristr($_SERVER[‘HTTP_VIA’], ‘wap’) ? true : false;
}

//判断手机发送的客户端标志,兼容性有待提高
if (isset($_SERVER[‘HTTP_USER_AGENT’])) {
$clientkeywords = array(
‘nokia’, ‘sony’, ‘ericsson’, ‘mot’, ‘samsung’, ‘htc’, ‘sgh’, ‘lg’, ‘sharp’, ‘sie-‘, ‘philips’, ‘panasonic’, ‘alcatel’, ‘lenovo’, ‘iphone’, ‘ipod’, ‘blackberry’, ‘meizu’, ‘android’, ‘netfront’, ‘symbian’, ‘ucweb’, ‘windowsce’, ‘palm’, ‘operamini’, ‘operamobi’, ‘openwave’, ‘nexusone’, ‘cldc’, ‘midp’, ‘wap’, ‘mobile’,
);
//从HTTP_USER_AGENT中查找手机浏览器的关键字
if (preg_match(“/(” . implode(‘|’, $clientkeywords) . “)/i”, strtolower($_SERVER[‘HTTP_USER_AGENT’]))) {
return true;
}
}
//协议法,因为有可能不准确,放到最后判断
if (isset($_SERVER[‘HTTP_ACCEPT’])) {
// 如果只支持wml并且不支持html那一定是移动设备
// 如果支持wml和html但是wml在html之前则是移动设备
if ((strpos($_SERVER[‘HTTP_ACCEPT’], ‘vnd.wap.wml’) !== false) && (strpos($_SERVER[‘HTTP_ACCEPT’], ‘text/html’) === false || (strpos($_SERVER[‘HTTP_ACCEPT’], ‘vnd.wap.wml’) < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) { return true; } } return false; }

php判断是不是https的方法

php判断是不是https的方法

    public function is_https()
    {
        if (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
            return true;
        } elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
            return true;
        } elseif (!empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
            return true;
        }

        return false;
    }

PHP curl下载图片的方法

PHP curl下载图片的方法


<?php


$images = [
  'http://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKPkia3rxjuBoSQ1sUSmqYXDazibuIp8p2CCialBPjeYvcNJgky9P7hmlnDKgzX91utEQPu7VtsDqAIg/0',
];
function download($url, $path = 'dowloadceshi/2015-09-22_00-17-06j.png')
{
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  $file = curl_exec($ch);

  curl_close($ch);
  $filename = pathinfo($url, PATHINFO_BASENAME);

  $resource = fopen($path, 'a');
  fwrite($resource, $file);
  fclose($resource);
}

foreach ( $images as $url ) {
  download($url);
}
?>

ps:如果采用file_get_contents方法发生图片下载过慢