PHP(Personal Home Page的縮寫,現已改名Hypertext Preprocessor「超文本預處理器」)靜態web開發:html,內容一成不變動態web開發: php(Zend)、jsp(sun-oracle)、asp(微軟)、asp.net、cgi, 運行在服務器端,由程序決定內容-------------------------------- 歷史------------------------------- 用Perl語言編寫的程序,顯示我的履歷,以及統計網頁流量; 用C語言從新編寫,包括能夠訪問數據庫; PHP1.0版本,提供了訪客留言本、訪客計數器等簡單的功能。 PHP 2版本,有 PHP 的一些雛型,相似 Perl的變量命名方式、表單處理功能、以及嵌入到 HTML 中執行的能力。 PHP 3版本,改名Hypertext Preprocessor, 成立了 Zend Technologies公司 來管理 PHP 的開發。 PHP 四、5使用了第二代的Zend Engine。包含了強化的面向對象、引入PDO(PHP Data Objects存取數據庫的延伸函數庫)。 PHP6 更好的支持web2.0,Unicode支持,強化的面向對象,對xml編程的支持,soap(簡單對象協議) ------------------------------------ 特色 ------------------------------------跨平臺,支持多種數據庫免費(成本低)且是開源代碼(可二次開發)上手快,相對簡單,被嵌入於HTML語言,實用性強,更適合初學者Php 消耗至關少的系統資源,效率高,安全性好面向對象,php徹底能夠用來開發大型商業程序。解釋執行的語言缺點: 安裝複雜,配置繁瑣 數據太靈活,解釋執行,運行時才能暴露程序對錯-----------------------------------------功能------------------------------------------- PHP 可以生成動態頁面內容 PHP 可以建立、打開、讀取、寫入、刪除以及關閉服務器上的文件 PHP 可以接收表單數據 PHP 可以發送並取回 cookies PHP 可以添加、刪除、修改數據庫中的數據 PHP 可以限制用戶訪問網站中的某些頁面 PHP 可以對數據進行加密--------------------------------- 開發工具ide--------------------------------- 商業版:Zend Studio,PhpEd,Adobe Dreamweaver,PHP Storm 免費版:Eclipse with PDT,NetBeans,Aptana Studio ***c/s與b/sc/s client 客戶端 server 服務器 須要對客戶端機器有要求安全性高效率變低 b/s優點browser 瀏覽器 server 服務器 1.開發成本低 2.管理維護簡單 3.產品升級便利 4.對用戶培訓費用低 5.用戶使用方便,出現故障機率小b/s不足: 1.安全性不足 2.客戶端不能隨心變化,受瀏覽器限制c/s與b/s相反web服務器: 1.爲何須要web服務器? 由於要從服務器取數據或者提交給服務器數據 2.怎樣查看發送或接受到的是什麼? 用httpwatch工具來獲取,有利於咱們瞭解的更加透徹 3.web服務器有哪些? iis服務器--微軟爲 asp.net服務 lighttpd 德國 輕便、效率高 成熟度低於apache nginx 俄國 內存少,併發能力強,使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等 apache 排名第一最流行,可靠 基於模塊化----------------------------環境配置----------------------------1.安裝web服務器:Apache2.2 (1)下載httpd-2.2.22-win32-x86-no_ssl.msi (2)瀏覽器中http://localhost ---> it works即成功 (3)關閉/啓動 進入apache bin 命令行 httpd -k shutdown/restart (4)默認端口80,查看端口 netstat -an,監聽端口的使用程序 netstat -anb (5)配置文件 conf下的httpd.conf 能夠修改端口號 【注意】一個端口號只能被一個應用監聽,但一個應用能夠監聽多個端口 bin: 經常使用命令 cgi-bin: linux下命令 conf 配置 htdocs 存放用戶web工程文件(默認) manual 手冊 error 錯誤記錄#配置虛擬目錄 <IfModule dir_module> #DirectoryIndex至關於歡迎頁面 DirectoryIndex index.php index.html #站點別名 Alias /mydemo "E:/mydemo" </IfModule>#設置訪問權限設置 <Directory "E:/mydemo"> Order allow,deny #先容許全部ip訪問,deny拒絕全部 Allow from all #先看看allow中容許的ip </Directory> 例如: Order deny,allow #先拒絕192.168,而後容許192.168.2.2 deny from 192.168 Allow from 192.168.2.2 結果是拒絕除192.168.2.2之外的以192.168開頭的全部ip#配置虛擬主機 (1)啓用httpd-vhosts.conf 在httpd.conf中去點 Include conf/extra/httpd-vhosts.conf前的# (2)conf/extra/httpd-vhosts.conf中修改第二個VirtualHost以下 <VirtualHost *:80> DocumentRoot "E:/mydemo" #設置歡迎頁面 DirectoryIndex index.php index.html <Directory /> #不容許別人修改頁面 AllowOverride None #設置訪問權限 Order allow,deny Allow from all </Directory> </VirtualHost> (3)修改host訪問 本地 C:\Windows\System32\drivers\etc下的hosts文件,解析ip地址與域名對應關係(localhost即域名) 若是沒有查到域名,去外網dns服務器查找 hosts文件添加 127.0.0.1 higcom 127.0.0.1 www.sohu.cn2.安裝php開發核心包: http://php.net下載 修改httpd.conf改 LoadModule php5_module,使apache能檢索到php安裝路徑 修改php.ini 設置php擴展庫路徑extension_dir 爲文件夾ext的路徑 開啓庫功能extension3.安裝ide: phpstorm 在phpstorm中File->Settings->php(languages&Frameworks下的php) interpreter中選擇php.exe安裝路徑,如G:\web_tools\AppServ\php6\php.exe第一個php程序 <?php echo "個人第一段 PHP 腳本!" ?>【注意】1.輸出方法有兩種:echo 和 print 區別: echo - 可以輸出一個以上的字符串,沒有返回值,速度快 print - 只能輸出一個字符串,並始終返回 1,速度慢 例如: <?php echo "輸出","aaa","bbb"; print "打印"; ?>2.輸出服務名 echo $_SERVER["SERVER_SOFTWARE"];3.常見錯誤: (1) phpstorm中502 bad gateway:無效網關 解決辦法:File->Settings->php(languages&Frameworks下)設置php.exe 或者File—Settings—Build,Execution,Deployment—Debugger修改端口號爲80 (輸入無效,按上下按鈕纔有效,耗時太長,推薦1) 若仍是502,在任務管理器中看是否有php-cgi在工做,結束掉該進程便可。----------------------------------------------------------php運行原理----------------------------------------------------------客戶端發送給服務器一個請求時,若請求資源爲html文件時,服務器直接將html文件發送給客戶端瀏覽器;若請求的是php文件,服務器將php解釋爲標準的html代碼而後再發送給客戶端。