本文目錄一覽:
- 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()
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/312620.html