php $xgcs_result = $this->get_xgcs_result($key); if (! pic_height); $dest_image = @imagecreatetruecolor($pic_width, $pic_height) or die('Cannot Initialize new GD $file_name; return $pic_url; } else { return FALSE; } } 以上代码是在做一次活动海报生成时使用的。
-image 2、php-gd里面已经包含了gd和gd2,前提是你安装的php-gd是新版本的,你应该是已经安装的了,或者查看以下你的GD库版本 <? php var_dump(gd_info()); ?> 我显示的版本是2.1.0,包括了GD2在内了 ? ---------------------- 扩展一:什么事GD库? GD库是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。 在php中使用gd库来对图像进行操作,GD为是一个动态的开放的创建图像的源代码公开的函数库。 除了安装GD库之外,在PHP中还可能需要其他的库,这可以根据需要支持哪些图像格式而定。
Vite学习指南,基于腾讯云Webify部署项目。
一、GD库是什么? GD库是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片,也可以给图片加水印。 在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。 在PHP处理图像,可使用GD库,而GD库开始时是支持GIF的,但由于GIF使用了有版权争议的LZW算法,会引起法律问题,于是从 GD 库 1.6 版起所有的 GIF 支持都移除了,但是又在 GD 库 2.0.28 如果使用二者之间版本的 GD 库时 GIF 相关函数不可用。 本文介绍下,在windows下开启php GD库的方法,GD库在php中默认是没有开启的,如果想让它支持图片处理功能,必须手动开启。 在windows服务器开启php的gd库时,使用cgi之后phpinfo()得到的结果中 Configure Command 中并没有出现gd.
yum install php-gd 以上命令就搞定php-gd的支持,快快看看phpinfo是否支持了? 可是,如果需要采用不同版本的php时,那就是相当的麻烦,经过摸索,笔者找到了一个较为简单的方式。 由于需要与系统原生版本共存多个php版本,那么你要求的版本必须采用源码编译。 (通过查看自己编译的动态库文件的依赖关系ldd libgd.so.2) 注意:如果通过自己编译源码的方式,你成功的在源码版本的php中看到了gd支持png,那么恭喜你,你太幸运了。 下面来说说我的方法: 尽可能的使用系统的库,或者yum源可以安装的库,比如gd, libpng, libjpeg, libfreetype…一切,centos的源都已经准备好,我们只是希望一个不同版本的 应为centos安装的gd库已经把jpeg, png等库都已经连接好了。
今天需要用到GD库,才发现没GD库环境,所以需要安装这个扩展。对付单个扩展,单独编译动态加载是比较方便快捷的。安装过程也比较繁杂,这个记录一下,方便后来者。 首先说明,我的PHP是源码编译安装的,可以参看 以源码编译的方式安装PHP与php-fpm。 先安装 gd 前置库 : freetype ,jpegsrc,libpng。 代码如下: cd php-5.3.6 cd ext cd gd 复制代码 然后再这个目录执行命令 /usr/local/php/bin/phpize。什么时候需要用到 phpize 呢? 当我们需要再加些模块,又不想重新编译php,这些我们就可以用phpize了。我的PHP安装在 /usr/local/php/ 这个目录里,可以根据个人情况修改。 /local/php/bin/php -m [PHP Modules] Core ctype date dom ereg fileinfo filter gd …… 复制代码 看到gd了,说明gd库安装成功
下载GD库所依赖的软件包 下载libpng。 /configure --prefix=/app/freetype # make -j4 # make install 编译安装GD库扩展 安装GD库扩展 [root@guanwang freetype -2.9]# cd /usr/src/php-7.2.5/ext/gd/ [root@guanwang gd]# /app/php/bin/phpize Configuring for: PHP Api -20170718/gd.so [root@guanwang gd]# ll /app/php/lib/php/extensions/no-debug-non-zts-20170718/ ? gd]# php -m | grep gd ?
一.php中单双引号的区别 "" 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。 '' 单引号里面的不进行解释,直接输出。 从字面意思上就可以看出,单引号比双引号要快了。 PDO PDO(PHP DataObjects)扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据 GD库 百科上的解释:GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。在PHP处理图像,可使用GD库,如何检测Lamp是否已经有了GD库呢。将下面的代码 <? GD库使用的例子可以参见官方一个例子,在指定的图片上添加文字。
php function createImage($data, $twidth, $tspace, $height) { $dataName = array(); $dataValue
做php开发经常需要用到gd库,但是也遇到几次部署环境默认没有安装gd的情况,遂在此做下总结,以备不时之需. 通过yum,apt-get等包式管理安装方式安装的php直接运行对应命令即可,故不在此赘述。本文主要记录在linux环境下编译gd扩展及其所需依赖。 gd扩展主要依赖zlib,freetype,libpng,libjpeg这4个库,所以我们先编译这四个库。 libpng和gd(因为我编译png时提示找不到zlib.h,所以加上了这个) export LDFLAGS="-L/user/local/zlib/lib" export CPPFLAGS="-I/user 如果一切顺利的话,我们就可以开始安装gd扩展了,php-gd的源码貌似在pecl上找不到,所以我直接在php的源码包里面找了一份,拷贝到临时目录,使用phpize生成configure文件 然后进行配置和编译
Intervention Image是一个开源的PHP图像处理和操作库,可不依赖于框架单独使用,也提供了对Laravel的友好支持。 它提供了一种创建,编辑和合成图像且富有表现力的简便方法,并支持当前两个最常见的图像处理库:GD Library和Imagick。 编写该类是为了使PHP图像操作更容易和更具表现力。 环境 php >= 5.4 Fileinfo Extension 及以下库二选一 GD Library (>=2.0) Imagick PHP extension (>=6.5.7) 安装 $ composer 库来进行图片处理,但由于 GD 库对图像的处理效率要稍逊色于 ImageMagick 库,因此推荐替换为 ImageMagick 库来进行图像处理。 (如果遇到不稳定、超时、未响应等问题,建议替换为 imagemagick 库) $ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent
首先了解一个方法: 使用docker exec进入Docker容器 docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些,下面我们来看一下该命令的使用: 注意: docker的容器启动顺序问题会导致容器的IP地址不一致,如果在连接数据库和fastcgi处有用到容器的IP,要注意容器的启动顺序。 把缓存文件全部删除,再给Runtime777权限就行了 sudo chmod 777 Runtime 或者直接对代码库最外层设置777权限 3. thinkphp验证码图片显示不出来 ? 注意如果phpinfo的gd库中没有freetype的支持,验证码依然显示不出来, 会报错: Call to undefined function Think\imagettftext() 如果gd库中没有 gd库中有了freetype,则验证码显示正常了: ?
一起学习PHP中GD库的使用(一) 又到了一个大家非常熟悉的库了,对于图像图形的处理来说,GD 库是 PHPer 们绕不过去的一道坎。 从很早很早的 CMS 或者 Discuz 时代,各类开源软件在安装的时候就会明确地指出 GD 库是它们必备的一个扩展。当然,在现在的 PHP 版本中,相信大家也不会在编译的时候忽略掉这个库。 不管你是为图片加水印、生成缩略图还是制作验证码图片,都离不开 GD 库的身影。 当然,我们还是由浅入深地学习一些 GD 库中的常用或好玩的函数。 当前环境中的 GD 库信息 首先,我们可以查看下当前 PHP 环境中的 GD 库版本及支持的图片格式信息。 测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202012/source/1.一起学习PHP中GD库的使用(一).php
我使用了一个特殊的图片上传技巧,绕过PHP GD库对图片的转换处理,最终成功实现了远程代码执行。 事情是这样的。 在上传到服务器后,EXIF里的代码都被删除了,应用通过imagecreatefromjpeg()函数调用了PHP GD库(GD库,是php处理图形的扩展库),对图片进行了转换。 我又测试了一些其他jpg文件,结果发现修改任何一个图片字符都会引起php-gd库的错误判断,进而造成上传失败。 我对图片的处理和php GD库的运行知之甚少,可是这不影响我使用一些传统渗透测试方法。 我想到一个方法:对比两张经过php-gd库转换过的gif图片,如果其中存在相同之处,这就证明这部分图片数据不会经过转换。然后我可以注入代码到这部分图片文件中,最终实现远程代码执行。
mysql并加入到mysql组,不允许mysql用户直接登录系统 mkdir -p /data/mysql #创建MySQL数据库存放目录 chown -R mysql:mysql /data/mysql #保存退出 source /etc/profile #使配置立刻生效 下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。 后记: CentOS 7.x +php 7.0/7.1组合建议使用系统自带的GD库进行编译,php默认去掉了mysql驱动,只有mysqli和mysqlnd驱动。 GD库进行编译,php驱动包括mysql,mysqli(需要加载),mysqlnd CentOS 7.x +php 5.3组合建议使用gd-2.0.35进行编译,php驱动包括mysql,mysqli( 需要加载),mysqlnd CentOS 7.x +php 5.2组合建议使用gd-2.0.35进行编译,php驱动包括mysql,mysqli(需要加载) 推荐:CentOS 7.x使用php 5.5
使用phpize为PHP动态添加扩展时,报Cannot find autoconf错误 解决方案 $ /app/php/bin/phpize Configuring for: PHP with cURL support #环境检查程序检测到需要cURL版本7.10.5或更高版本才能使用cURL支持编译php,意即当前PHP源码包中的cURL版本较旧,不支持'--with-curl' 扩展是否添加成功 curl PHP连接远程DB服务器 以MySQL为例 $ yum -y install php-mysql 为PHP添加GD库扩展 gd库的安装依赖于freetype, jpegsrc及libpng,有关GD库安装详情请参见PHP开启GD库支持 【附注】 如果没有将phpize添加到全局$PATH中,将报command not found的错误,此时需要手动指定phpize 该文件中记录了PHP的安装信息和相关变量,因此由于不同组织或个人编译PHP时的需求不尽相同,不能从其他地方直接拷贝phpize文件使用,而应在编译好PHP后对该文件做好备份或找到自己对应PHP版本的phpize
--enable-exif 以上参数是指定PHP相关的一些模块(通用)。 解决办法: 查找相关的库安装包: [root@adailinux php-5.6.30]# yum list |grep libxml2 安装库文件: [root@adailinux php-5.6.30 说明:缺少png库。 Apache的一个模块被调用的,所以不用执行名启动该PHP。 php7_module (shared) 此时Apache默认加载两个PHP模块,那么为了正常使用需要通过编辑Apache的配置文件来指定其工作时默认调用哪个PHP模块(注释掉其中一个调用参数即可):
PHP 源码 为了保证 Docker 镜像尽量小,PHP 的源文件是以压缩包的形式存在镜像中,官方提供了 docker-php-source 快捷脚本,用于对源文件压缩包的解压(extract)及解压后的文件进行删除 和 docker-php-ext-install 已经包含了 docker-php-source 的操作,所有不需要再手动去执行。 PECL 扩展 因为一些扩展并不包含在 PHP 源码文件中,所有需要使用 PECL(PHP 的扩展库仓库,通过 PEAR 打包)。 用 pecl install 安装扩展,然后再用官方提供的 docker-php-ext-enable 快捷脚本来启用扩展,如下示例 FROM php:7.1-fpm RUN apt-get update 其它扩展 一些既不在 PHP 源码包,也不再 PECL 扩展仓库中的扩展,可以通过下载扩展程序源码,编译安装的方式安装,如下示例: FROM php:5.6-apache RUN curl -fsSL
云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。
扫码关注云+社区
领取腾讯云代金券