php5.5手冊,php51

本文目錄一覽:

PHP是什麼?

PHP(中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。

PHP獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多。

PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

PHP在資料庫方面的豐富支持,也是它迅速走紅的原因之一,它支持下列的資料庫或是數據文件:

Adabas 、D、 DBA、dBase 、dbm 、filePro 、Informix 、InterBase、mSQL 、Microsoft SQL Server、·MySQL、Solid、Sybase、 Oracle 、PostgreSQL

而在Internet上它也支持了相當多的通訊協議 (protocol),包括了與電子郵件相關的 IMAP,POP3;網管系統 SNMP;網路新聞NNTP;帳號共用 NIS;全球信息網HTTP及Apache伺服器;目錄協議LDAP以及其它網路的相關函數。

擴展資料:

PHP的特性包括:

1、PHP獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。

2、PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。

3、PHP支持幾乎所有流行的資料庫以及操作系統。

4、PHP可以用C、C++進行程序的擴展。

參考資料:

百度百科–PHP

php為什麼棄用了mysql

PHP提供了三種不同的api連接到MySQL,這三種api是:mysql, mysqli以及PDO擴展。MySql函數是非常受歡迎的,但是官方團隊並不鼓勵再使用它們。在php手冊裡邊,當你看到關於Mysql的函數,會發現都標有紅色的標誌,那意味著它們已經被棄用了。棄用ext/mysql函數不僅安全,而且使用其他資料庫查詢方法可以同樣具有MySQL函數的所有功能。更好的方法是使用PDO代替ext/mysql函數。

以下是PHP里不應該再使用mysql函數的3大原因:

1、mysql函數已在PHP5.5中正式棄用,並將在PHP7中被刪除。

2、mysql函數缺少面向對象的介面。

3、mysql函數不支持以下特性:

不支持非阻塞連續獲取

不支持非同步查詢

不支持參數化查詢

不支持存儲過程

不支持多個語句

不支持在MySQL 5.1的中所有功能

不支持加密(SSL)

不支持壓縮

不支持完整的字符集

如何把php5.3版本升級到php5.4或者php5.5

查看官方手冊php5.3到5.4的升級注意事項,更改代碼,上線測試。

php環境搭建問題!

哥,這裡不給放鏈接的。。。。

win7 64bit

一、相關準備:

Apache軟體:httpd-2.4.10-win64-VC11.zip

PHP軟體:php-5.5.17-Win32-VC11-x64.zip

MySQL軟體:mysql-5.6.21-winx64.zip

編譯支持環境: vcredist_x64.exe(VC11)(先安裝)

運行環境目錄:

C:\myenv\apache (Apache)

C:\myenv\php (PHP)

C:\myenv\mysql (MySQL)

C:\myenv\sessiontmp (運行期間session存放目錄,可讀寫)

C:\myenv\ fileuploadtmp (運行期間PHP文件上傳存放目錄,可讀寫)

二、安裝Apache服務

1、解壓httpd-2.4.10-win64-VC11.zip變重命名文件夾為apache,將其複製到C:\myenv\目錄下。

2、編輯C:\myenv\apache\conf\httpd.conf配置文件,主要配置事項如下,紅色字體代表新增:

ServerRoot “c:/myenv/apache”

Listen 80

#載入PHP模塊

LoadModule php5_module C:/myenv/php/php5apache2_4.dll

PHPIniDir “C:/myenv/php」 (注意留一個空格)

ServerAdmin 469085313@qq.com

ServerName 127.0.0.1:80

DocumentRoot “c:/myenv/apache/htdocs”

DirectoryIndex index.php index.html

ScriptAlias /cgi-bin/ “c:/myenv/apache/cgi-bin/”

AddType application/x-httpd-php .php

AddType application/x-httpd-php .html

AddType application/x-httpd-php .htm

3、啟動Apache服務

管理員身份啟動cmd.exe程序

Start apache in a DOS commdline:

httpd.exe

Install as a service:

httpd.exe -k install

Run ApacheMonitor:

Double click ApacheMonitor.exe

4、測試Apache是否正常服務:

三、安裝PHP服務插件

1、解壓php-5.5.17-Win32-VC11-x64.zip變重命名文件夾為php,將其複製到C:\myenv\目錄下。

2、將C:\myenv\php\php.ini-development配置文件重命名為php.ini配置文件,打開php.ini文件,做如下的配置操作:

;On windows下面的;extension_dir = “ext”

修改為如下:

extension_dir = “C:/myenv/php/ext” 前面的分號;去掉。

開啟相應的擴展庫功能,比如php_mysql.dll等,即將

extension=php_bz2.dll

extension=php_curl.dll

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

extension=php_pdo_mysql.dll

extension=php_pdo_odbc.dll

extension=php_xmlrpc.dll

這些extension前面的分號;去掉。(;代表注釋掉的意思)

配置session文件在伺服器上的保存目錄

;session.save_path = “/tmp” 前面的分號;去掉

或修改為session.save_path = “C:/myenv/sessiontmp”(前面的分號;去掉)

配置PHP的文件上傳功能

;upload_tmp_dir =

或修改為upload_tmp_dir = “C:/myenv/fileuploadtmp”(前面的分號;去掉)

配置時間區域

;date.timezone =

修改為date.timezone = Asia/Shanghai (前面的分號;去掉)

PHP5默認MySQL是關閉的,要將C:\myenv\php文件夾下的libenchant_myspell.dll和C:\myenv\php\ext文件夾里的php_mysql.dll考到C:/Windows/System32裡面;

3、測試Apache+php是否安裝成功:

(見本文末尾有代碼)

四、安裝MySQL服務

1、解壓mysql-5.6.21-winx64.zip變重命名文件夾為mysql,將其複製到C:\myenv\目錄下。

2、將C:\myenv\mysql\my-default.ini配置文件重命名為my.ini配置文件,打開my.ini文件,做如下的配置操作:

[client]

#設置mysql客戶端默認字符集

default-character-set = utf8

[mysqld]

#設置mysql的安裝目錄

basedir = C:\myenv\mysql

#設置mysql資料庫的數據存放目錄

datadir = C:\myenv\mysql\data

#設置3306埠

port = 3306

#設置允許最大連接數

max_connections = 200

#設置伺服器端字符集

character-set-server = utf8

#創建新表時將使用的默認存儲引擎

default-storage-engine = INNODB

# server_id = …..

3、啟動MySQL

以管理員身份運行cmd.exe,將目錄切換到mysql的bin目錄下,輸入:Mysqld –install,如下圖所示

出現安裝OK後。接著輸入net start mysql 啟動服務

以上表示mysql服務啟動成功

設置密碼root用戶的密碼為root15w05

在cmd中輸入:mysql –u root,如下圖

mysqluse mysql;

mysqlupdate user set password=PASSWORD(「root15w05」) where user=』root』;

mysqlflush privileges;

mysqlquit;

root用戶密碼修改成功!

4、測試Apache+PHP+MySQL運行環境

http:/localhost/testdbconn.php

PHP語言是什麼語言,用來做什麼的?

PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

PHP原始為Personal Home Page的縮寫,已經正式更名為 “PHP: Hypertext Preprocessor”。注意不是「Hypertext Preprocessor」的縮寫,這種將名稱放到定義中的寫法被稱作遞歸縮寫。PHP於1994年由Rasmus Lerdorf創建,剛剛開始是Rasmus Lerdorf為了要維護個人網頁而製作的一個簡單的用Perl語言編寫的程序。這些工具程序用來顯示 Rasmus Lerdorf 的個人履歷,以及統計網頁流量。後來又用C語言重新編寫,包括可以訪問資料庫。他將這些程序和一些表單直譯器整合起來,稱為 PHP/FI。PHP/FI 可以和資料庫連接,產生簡單的動態網頁程序。

在1995年以Personal Home Page Tools (PHP Tools) 開始對外發表第一個版本,Lerdorf寫了一些介紹此程序的文檔。並且發布了PHP1.0!在這的版本中,提供了訪客留言本、訪客計數器等簡單的功能。以後越來越多的網站使用了PHP,並且強烈要求增加一些特性。比如循環語句和數組變數等等;在新的成員加入開發行列之後,Rasmus Lerdorf 在1995年6月8日將 PHP/FI 公開發布,希望可以透過社群來加速程序開發與尋找錯誤。這個發布的版本命名為 PHP 2,已經有 PHP 的一些雛型,像是類似 Perl的變數命名方式、表單處理功能、以及嵌入到 HTML 中執行的能力。程序語法上也類似 Perl,有較多的限制,不過更簡單、更有彈性。PHP/FI加入了對MySQL的支持,從此建立了PHP在動態網頁開發上的地位。到了1996年底,有15000個網站使用 PHP/FI。

ISAPI篩選器

在1997年,任職於 Technion IIT公司的兩個以色列程序設計師:Zeev Suraski 和 Andi Gutmans,重寫了 PHP 的剖析器,成為 PHP 3 的基礎。而 PHP 也在這個時候改稱為PHP:Hypertext Preprocessor。經過幾個月測試,開發團隊在1997年11月發布了 PHP/FI 2。隨後就開始 PHP 3 的開放測試,最後在1998年6月正式發布 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 發布後開始改寫PHP 的核心,這個在1999年發布的剖析器稱為 Zend Engine,他們也在以色列的 Ramat Gan 成立了 Zend Technologies 來管理 PHP 的開發。

在2000年5月22日,以Zend Engine 1.0為基礎的PHP 4正式發布,2004年7月13日則發布了PHP 5,PHP 5則使用了第二代的Zend Engine。PHP包含了許多新特色,像是強化的面向對象功能、引入PDO(PHP Data Objects,一個存取資料庫的延伸函數庫)、以及許多效能上的增強。PHP 4已經不會繼續

PHP

更新,以鼓勵用戶轉移到PHP 5。

2008年PHP 5成為了PHP唯一的有在開發的PHP版本。將來的PHP 5.3將會加入Late static binding和一些其他的功能強化。PHP 6 的開發也正在進行中,主要的改進有移除register_globals、magic quotes 和 Safe mode的功能。

PHP最新穩定版本:5.4.30(2013.6.26)

PHP最新發布的正式版本:5.5.14(2014.6.24)

PHP最新測試版本:5.6.0 RC2(2014.6.03)

2013年6月20日,PHP開發團隊自豪地宣布推出PHP 5.5.0。此版本包含了大量的新功能和bug修復。需要開發者特別注意的一點是不再支持 Windows XP 和 2003 系統。

2014年10月16日,PHP開發團隊宣布PHP 5.6.2可用。四安全相關的錯誤是固定在這個版本,包括修復cve-2014-3668,cve-2014-3669和cve-2014-3670。所有的PHP 5.6鼓勵用戶升級到這個版本

更多盡在;fr=index

PHP自定義門面以後顯示錯誤?

如果您是PHP老手,當然知道當PHP腳本出錯時發生了什麼事情。此時PHP解析器將在屏幕上給出錯誤信息,如 Fatal error: Call to undefined function on line 19 –,因此程序在此處終止。這個信息會嚇到客戶,他可能立即打電話和你進行諮詢。

幸運的是,這裡有解決辦法。PHP擁有內置工具,可以讓開發人員捕捉腳本錯誤然後將它們轉到自定義的錯誤處理器。此時則可以對處理器進行編程顯示更多關於錯誤的詳細信息。還可以將錯誤寫入文件或資料庫以採取補救措施。有時候還可以對處理器編寫程序忽略錯誤消息。

本文中,我將闡述如何使用PHP的錯誤處理API構建用戶自定義的錯誤處理器,並且說明如何以簡單而友好的方式顯示和管理腳本的錯誤信息。

錯誤類型和報告級別

我們從最基本的開始。PHP有三種最基本的錯誤類型,從低級到高級分別為:注意、警告和錯誤(或致命錯誤)。通常情況下,注意和警告不會終止程序;但是致命錯誤則是危險故障(例如,調用一個沒有定義的函數或參考一個不存在的對象),將導致程序中斷。這些錯誤有可能在啟動、解析、編譯或運行時發生。

關鍵字如E_NOTICE, E_ERROR等用於表明錯誤的不同類型和等級。在PHP手冊上可以獲得它們的詳細信息列表。

腳本階段錯誤顯示由error_reporting()函數進行控制。這一函數針對不同的錯誤等級設置不同的參數。表A給出了使用此函數報告警告和致命錯誤的腳本程序。

表A

?php

// display warnings and errors

error_reporting(E_WARNING | E_ERROR);

// this will generate a notice, which will never be displayed

echo $undefinedVar;

// this will generate a fatal error, which will be displayed

callUndefFunc();

?

將表B中的代碼與上面的進行比較發現,Listing B中隱藏錯誤信息甚至隱藏致命信息,使得錯誤信息不會被顯示出來。

表B

?php

// turn off error display

// no errors will be displayed

error_reporting(0);

// this will generate a notice

echo $undefinedVar;

// this will generate a fatal error

callUndefFunc();

?

表C中的代碼將所有錯誤信息甚至簡單的注意事項都顯示出來:

表C

?php

// all errors will be displayed

error_reporting(E_ALL);

// this will generate a notice

echo $undefinedVar;

// this will generate a fatal error

callUndefFunc();

?

如以上3個例子所示,error_reporting()函數在控制錯誤發生時,在屏幕上顯示內容非常重要。這裡的關鍵字是displayed,其表達的意思是錯誤不被顯示而不是錯誤沒有發生。因此,發生致命錯誤時(例如不正確的函數調用),程序將被終止;但是,此時沒有任何消息顯示給用戶。

下面的例子(表 D)說明了這種情況:

表D

?php

// no errors will be displayed

error_reporting(0);

// start a task

echo “Starting task…”;

// call an undefined function

// a fatal error occurs during task processing

callMe();

// end the task

echo “Successfully completed task…”;

?

在表D中,在調用echo()函數時發生了致命錯誤,程序執行時到這點被終止,但是卻沒有任何錯誤消息給出,用戶不知道這種情況還以為程序在正確運行。下面的結論是非常明顯的:不給出錯誤報告非常危險,因為不論過程是否完成它常導致不正確的結論。

注意:調用不帶任何參數的error_reporting()將返回當前的錯誤報告等級。

自定義錯誤處理器

很明顯,隱藏錯誤報告是不正確的,你肯定想知道有什麼其他辦法加以改進。自定義錯誤處理器就是一個很好的能取代PHP默認錯誤處理系統的解決方法。自定義錯誤處理器可以以任何方式設置處理錯誤信息,包括信息如何顯示。

PHP函數中,完成這一功能的是set_error_handler()函數。錯誤發生時,此函數被自動調用,然後給出4個參數:錯誤代碼、錯誤消息、發生錯誤的腳本名稱和錯誤出現的行,此函數對錯誤管理負責。

表E給出一個簡單例子:

表E

?php

// define custom handler

set_error_handler(‘myHandler’);

// custom handler code

function myHandler($code, $msg, $file, $line) {

echo “Just so you know, something went wrong at line $line of your script $file. The system says that the error code was $code, and the reason for the error was: $msg. Sorry about this!”;

}

// generate a notice

echo $undefVar;

?

當運行此腳本的時候,會出現下面的信息:

Just so you know, something went wrong at line 11 of your /dev/error1.php. The system says that the error code was 8, and the reason for the error was: Undefined variable: undefVar. Sorry about this!

此時,PHP的默認錯誤處理器被用戶定義的myHandler()函數所取代,$undefVar變數被激活,PHP通知未定義變數的信息,此信息在運行時引擎產生,然後傳遞給myHandler()函數,同時錯誤發生的地址也傳遞給此函數。然後myHandler()函數輸出友好信息解釋錯誤。

注意:錯誤和致命錯誤很重要,它們會繞過自定義錯誤處理器,然後以PHP默認的錯誤處理機制進行顯示。顯示這些信息可使用前面討論的標準error_reporting()函數進行控制。

例1:動態錯誤頁面和e-mail警報

表F給出了另一個範例,當發生錯誤時,將動態產生HTML錯誤頁面,並且通過e-mail向Web管理員進行報告。

表F

?php

// define custom handler

set_error_handler(‘myHandler’);

// custom handler code

function myHandler($code, $msg, $file, $line, $context) {

// print error page

echo “htmlhead/headbody”;

echo “h2 align=centerError!/h2”;

echo “font color=red size=+1”;

echo “An error occurred while processing your request. Please visit our a href=;home page/a and try again.”;

echo “/font”;

echo “/body/html”;

// email error to admin

$body = “$msg at $file ($line), timed at ” . date (“d-M-Y h:i:s”, mktime());

$body .= “nn” . print_r($context, TRUE);

mail (“webmaster@domain.dom”, “Web site error”, $body);

// halt execution of script

die();

}

// generate a notice

echo $undefVar;

?

這裡,自定義的錯誤處理器在遇到錯誤時動態產生HTML錯誤頁面。此錯誤信息也能被e-mail信息捕獲,然後通過PHP內置的mail()函數發送給管理員。

這裡出現了myHandler()函數的一個新參數$context。這是myHandler()函數的第五個參數,是可選項。它包含了當前變數狀態的快照。包括對管理員有用的上下文信息,有利於減少調試時間。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/293169.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-25 18:39
下一篇 2024-12-25 18:39

相關推薦

  • 阿里Python技術手冊

    本文將從多個方面對阿里Python技術手冊進行詳細闡述,包括規範、大數據、Web應用、安全和調試等方面。 一、規範 Python的編寫規範對於代碼的可讀性和可維護性有很大的影響。阿…

    編程 2025-04-27
  • 其他字元Python——Python全能編程開發工程師手冊

    為了滿足不同領域對Python的需求,其他字元Python應運而生。它是一種全能的Python編程語言,提供了許多強大的功能和庫,使得編程變得更加簡單、高效。在本文中,我們將從不同…

    編程 2025-04-27
  • 如何查Python手冊?

    想要進行Python編程,不可避免的要查看官方API文檔和手冊。Python文檔除了包含所有Python模塊和其對應的方法和屬性外,還提供了包括解釋器、語言參考、Python標準庫…

    編程 2025-04-27
  • Vue手冊詳解

    一、Vue的簡介 Vue.js是一套構建用戶界面的漸進式框架。與其他大型框架不同的是,Vue被設計成可以自底向上逐層應用的。Vue.js核心庫只關注視圖層,是一款專為構建交互性的W…

    編程 2025-04-25
  • numpy中文手冊詳解

    一、介紹numpy numpy是一個Python第三方庫,提供了數組和矩陣運算的高效操作方法以及各種數學函數的實現,同時numpy也是進行數據分析及科學計算的基礎包之一。 引入nu…

    編程 2025-04-23
  • C++手冊全面詳解

    一、基礎語法 C++是一種基於對象的編程語言,基礎語法主要包括數據類型、控制語句、函數和指針等。 1. 數據類型: #include <iostream> using …

    編程 2025-04-23
  • PyTorch中文手冊詳解

    一、PyTorch介紹 PyTorch是當前最熱門的深度學習框架之一,是一種基於Python的科學計算庫,提供了高度的靈活性和效率,可幫助開發者快速搭建深度學習模型。 PyTorc…

    編程 2025-04-13
  • 深入探究cmake中文手冊

    一、概述 cmake是一個跨平台的自動化構建工具,可以生成Makefile、Visual Studio等項目文件。 當我們開始使用cmake時,很難不遇到各種問題。作為一份權威的文…

    編程 2025-04-12
  • Qt手冊的全面解析

    一、Qt的介紹 Qt是一款跨平台開發框架,可以方便地在不同的操作系統(如Windows、macOS、Linux等)上構建高質量的桌面、移動和嵌入式應用程序。 Qt由挪威公司Trol…

    編程 2025-02-25
  • 探索pandas手冊

    一、理解Pandas Pandas是Python中非常流行的一種數據處理庫。它可以處理如同Excel或SQL表格一樣的數據集,並提供了非常豐富的數據分析、操作及可視化功能。同時,它…

    編程 2025-02-17

發表回復

登錄後才能評論