当前位置:  编程技术>php
本页文章导读:
    ▪php图像处理函数大全(缩放、剪裁、缩放、翻转、旋转、透明、锐化的实例总结) - 漫步在互联网      php图片处理代码分享,包括缩放、剪裁、缩放、翻转、旋转、透明、锐化等。一、创建图片资源imagecreatetruecolor(width,height);imagecreatefromgif(图片名称);imagecreatefrompng(图片名称);imagecreatefromjpeg(图.........
    ▪Php output buffering缓存及程序缓存 - H&K         在php中有时为了控制程序的输出显示顺序,提供了output buffering缓存(php自身缓存机制)。若Ob缓存开启,需要输出的就先存在ob缓存里,再到程序缓存里。若没有开启,则直接进入.........
    ▪PHP 转义详解 - Rayol      php中数据的魔法引用函数 magic_quotes_gpc  或 magic_quotes_runtime     设置为on时,为我们引用的数据碰到 单引号' 和 双引号" 以及 反斜线\ 时自动加上反斜线,帮我们自动转译符号,.........

[1]php图像处理函数大全(缩放、剪裁、缩放、翻转、旋转、透明、锐化的实例总结) - 漫步在互联网
    来源:    发布时间: 2013-11-07

php图片处理代码分享,包括缩放、剪裁、缩放、翻转、旋转、透明、锐化等。

一、创建图片资源
imagecreatetruecolor(width,height);
imagecreatefromgif(图片名称);
imagecreatefrompng(图片名称);
imagecreatefromjpeg(图片名称);画出各种图像 imagegif(图片资源,保存路径);
imagepng()
imagejpeg();

二、获取图片属性
imagesx(res//宽度
imagesy(res//高度
getimagesize(文件路径)
返回一个具有四个单元的数组。索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG 标记。
销毁图像资源
imagedestroy(图片资源);

三、透明处理
PNG、jpeg透明色都正常,只有gif不正常
imagecolortransparent(resource image [,int color])//将某个颜色设置成透明色
imagecolorstotal()
imagecolorforindex();

四、图片的裁剪
imagecopyresized()
imagecopyresampled();

五、加水印(文字、图片)
字符串编码转换string iconv ( string $in_charset , string $out_charset , string $str )

六、图片旋转
imagerotate();//制定角度的图片翻转

七、图片的翻转
沿X轴 沿Y轴翻转

八、锐化
imagecolorsforindex()
imagecolorat()
在图片上画图形 $img=imagecreatefromgif("./images/map.gif");

1 <?PHP
2 /**
3 * 图片锐化处理
4 * edit by www.
5 */
6 $red= imagecolorallocate($img, 255, 0, 0);
7
8 imageline($img, 0, 0, 100, 100, $red);
9 imageellipse($img, 200, 100, 100, 100, $red);
10 imagegif($img, "./images/map2.gif");
11 imagedestroy($img);
12 图片普通缩放
13 复制代码 代码如下:
14
15 $filename="./images/hee.jpg";
16 $per=0.3;
17 list($width, $height)=getimagesize($filename);
18 $n_w=$width*$per;
19 $n_h=$width*$per;
20 $new=imagecreatetruecolor($n_w, $n_h);
21 $img=imagecreatefromjpeg($filename);
22 //拷贝部分图像并调整
23 imagecopyresized($new, $img,0, 0,0, 0,$n_w, $n_h, $width, $height);
24 //图像输出新图片、另存为
25 imagejpeg($new, "./images/hee2.jpg");
26 imagedestroy($new);
27 imagedestroy($img);
28
29 图片等比例缩放、没处理透明色
30 复制代码 代码如下:
31
32 function thumn($background, $width, $height, $newfile) {
33 list($s_w, $s_h)=getimagesize($background);//获取原图片高度、宽度
34 if ($width && ($s_w < $s_h)) {
35 $width = ($height / $s_h) * $s_w;
36 } else {
37 $height = ($width / $s_w) * $s_h;
38 }
39 $new=imagecreatetruecolor($width, $height);
40 $img=imagecreatefromjpeg($background);
41 imagecopyresampled($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);
42 imagejpeg($new, $newfile);
43 imagedestroy($new);
44 imagedestroy($img);
45 }
46 thumn("images/hee.jpg", 200, 200, "./images/hee3.jpg");
47
48 gif透明色处理
49 复制代码 代码如下:
50
51 function thumn(
    
[2]Php output buffering缓存及程序缓存 - H&K
    来源:    发布时间: 2013-11-07

   在php中有时为了控制程序的输出显示顺序,提供了output buffering缓存(php自身缓存机制)。

若Ob缓存开启,需要输出的就先存在ob缓存里,再到程序缓存里。若没有开启,则直接进入程序缓存,程序执行完毕,按照顺序从程序缓存里输出。

 

下面测试ob缓存和程序缓存:

在测试前为了测试效果更明显,我们在php.ini里先关闭ob缓存并设置明显的错误级别。

 

Output_buffering=off

 

Display_errors=on

代码1:

 

1 echo "php";
2 header("content-type:text/html;charset='utf-8'");
3 echo 'ok';

 

则会出现

php
Warning: Cannot modify header information - headers already sent by (output started at D:\www\apache\htdocs\test\t2.php:2) in D:\www\apache\htdocs\test\t2.php on line 3
ok

代码2:

1 ob_start();
2 echo "php";
3 header("content-type:text/html;charset='utf-8'");
4 echo 'ok';

结果就完全正确了

 

 

原因分析:

代码1:Php在echo ‘php’时已经向浏览器发送一个头信息,

当再出现

header("content-type:text/html;charset='utf-8'");

又看到一个头信息,这时已经打回了上面的头信息,无法更该便出错了。

代码2:开启了ob缓存,echo ‘php’时把要打给浏览器的数据先放到ob缓存里,之后又遇到一个头信息,也放入Ob缓存,页面结束时再按http协议到程序缓存后返回给浏览器。

为加深理解再看以下代码

代码3:

 

ob_start();
echo "php";
header("content-type:text/html;charset='utf-8'");
echo 'ok';
echo '<hr/>';
$ob=ob_get_contents();
echo $ob;

 

会输出

Ob_get_contents()只是取得ob缓存里的内容而不清楚它们

Ob_get_contents()必须在ob缓存没有清除前使用

代码4:

1 ob_start();
2 echo "php";
3 ob_clean();//清除缓存内容但不关闭缓存区,还能用(往里添加东西)
4 header("content-type:text/html;charset='utf-8'");
5 echo 'ok';
6 echo '<hr/>';
7 $ob=ob_get_contents();
8 echo $ob;

结果:

代码5:

ob_start();
echo "php";
ob_end_clean();//清空缓存内容并关闭缓存区,ob_get_contents取不到内容
header("content-type:text/html;charset='utf-8'");
echo 'ok';
echo '<hr/>';
$ob=ob_get_contents();
echo $ob;

结果:

代码6:

 

ob_start();
echo "php
    
[3]PHP 转义详解 - Rayol
    来源:    发布时间: 2013-11-07

php中数据的魔法引用函数 magic_quotes_gpc  或 magic_quotes_runtime     

设置为on时,为我们引用的数据碰到 单引号' 和 双引号" 以及 反斜线\ 时自动加上反斜线,帮我们自动转译符号,确保数据操作的正确运行
两者的区别:

magic_quotes_gpc
作用范围是:WEB客户服务端;
作用时间:请求开始是,例如当脚本运行时。

magic_quotes_runtime
作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;
作用时间:每次当脚本访问运行状态中产生的数据。

可以看出
magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据
magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据

几个想关联的函数:

set_magic_quotes_runtime():
设置magic_quotes_runtime值. 0=关闭.1=打开.默认状态是关闭的.可以通过 echo phpinfo(); 查看magic_quotes_runtime
get_magic_quotes_gpc():
查看magic_quotes_gpc值.0=关闭.1=打开
get_magic_quotes_runtime():
查看magic_quotes_runtime值。0=关闭.1=打开.
注意的是没有 set_magic_quotes_gpc()这个函数,就是不能在程序里面设置magic_quotes_gpc的值。

由于两个值的设置问题,会给编程时造成部分混淆或者会多加一次转义,针对这种情况,需要在程序开始的时候进行设置和判断,或者默认配置
这两个值都关闭。转义部分通过程序来执行。

保证数据插入数据时正常 通常会使用 addslashes 这个来处理, 数据读出时多用 stripslashes 来去掉加的反斜杠

 

php中类似的字符转换的函数
addslashes                         指定的预定义字符前添加反斜杠
stripslashes                        删除由 addslashes() 函数添加的反斜杠
htmlspecialchars                把一些预定义的字符转换为 HTML 实体
htmlspecialchars_decode  把一些预定义的 HTML 实体转换为字符
html_entity_decode()        把 HTML 实体转换为字符
htmlentities()                     把字符转换为 HTML 实体


本文链接:http://www.cnblogs.com/liangle/p/3186420.html,转载请注明。


    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3