本文目录一览:
- 1、什么是PHP
- 2、PHP 图片处理
- 3、用PHP面向对象写出如下图片的功能
- 4、php有哪些优势和特点
- 5、PHP图像处理函数有哪些
什么是PHP
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,PHP2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mSQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Suraski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,PHP4.0又问世了,其中增加了许多新的特性。2004年7月,PHP5正式版本的发布,标志着一个全新的PHP时代的到来。它的核心是第二代Zend引擎,并引入了对全新的PECL模块的支持。PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性。程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类的保护。另外,在对象的集成等方面也不再存在问题。使用PHP5引进了类型提示和异常处理机制,能更有效的处理和避免错误的发生。
在不断更新的同时,PHP5依然保留对旧有的PHP4程序可以运行于PHP5的平台上而不会出现较大问题。随着MySQL数据库的发展,PHP5还绑定了新的MySQLi扩展模块,它提供了一些更加有效的方法和实用工具用于处理数据库操作。这些方法大都以面向对象的方式实现,同时也极大地提高了基于数据库的Web项目的执行速度。
另外,PHP5中还改进了创建动态图片的功能,目前能够支持多种图片格式(如PNG、GIF、TTIF、JPGE等)。PHP5以及内置了对GD2库的支持,因此安装GD2库(主要指UNIX系统中)也不再是件难事,这使得处理图像十分简单和高效。
大多数Web程序开发者依然将XML作为一个彻底的简单数据库使用。PHP5中也采用了一系列简单易用、功能强大的方法处理XML文档。
今天,已经有包括Yahoo.com和Amazon.com,,百度等在内的数百万网站,以及众多的开发人员和编程爱好者正在使用PHP。
PHP 图片处理
图片路径一定要基于当前php运行所在的路径去写,./图片 是当前目录,../图片 是上级目录,注意规范
用PHP面向对象写出如下图片的功能
index.php页面:
html
head
title图形计算器(面向对象)/title
meta http-equiv="Content-Type" content="text/html;charset=utf-8"
/head
body
center
h1图形(面积 周长)计算器)h1
a href="index.php?action=rect"矩形/a|| //action 是动作提交
a href="index.php?action=triangle"三角形/a||
a href="index.php?action=circle"圆形/a
hr
/center
?php
error_reporting(E_ALL ~E_NOTICE);
function __autoload($className)
{
include strtolower($className).".class.php";
}
echo new Form();
if(isset($_POST["sub"])){
echo new Result();
}
?
/body
/html
form.class.php页面: //文件名习惯全小写
?php
class Form{
private $action;
private $shape;
function __construct($action="index.php"){
$this-action = $action;
$this-shape = isset($_REQUEST["action"]) ? $_REQUEST["action"]:"rect";
}
function __toString(){
$form='form action="'.$this-action.'" method="post"';
switch($this-shape){
case"rect":
$form.=$this-getRect();
break;
case"triangle":
$form.=$this-getTriangle();
break;
case"circle":
$form.=$this-getcircle();
break;
default:
$form.='请选择一个形状';
}
$form.='input type="submit" name="sub" value="计算"';
$form.='/form';
return $form;
}
private function getRect(){
$input='b请输入|矩形|的长和宽:/bp';
$input.='宽度:input type="text" name="width" value="'.$_POST['width'].'"br';
$input.='高度:input type="test" name="height" value="'.$_POST['height'].'"br';
$input.='input type="hidden" name="action" value="rect"';
return $input;
}
private function getTriangle(){
$input='b请输入|三角形|的三边:/bp';
$input='b请输入|三角形|的三边:/bp';
$input.='第一边:input type="text" name="side1" value="'.$_POST['side1'].'"br';
$input.='第二边:input type="test" name="side2" value="'.$_POST['side2'].'"br';
$input.='第三边:input type="test" name="side3" value="'.$_POST['side3'].'"br';
$input.='input type="hidden" name="action" value="triangle"';
return $input;
}
private function getCircle(){
$input='b请输入|圆形|的半径:/bp';
$input.='半径:input type="text" name="radius" value="'.$_POST['radius'].'"br';
$input.='input type="hidden" name="action" value="circle"';
return $input;
}
}
?
shape.class.php页面:
?php
abstract class shape{
public $shapeName;
abstract function area();
abstract function perimeter();
protected function validate($value,$message="形状"){
if($value == "" ||!is_numeric($value)||$value 0){
echo 'font color="red"'.$message.'必须为非负值的数字,并且不能为空/fontbr';
return false;
} else{
return true;
}
}
}
?
rect.class.php页面
?php
class Rect extends Shape{
private $width=0;
private $height=0;
function __construct(){
$this-shapeName="矩形";
if($this-validate($_POST["width"],'矩形的宽度') $this-validate($_POST["height"],'矩形的高度'))
{
$this-width=$_POST["width"];
$this-height=$_POST["height"];
}else{exit;}
$this-width=$_POST["width"];
$this-height=$_POST["height"];
}
function area(){
return $this-width*$this-height;
}
function perimeter(){
return 2*($this-width+$this-height);
}
}
?
triangle.class.php页面:
?php
class Triangle extends Shape{
private $side1=0;
private $side2=0;
private $side3=0;
function __construct(){
$this-shapeName="三角形";
if($this-validate($_POST['side1'],'三角形的第一边')){
$this-side1=$_POST["side1"];
if($this-validate($_POST['side2'],'三角形的第一
边')){
$this-side2=$_POST["side2"];
if($this-validate($_POST['side3'],'三角形的第一
边')){
$this-side3=$_POST["side3"];
}
$this-side1=$_POST["side1"];
$this-side2=$_POST["side2"];
$this-side3=$_POST["side3"];
}
if(!$this-validateSum()){
echo 'font color="red"三角形的两边之和必须大于第三边
/font';
exit;
}
//海伦公式
function area(){
$s=($this-side1+$this-side2+$this-side3)/2;
return sqrt( $s*($s-$this-side1)*($s-$this-side2)*($s-$this-side3));
}
function perimeter(){
return $this-side1+$this-side2+$this-side3;
}
private function validateSum(){
$condition1=($this-side1+$this-side2) $this-side3;
$condition2=($this-side1+$this-side3) $this-side2;
$condition3=($this-side2+$this-side3) $this-side1;
if($condition1 $$ $condition2 $$ $condition3){
return true;
} else{return false;}
}
}
?
circle.class.php界面:
?php
class Circle extends Shape{
private $radius=0;
function __construct(){
$this-shapeName="圆形";
if($this-validate($_POST['radius'],'圆的半径')){
$this-radius.$_POST["radius"];
}else{exit;}
$this-radius=$_POST["radius"];
}
function area(){
return pi()*$this-radius*$this-radius;
}
function perimeter(){
return 2*pi()*$this-radius;
}
}
?
result.class.php界面:
?php
class Result{
private $shape;
function __construct(){
switch($_POST['action']){
case 'rect':
$this-shape=new Rect();
break;
case 'triangle':
$this-shape=new Triangle();
break;
case 'circle':
$this-shape=new Circle();
break;//没有break会导致default的执行
default:
$this-shape=false;
}
}
function __toString(){
if($this-shape){
$result=$this-shape-shapeName.'的周长'.$this-shape-perimeter().'br';
$result.=$this-shape-shapeName.'的面积'.$this-shape-area().'br';
return $result; }
else{
return'没有这个形状';
}
}
}
?
php有哪些优势和特点
PHP的优势包括:
PHP开放的源代码
所有的PHP源代码事实上都可以得到。
PHP是免费的
和其它技术相比,PHP本身免费且是开源代码。
快捷性
程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。
跨平台性强
由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS下。
效率高
PHP消耗相当少的系统资源。
图像处理
用PHP动态创建图像,PHP图像处理默认使用GD2。且也可以配置为使用image magick进行图像处理。
面向对象
在php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。
专业专注
PHP支持脚本语言为主,同为类C语言,容易入门。
PHP图像处理函数有哪些
php图像处理函数大全
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()