當前位置:首頁 » 編程軟體 » 編譯phplib搜索路徑

編譯phplib搜索路徑

發布時間: 2023-06-14 06:06:35

php自學要多久才能學會

php 基礎知識需要自學 1~3 個月才能做到熟練掌握。

一、入門(第一階段)標准:掌握基本的語法。能夠在記事本上寫 hello world 。能夠從網上下載wamp等全自動套件安裝php+apache環境。同時你的helloworld能夠運行。

對nginx有一定了解,並能操作之;此時已經明白一個重要的道理:要想學好PHP,不是光光會PHP就夠的。同時還要掌握一定的html知識、js知識、linux知識和資料庫知識。

六、高級階段:

(1):要達到中高級階段,必須做過一些大中型項目。在項目中積累了較高水準的肉眼識BUG的技能。對開源代碼有興趣,很好的利用並能讀懂開源代碼。

(2)做大中型項目不再局限於PHP。而是用Java等語言做了後台、python做了數據分析、PHP來做前端。掌握至少2門資料庫,此時學習一門新技術已經達到一通百通的程度,分分鍾就能掌握一門新語音的語法。

② .php是什麼程序

PHP即「超文本預處理器」,是一種通用開源腳本語言。PHP是在伺服器端執行的腳本語言,與C語言類似,是常用的網站編程語言。

PHP獨特的語法混合了C、Java、Perl以及 PHP 自創的語法。利於學習,使用廣泛,主要適用於Web開發領域。

PHP原始為Personal Home Page的縮寫,已經正式更名為 "PHP: Hypertext Preprocessor"。自20世紀90年代國內互聯網開始發展到現在,互聯網信息幾乎覆蓋了我們日常活動所有知識范疇,並逐漸成為我們生活、學習、工作中必不可少的一部分。

(2)編譯phplib搜索路徑擴展閱讀

主要特點

(一)開源性和免費性

由於PHP的解釋器的源代碼是公開的,所以安全系數較高的網站可以自己更改PHP的解釋程序。另外,PHP 運行環境的使用也是免費的。

(二)快捷性

PHP是一種非常容易學習和使用的一門語言,它的語法特點類似於C語言,但又沒有C語言復雜的地址操作,而且又加入了面向對象的概念,再加上它具有簡潔的語法規則,使得它操作編輯非常簡單,實用性很強。

(三)資料庫連接的廣泛性

PHP可以與很多主流的資料庫建立起連接,如MySQL、ODBC、Oracle等,PHP是利用編譯的不同函數與這些資料庫建立起連接的,PHPLIB就是常用的為一般事務提供的基庫。

參考資料來源:網路-PHP

③ 代碼優化從那裡入手

優化見解
PHP作為腳本語言被廣泛應用於網頁網站程序設計中。

由於是腳本語言,在運行時才對高級語言代碼解釋執行,所以跟編譯語言(如C)比起來php的效率比較低,稍復雜的程序執行起來就需要消耗較多的時間。作為網頁伺服器時,低效率意味著消耗更多的伺服器資源。所以,有必要通過優化php 程序代碼來提高效率,減小伺服器資源消耗。(當然如果你的程序本來就消耗很少執行時間或者你的伺服器足夠強,那就不一定要進行優化了)

網上很多文章介紹優化php程序,是通過安裝Zend Optimizer之類的加速軟體實現的,但這種加速是有限的。本文主要從程序代碼著手介紹一些優化思路和手段。

程序的抽象層越多,各抽象層分離得越嚴格,程序效率越低。

最原始的應用於網頁的php程序模式莫過於腳本嵌入模式,即僅僅在一個網頁中需要動態處理或顯示數據的地方通過加入<?php和?>標識符嵌入php腳本。一般來說這是php程序員最早學習的模式,它只有一個抽象層,就是網頁,故本文稱其為單層模式。

隨著網站規模逐漸增大,程序員可能會發現單層模式的程序很難維護,當想對程序修改或擴充功能時,會發現代碼非常混亂,感覺無從下手。於是模板類誕生了,它使得一個網頁由兩個文件組成:一個php程序文件,一個html模板文件。常用的模板類有PHPLib庫帶的Template模板類,Smarty模板類等。由於加入了額外的處理程序(模板類),程序效率下降了。你若不信可自己測試一下。其實一般情況下,不用函數(最原始的編程方法)比用函數(面向過程)的效率高,而用函數的效率又比對象封裝(面向對象)高。所以就算在編譯語言中,需要高效率的地方會用C寫而不用C++,例如FreeBSD操作系統的內核;而需要極端高效的地方還要用匯編寫。

為了使程序可以適應多種資料庫系統,或者方便隨時轉換資料庫系統,常常還會用一個類把跟資料庫打交道的函數封裝起來,這樣當轉換資料庫系統時只要把封裝類換掉就行了,主程序不需要修改。這里又用了一個類,效率又打折扣了。

上述模板類的使用,使程序分成兩個抽象層:程序層和表現層。而資料庫類的使用又把程序層分為數據介面層和數據處理層。

項目越龐大,需要分離的抽象層就越多,這樣使得分工清晰,方便管理,但是以犧牲程序執行效率為代價。

對於抽象層造成的效率下降,優化的方法有二:減小抽象層、優化抽象層之間的介面。一般地,不應該為了提高效率而盲目減小抽象層,這樣會使得代碼混亂、難於管理。但是不應該為小項目建立過多的抽象層,除非你有將來把它做得很大的計劃。關於如何恰當分割抽象層,本文不作更深入討論。

對於上文說的兩個分層例子,優化抽象層之間的介面分別是模板類和資料庫操作類。抽象層介面在程序中需要被頻繁調用,以在不同層之間交換信息,所以層介面是很值得優化的。對於資料庫介面類,可能僅僅是封裝一些資料庫函數,優化餘地恐怕不大。對於模板類,很多時候是有較大優化餘地的。一般地,模板模型越通用,模板類功能越強大,效率就越低,例如PHPLib庫帶的Template類就有極大的優化餘地。而Smarty模板類比PHPLib的Template更復雜,我沒有用過,據稱有緩存機制,不知是否可以彌補其性能損耗。下面就來看看PHPLib的Template類有多少東西可以優化掉。

1.

讀入模板文件時,file函數效率低,改用get_file_content函數。
2.

匹配子模板時,正則表達式替換函數preg_replace效率低,改用str_pos函數進行定位和用str_replace函數進行替換操作。此優化手段後文會詳細分析。
3.

模板模型通用性很強,能適應各種情況,但在具體細節的處理上,通用的方法效率可能很低。可以對模板模型作適當修改。我的做法是建一個相對通用的模板類,然後再派生出一個只適用於特定程序的模板類。在通用模板類的模板模型上可以作些優化(相對於PHPLib的Template),例如在處理二維數據表的時候用 PHPLib的Template處理就比較復雜(具體實現方法可參考《優化php嵌套模版》),需要多次調用類方法(本質上是函數調用),所以重寫的時候可以把處理二維數據表的功能封裝到一個高效率的方法中,直接避免方法的多次調用。
4.

調試功能在小項目上不需要用,跟調試相關的代碼全部去掉。

我在按上面4點重寫了模板類之後,一個復雜頁面的執行時間縮小了一個數量級(除模板外沒有作其它優化)。

現在就優化你的程序的抽象層之間的介面,特別是當這些介面是使用現成的函數或類的時候。因為這些函數或類在設計時會為了適應普遍情況而犧牲一些效率,而且它們的作者也可能沒有考慮效率問題。像如此著名的PHPLib的模板類的效率也不見得就高。
細節代碼優化

優化代碼不應總是祈求大刀闊斧式的優化,當大方面已經無從入手時,不妨把視線轉移到細節上。

1.

上文模板類優化已提到的,正則表達式匹配比一般字元串匹配慢得多,盡可能用字元串匹配而不用正則表達式匹配。有時候雖然用正則表達式匹配使程序代碼更簡潔,而一般字元串匹配使代碼更冗繁,但很多時候字元串匹配仍比正則表達式高效。
2.

字元串替換函數str_replace和preg_replace都是可以接受數組參數的。有時候需要對字元串進行批量替換,則用數組參數比循環調用替換函數來得高效。例如下面的代碼:
1. for ($i = 0; $i < $n; $i++) {
2. $str = str_replace($search[$i], $replace[$i], $str);
3. }

應該換成:
1. $str = str_replace($search, $replace, $str);

注意:這里$search和$replace都是數組

str_replace和preg_replace的數組用法可參考PHP手冊。
3.

對用於賦值的條件語句,可改用?:算符

這里僅舉三個細節代碼優化的方法。實際上PHP程序還有很多細節代碼優化方法,要掌握這些方法,需要多看PHP手冊,多了解些函數。在解決一些細節問題時,用不同的函數作不同的搭配,就產生不同的方法,對不同的方法應進行實際效率測試,得出優化方法。
面向對象、面向過程、類、函數、宏

盡管面向對象方法在程序設計中有很多優點(這里就不羅列了),但一般地說,面向對象程序的執行效率往往不如面向過程好,一個顯然的理由是面向對象的程序往往要頻繁調用對象的方法從而使代碼簡潔明了,卻降低了程序執行效率。

對於中小型項目,為程序效率著想,最好在思想上,面向對象與面向過程兼有,在代碼上,類、函數、宏搭配使用。這里提到一個可能對讀者陌生的概念——宏(macro)。在C語言中有宏,宏匯編中也有宏,但PHP中官方沒有定義「宏」的概念。然而我們可以通過require函數和include函數實現宏的功能。require和include通常用來在程序代碼中包含函數庫或類庫等文件,一般很少用來直接包含程序代碼文件,因為包含程序代碼有時會降低代碼易讀性。當有一段代碼需要在很多頁面中都執行時,通常被想到的是把它打包為函數或封裝為類。但此法有缺點如下:

1.

降低程序效率。因為增加了函數/類方法調用。
2.

有時此段嵌入代碼較復雜,實現功能並不單純,封進函數並不符合函數功能單純的原則。
3.

有時嵌入代碼需要與外部大量交換數據,如果封進函數會使參數表龐大,且處理函數的返回值也變得復雜。
4.

由於有2、3兩點缺點,導致當嵌入代碼與外部代碼交換的數據有所變化時,函數或類的介面的更改會變得麻煩。

當遇上以上情況時,我建議使用宏,即把嵌入代碼直接寫入被包含文件中,供各頁麵包含。但此時務必要清晰注釋宏的調用方法,輸入輸出數據等,以彌補代碼易讀性的降低。

總之,面向對象、面向過程、類、函數、宏,這些都應根據具體實際情況而搭配使用,不應盲目死守某些原則。
SQL資料庫

本來SQL資料庫的優化不應歸入PHP優化,但實際應用中PHP常與SQL資料庫配合構建網站,常用的資料庫有MySQL、PostgreSQL等。於是SQL查詢的效率也直接影響PHP程序的效率,故本文也略為談一談。

1.

MySQL 中,使用InnoDB或BDB表(支持事務)的效率比MyISAM表(不支持事務)的效率低,尤其InnoDB表效率比MyISAM低很多,而BDB表的主要劣勢在於佔用磁碟空間比MyISAM表多很多,且不能查知每個表佔用磁碟空間的大小。而對中小型應用,數據不一致性出現的概率是很微的,所以盡可使用 MyISAM表提高效率。(關於MySQL數據表的更多討論可參考《MySQL 中三種數據表的對比》)
2.

恰當建立索引和存儲冗餘數據。此話題太大故本文不打算作詳述。
3.

有些SQL查詢僅需知道資料庫中是否存在符合條件的行,故只要查得一行,搜索即可結束。所以對此類查詢,可在SQL句末加上LIMIT 1使資料庫一旦搜到滿足條件的行即不再搜索。
4.

盡量少用JOIN,有些低效率的JOIN查詢可通過存儲冗餘數據來避免。
5.

有時候需要比較現在的時間與資料庫某列的時間的差距,返回時間差距滿足一定條件的行。在MySQL 4.1之前,是沒有DATEDIFF函數的,但可以用DATE_ADD或DATE_SUB函數簡潔實現,例如要返回xtime列距今超過10天的行,有兩種寫法:

法一:
1. SELECT somecolumn FROM sometable WHERE DATE_ADD(xtime, INTERVAL 10 DAY) < NOW()

法二:
1. SELECT somecolumn FROM sometable WHERE DATE_SUB(NOW(), INTERVAL 10 DAY) > xtime

兩種寫法執行結果等效但效率不同。如果xtime列建有索引,則法一的寫法無法使用索引,而法二的寫法可以用索引,故應採用第二種寫法提高效率。

除此之外,SQL資料庫優化還大有學問。
延遲輸出與緩沖

有時候有些頁面無論如何也無法優化到需要的速度,此時可以考慮使用延遲輸出與緩沖的技術。

關於延遲輸出,可參考《動態網頁中慢數據的延遲輸出》,本文不再詳述。

而緩沖也是一個大話題,故本文也不打算作詳述,但作一簡介。

常用的技術,按網站軟體層次分,有網頁服務軟體的緩沖技術,例如Apache的緩沖技術;又有動態腳本的緩沖技術,例如用PHP編程實現的緩沖技術。

此外又可分為靜態緩沖技術和動態緩沖技術。靜態緩沖技術即把動態內容生成靜態的html頁面存於磁碟,客戶端幾乎完全跟靜態頁面打交道,整個網站猶如一個靜態網站。而伺服器後台在適當時候調用動態程序更新靜態內容(重新生成靜態內容)。動態緩沖技術則是客戶端仍與動態頁面打交道,而動態網頁在接到客戶請求時先檢查是否有相應的緩沖網頁,如有,直接把該靜態頁輸出到客戶端,如無或緩沖頁已過時,則重新生成緩沖頁面並輸出到客戶端。

雖然本文篇幅已經有相當長度,但對PHP優化這個大話題來說只是一個概述,很多優化技術也只是點到為止。讀者可擇感興趣的技術看更多的資料作深入學習。

④ Asp、Php、Jsp區別

ASP全名Active
Server
Pages,是一個WEB伺服器端的開發環境,利用它可以產生和執行動態的、互動的、高性能的WEB服務應用程序。ASP採用腳本語言VBScript(Java
script)作為自己的開發語言。
PHP是一種跨平台的伺服器端的嵌入式腳本語言。它大量地借用C,Java和Perl語言的語法,
並耦合PHP自己的特性,使WEB開發者能夠快速地寫出動態產生頁面。它支持目前絕大多數資料庫。還有一點,PHP是完全免費的,不用花錢,你可以從PHP官方站點(http:
//www.php.net)自由下載。而且你可以不受限制地獲得源碼,甚至可以從中加進你自己需要的特色。
JSP是Sun公司推出的新一代開發語言,Sun公司藉助自己在Java上的不凡造詣,將Java從Java應用程序和Java
Applet之外,又有新的碩果,就是JSP,Java
Server
Page。JSP可以在Serverlet和JavaBean的支持下,完成功能強大的站點程序。
ASP.NET
ASP
最新的版本
ASP.NET
並不完全與
ASP
早期的版本後向兼容,因為該軟體進行了完全重寫。早期的
ASP
技術實際上與
PHP
的共同之處比與ASP.NET

PHP的共同之處多得多,ASP.NET
是用於構建
Web
應用程序的一個完整的框架。這個模型的主要特性之一是選擇編程語言的靈活性。ASP.NET
可以使用腳本語言(如
JScript、VBScript、Perlscript

Python)以及編譯語言(如
VB、C#、C、Cobol、Smalltalk

Lisp)。新框架使用通用的語言運行環境
(CLR);先將您語言的源代碼編譯成
Microsoft
中間語言代碼,然後
CLR
執行這些代碼。
這個框架還提供真正的面向對象編程
(OOP),並支持真正的繼承、多態和封裝。.NET
類庫根據特定的任務(例如,使用
XML
或圖像處理)組織成可繼承的類。
除了編程語言和方法之外,當您用
ASP.NET
編程時,可以用
ODBC
來集成資料庫;ODBC
提供了一組一致的調用函數來訪問您的目標資料庫。
優勢和弱點:
ASP.NET
的優勢很明顯在於它簡潔的設計和實施。這是面向對象的編程人員的夢想:語言靈活,並支持復雜的面向對象特性。在這種意義下,它真正能夠與編程人員現有的技能進行互操作。
ASP.NET
的另一個優勢是其開發環境。例如,開發人員可以使用
WebMatrix(一個社區支持的工具)、Visual
Studio
.NET
或各種
Borland
工具(如
Delphi

C++
Builder)。例如,Visual
Studio
允許設置斷點、跟蹤代碼段和查看調用堆棧。總而言之,它是一個復雜的調試環境。許多其他第三方的
ASP.NET
IDE
解決方案也將必然出現。
但是ASP.NET強健性,是以損失效率為代價的。ASP.NET
在內存使用和執行時間方面耗費非常大,這大部分歸因於較長的代碼路徑。對基於
Web
的應用程序,這些局限可能是一個嚴重的問題,因為在
Web
上,您的應用程序可能擴展為每秒成千上萬的用戶。內存使用率還可能成為
Web
伺服器上的一個問題。
這幾個都提供在
HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。但JSP代碼被編譯成
Servlet並由Java虛擬機解釋執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。在ASP
、PHP、JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的
HTML頁面只依賴於Web伺服器,而ASP
、PHP、JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP
、PHP、JSP三者都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。
性能比較:
有人做過試驗,對這ASP、PHPP、JSP三種語言分別做迴圈性能測試及存取Oracle資料庫測試。在循環性能測試中,JSP只用了令人吃驚的四秒鍾就結束了20000*20000的迴圈。而ASP、PHP測試的是2000*2000循環(少一個數量級),卻分別用了63秒和84秒。(參考PHPLIB)。
資料庫測試中,三者分別對
Oracle
8
進行
1000

Insert,Update,Select和Delete:
JSP
需要
13
秒,PHP
需要
69
秒,ASP則
需要
73
秒。
前景分析:
目前在國內PHP與ASP應用最為廣泛。而JSP由於是一種較新的技術,國內採用的較少。但在國外,JSP已經是比較流行的一種技術,尤其是電子商務類的網站,多採用JSP。採用PHP的網站如新浪網(sina)、中國人(Chinaren)等,但由於PHP本身存在的一些缺點,使得它不適合應用於大型電子商務站點,而更適合一些小型的商業站點。首先,PHP缺乏規模支持。其次,缺乏多層結構支持。對於大負荷站點,解決方法只有一個:分布計算。資料庫、應用邏輯層、表示邏輯層彼此分開,而且同層也可以根據流量分開,群組成二維數組。而PHP則缺乏這種支持。還有上面提到過的一點,PHP提供的資料庫介面支持不統一,這就使得它不適合運用在電子商務中。
ASP和JSP則沒有以上缺陷,ASP可以通過Microsoft
Windowsd的COM/DCOM獲得ActiveX規模支持,通過DCOM和Transcation
Server獲得結構支持;JSP可以通過SUN
Java的Java
Class和EJB獲得規模支持,通過EJB/CORBA以及眾多廠商的Application
Server獲得結構支持。三者中,JSP應該是未來發展的趨勢。世界上一些大的電子商務解決方案提供商都採用JSP/Servlet。比較出名的如IBM的E-business,它的核心是採用JSP/Servlet的Web
Sphere。它們都是通過CGI來提供支持的。但去年10月後它推出了Enfinity,一個採用JSP/Servlet的電子商務Application
Server,而且聲言不再開發傳統軟體。
總之,ASP,PHP,JSP,.Net都有相當數量的支持者,由此也可以看出各有所長。正在學習或使用動態頁面的朋友可根據他們的特點選擇一種適合自己的語言。
參考資料:www.laoqiang.net

⑤ PHP是什麼

PHP是PHP的遞歸首字母縮寫:Hypertext Preprocessor,一種用於創建動態和互動式HTML網頁的腳本語言。當網站訪問者打開頁面時,伺服器處理PHP命令,然後將結果發送到訪問者的瀏覽器。

主要特點

①開源性和免費性

由於PHP的解釋器的源代碼是公開的,所以安全系數較高的網站可以自己更改PHP的解釋程序。另外,PHP運行環境的使用也是免費的。

②快捷性

PHP是一種非常容易學習和使用的一門語言,它的語法特點類似於C語言,但又沒有C語言復雜的地址操作,而且又加入了面向對象的概念,再加上它具有簡潔的語法規則,使得它操作編輯非常簡單,實用性很強。

③資料庫連接的廣泛性

PHP可以與很多主流的資料庫建立起連接,如MySQL、ODBC、Oracle等,PHP是利用編譯的不同函數與這些資料庫建立起連接的,PHPLIB就是常用的為一般事務提供的基庫。

④面向過程和面向對象並用

在PHP語言的使用中,可以分別使用面向過程和面向對象,而且可以將PHP面向過程和面向對象兩者一起混用,這是其它很多編程語言是做不到的。


(5)編譯phplib搜索路徑擴展閱讀

PHP優點

①流行,容易上手

PHP是目前最流行的編程語言,這毋庸置疑。它驅動全球超過2億多個網站,有全球超過81.7%的公共網站在伺服器端採用PHP。PHP常用的數據結構都內置了,使用起來方便簡單,也一點都不復雜,表達能力相當靈活。

②開發職位很多

在伺服器端的網站編程中PHP會更容易幫助你找到工作。很多互聯網相關企業都在使用PHP開發框架,所以可以說市場對PHP的開發程序員的需求還是比較大的。

③仍然在不斷發展

PHP在不斷兼容著類似closures和命名空間等技術,同時兼顧性能和當下流行的框架。版本是7之後,一直在提供更高性能的應用。

④可植入性強

PHP語言在補丁漏洞升級過程中,核心部分植入簡單易行,且速度快。

⑤拓展性強

PHP語言在資料庫應用過程中,可以從資料庫調取各類數據,執行效率高

熱點內容
安卓43怎麼升級44 發布:2025-02-09 09:51:33 瀏覽:463
美國雲伺服器快還是香港快 發布:2025-02-09 09:34:33 瀏覽:988
怎麼解壓qq文件 發布:2025-02-09 09:18:14 瀏覽:581
安卓最新怎麼調靈敏度更穩 發布:2025-02-09 09:12:44 瀏覽:400
豌豆莢如何用安卓手機下載 發布:2025-02-09 09:11:57 瀏覽:213
吃雞腳本輔助 發布:2025-02-09 09:09:29 瀏覽:6
sessionidpython 發布:2025-02-09 09:08:53 瀏覽:276
華為手機驗證碼和密碼忘了是多少 發布:2025-02-09 08:53:53 瀏覽:799
逆戰筆記哪個配置好玩 發布:2025-02-09 08:53:04 瀏覽:600
怎麼打開電腦雲伺服器 發布:2025-02-09 08:36:01 瀏覽:220