當前位置:首頁 » 編程語言 » php預編譯

php預編譯

發布時間: 2022-09-22 06:04:37

A. 沒有安裝apache也可以運行php程序嗎

沒有安裝apache可以運行php的,可以用IIS、ngnix等作為伺服器。使用iis運行php的方法如下:

1、下載安裝php,安裝時默認路徑:

B. PHP,JSP,ASP是什麼干什麼用的之間有什麼關系嗎

PHP,Hypertext Preprocessor,最初在95年問世(那時以前叫Personal Home Page)。PHP最初是製作動態網頁的伺服器端腳本語言,但現在PHP已經可以作為command line運行有GUI的standalone的程序。現在是PHP Group在開發和管理PHP的規則,功能等。但PHP大都用在dynamic webpage scripting上,好象沒聽過誰用它開發desktop application。

PHP使用率是製作動態網頁的幾種語言(JSP,ASP,ASP.NET, ColdFusion, Ruby, SHTML)中最高的。因為PHP在95年已經問世至今,以有相當數量的開發者。我們熟知的國際權威網路全書Wikipedia有90%用PHP寫的,而且國外流行多年的「校內網」FaceBook 也全部用PHP寫的,同時Yahoo, Sony官方,Pepsi百事官方這些網站都是用PHP的。根據維基網路(Wikipedia)的說法,PHP被超過20,000,000的網站所用,被超過1,000,000的網頁伺服器所用。目前到2008五月,PHP最新版本為5.2.6。

PHP不僅使用率高,而且能兼容各類平台。它可以在大多數網頁伺服器上運行(如:MS IIS,Apache),大多數操作系統上運行(如:Windows, UNIX, Linux)。而且PHP支持很大多數牌子的資料庫:Mysql, Informix, Oracle, Sybase, Solid, PostgreSQL, Gerneric ODBC等。

結構方面,雖比JSP,ASP.NET差點,PHP也有很多Framework可用。微軟的ASP.NET結構是出名的,JSP的MVC結構也很厲害,所以開發大網站ASP.NET,JSP都很快。而PHP Group也為此付出很大努力,來開發自己特有的結構適應不同類型的大網站的需求。常見的PHP的Framework有:CakePHP, PRADO, Symfony, Zend等。

另外LAMP結構,是PHP最常用的開發模式,即是配合Linux, Apache, MySQL, PHP,合稱LAMP。個人認為這種方式才是ASP.NET,PHP,JSP中最簡單的。

3. 說說JSP。(本人工作中用的最多的就是JSP)
JSP, JavaServer Pages 是Java技術的一部分,可以說是Java Platform Enterprise Edition的一部分(JAVA主要3個大技術,Java SE, Java EE, Java ME)。軟體開發者可以用JSP來動態生成HTML,XML或者其他的文檔。然後把文檔response給網頁用戶。這項技術,可以用Java里的所有定義過的library來支持它的功能,所以JSP的API和普通Java EE的API一樣。

JSP里還有很多有功能的XML tag(如:<jsp:include>,<jsp:useBean)。這些都是JAVA內置功能,不需要導入新的外置 library。這些XML tag,可以在很多Web Server里使用(如:Apache, Apache TomCat, WebLogic等)。

JSP在編譯後就完全和Servlet一樣了。JSP頁面在第一次被用戶訪問的時候,首先被JAVA 編譯器,編譯成Java Servlet Class。然後編譯後Servlet Class,在以後被用戶訪問時,直接在JVM里運行,由JSP Web Container來輸出HTML給用戶。JSP這種「首次訪問-預編譯」的運行方式比傳統PHP(PHP 4和PHP以前版本),過時的ASP(所有版本的ASP),要快很多。(網路一位網友作過一個1萬次For Loop,循環的測試,結果發現JSP比傳統PHP,ASP快盡10被的速度就完成運算)。預編譯的運行方式後來被PHP5效仿,ASP.NET也是預編譯的。當然JSP還有一個好處,就是可以直接用純Java (無HTML),來寫一個Servlet,直接在JVM運行後,由JSP Web Container輸出HTML給用戶。只是Servlet有的時候寫一些presentation tier的東西很麻煩,因為它不能融合XML和輸出邏輯在一起。所以一般Servlet用於純Java的business logic邏輯。

JSP的tag還可以由用戶自己來創造和使用,這個和ASP.NET里的user-defined controls差不多。

MVC, Model-View-Controller,是JSP的普遍開發架構,用來把JSP技術中的presentation, business logic, data storage三層清楚的分開。這樣使開發過程更佳清楚明了,便於開發,維護。常用的MVB架構有:Barracuda, Apache Struts和Spring。JSF,JavaServer Faces是一個由SUN官方開發的Framework,是模仿ASP.NET的event-driven開發模式,和ASP.NET非常相似。但SUN 並沒有讓JSF替代JSP,相反JSF的開發者少之又少,但是據說現在JSF或JSP配合RAD(AJAX)開發很流行(校內網就是這樣,而且結合Struts)。

4. ASP(Active Server Pages), ASP.NET 兩個分別是 動態網頁開發語言,動態網頁開發語言和結構
(1) 關於ASP的淘汰
ASP, Active Server Pages已經過時了, 但因為其出現的早,96年就有了,所以現在有些中小網站還用(但,使用最多最廣的是PHP,最初於95年現世。ASP是微軟第一代動態網頁開發語言,只能在Windows系統 + MS IIS伺服器平台下運行。

Wikipedia, Facebook, 網路等都用PHP,PHP學習的簡單度和ASP差不多;JSP稍微難點,JSP用的一般都是銀行,購物等安全性較高的網站,Google也用JSP)。但隨著開發者的各種需求,ASP以後可以被ASP.NET取代,因為微軟停止對其的一切技術維護與功能更新。ASP.NET是革新版本的ASP(注意是「革新版本」,而非「改進版本」),或者說是完全新一代的Dynamic Web Scripting。

ASP代表著傳統的dynamic web scripting,與ASP.NET沒什麼關系,學了確實也沒用。因為ASP不象CGI(Common Gateway Interface),CGI是動態網站製作的始祖,所有ASP,JSP,PHP什麼的都根據CGI演化而來,而且ASP,PHP,JSP都包含了些 CGI的東西;而ASP卻沒有被衍生出任何新技術,ASP.NET也不算基於ASP,只能說ASP.NET開發理念,library,功能完全是基於.NET的其它組件。

其實PHP,JSP,ASP明白其中一種,其它的都很容易學會了。如果非要學學傳統的dynamic web scripting,那就學學PHP吧,不比ASP難,但比ASP功能多,穩定性好,PHP5運行速度也比ASP快很多(JSP稍難因為要學點 Java)。學了PHP或JSP什麼的,對學ASP.NET有好處,而且還可以直接用PHP,JSP進行開發。去google差差英文資源,有評價PHP 最好的,有評價JSP最好的,還從沒有聽誰說過ASP最好。

ASP.NET畢竟在.NET中,所以ASP.NET還是有相當地位的。

(2). 關於ASP.NET的優勢
ASP.NET是微軟.NET Framework的一部分。伴隨.NET 1.0在2002的問世,ASP.NET也出現在動態網頁開發語言的家族中(與PHP,JSP,ColdFusion, Ruby, SHTML等並行了)。

功能上,ASP.NET比ASP有更強大的library, 更好的穩定性。 ASP.NET可以使用.NET Framework中所有組件(也就是說.NET能實現的,ASP.NET一樣能實現),功能上顯然強大於傳統功能單調的ASP。最強的技術支持Web Service, 而且有.NET的所有library做後盾。而且ASP.NET 在.NET 3.5中還有微軟專門為AJAX開發的功能--ASP.NET AJAX。

結構上,傳統的ASP把所有代碼混為一團,簡單的用<%%>把HTML和VBScript(或JScript)分開,實現動態輸出 HTML。因為ASP.NET模仿JSP的MVC網頁結構,微軟為ASP.NET開發了自己的Code-Behind結構,將 presentation(文件拓展名:.aspx)和business logic(文件拓展名:.cs或.vb等)分離。同時Code-Behind模式也實現了讓ASP.NET開發者用.NET中最普通Winform的開發模式來開發網站,方便非網頁開發者製作動態網站。所以ASP.NET更容易維護,比ASP更適合於Enterprise Level 的大網站開發。

由於ASP.NET比JSP,PHP等更接近於.NET Winform的開發。如Tree View, Datagrid View(即高級Table)等高級UI,都可以直接用ASP.NET中的Web Control來實現,這比傳統的使用JavaScript + XTHML + CSS的DHTML開發方式簡單不少,也更好維護。同時ASP.NET開發這可以定義自己的User Control,製作自己特別的一種UI(如網站LOGO,版權等部分),而且此User Control可以被存為.ascx文件,方便讓每一頁(.aspx)來使用。

運行速度上,ASP.NET模仿了JSP的預編譯機制(Pre-Compile)。使編譯好的代碼(MSIL語言)在網頁伺服器上運行。這樣比傳統的ASP,傳統PHP(PHP4以前版本)更快,因為傳統的ASP是直接運行開發者寫的Script,相當於每運行一次,就得編譯一次那麼慢。 ASP.NET可以用VB, C#, J#等所有.NET Framework的語言開發.(但其實每種語言做的東西都一樣... 就象山東話, 東北話, 寫出來都是中文:)

不過ASP.NET對出學者可能有點難. 因為它其實在模擬desktop application development,即Winforms開發的模式, 不象傳統的JSP,PHP, ASP這樣容易明白。傳統的Dynamic Server Scripting, 象PHP 5, 這是現在最簡單的, 最有效的了。( 那個JSP也不難. 如果有錢還可以考慮下Adobe ColdFusion。)

ASP.NET的新潮的Dynamic Server Scripting, 在其帶動下SUN也推出自己的JavaServer Faces (其實是拓展JSP,但JSF無法取代JSP), 和ASP.NET很象, 也有很多Web Control(JTable, JTree),同時JSF也曾強了對WEB SERVCIE的支持, 也很適合ENTERPRISE LEVEL 的網站。

(3). ASP與ASP.NET的優劣總結:
-- ASP已經被微軟停止更新;ASP.NET卻在.NET(1.0, 2.0, 3.0, 3.5)中突飛猛進;
-- ASP在96年出現,並沒有引領一個潮流,PHP,ColdFusion都出現於95年,引領了整個潮流;ASP.NET引領新的動態網站開發潮流,SUN的JSF(JavaServer Faces)就是與ASP.NET極其相似;
-- ASP大多被用在是中小網站;PHP被Wikipedia, Facebook, 網路所用,JSP被GOOGLE所用;
-- ASP不支持Web Service; ASP.NET支持Web Service。要是了解.NET中的Web Service在大組織系統中的重要性,就能立桿見影的看出差距
-- ASP開發AJAX比較麻煩;而ASP.NET專門用AJAX控制項,更方便。要是了解Web 2.0,那麼AJAX是什麼地位,就不用我說了吧。
-- ASP.NET模仿JSP,是pre-compile的;ASP不compile,直接運行Script的速度顯然沒有compile之後的快。
-- ASP.NET的唯一缺點,就是開發用的IDE--Visual Studio Professional比較貴(express版免費的功能太少);ASP的唯一優點是,其

學起來最簡單,跟PHP一樣簡單,比JSP簡單,更比ASP.NET簡單幾倍。

C. php 方面大家一般用哪些工具進行代碼加密

所謂 zend 加密,其實是預編譯
他將 php 代碼翻譯成了一種虛擬機器的指令集合(php 運行時也是這樣,但指令集不同)
所以 zend 解密,實際是反編譯
由於涉及到 php 內核機制,故不在本討論范圍之內
凡是比依賴加密環境的加密,實際都是擾碼——程序依據自身包含的演算法將自身還原成初始的代碼
這種程序最終執行的是還原後的代碼
所以你完全有可能在他運行期間,攔截到包含 還原後代碼 的字元串
由於擾碼的程序,本身是可執行的,所以還可以從語法分析入手
php 提供 token_get_all 函數,用於對 php 代碼串做詞法分析
可得到類似這樣的數組
Plain Text code? [32] => Array ( [0] => T_STRING [1] => T撾CB蜦RW仄JW豎IDFZZD蜺FBAADVAVQU頤HCF頕V厝VN游煁啙 [2] => 2 ) [33] => Array ( [0] => symbol [1] => ; [2] => 2 ) [34] => Array ( [0] => T_STRING [1] => T沃FBAEBAFAIBAQIA?腄AAHU領ABF萉A1FVB仡FB頔A庮葴 [2] => 2 )
依據他,就可對程序做出解析,從而反推出原始代碼
我使用

PHP code?1234<?php$source=file_get_contents('s.php');$tokens = token_get_all ($source ); print_r($tokens);

D. php代碼執行順序

php代碼理論上是從上到下的執行順序,但是也不是你這樣理解!

他最終的輸出內容,是根據你寫的php代碼的邏輯進行判斷輸出的!

比如:

$i=10;
if($i==20){
echo'您好!'
}else{
echo'太好了';
}

這段代碼執行順序確實是從上到下,但並不是說, echo '您好' 在echo '太好了' 的上面,那就一定會 輸出 「您好」這兩個字,

而是你看的邏輯

首先 $i 等於10,

所以 if ( $i == 20 )這個條件是不成立的

所以最終輸出的結果是 」太好了「3個字!


php所謂的代碼從上到下的執行順序,那是對於php伺服器端而言, 最終你在終端看到的結果, 是以代碼的邏輯思維為准!

E. 請教:php代碼執行順序

php是一種解釋型語言,如果沒有函數,那麼所有的代碼的確是從上而下的執行,但是如果有函數的話,在執行的時候,會先預編譯函數裡面的代碼段,也就是說,函數的定義可以寫在任何地方,只有在你調用的時候才起作用!

F. 怎樣才能用手機打開php網站

  1. php是預編譯語言,將你的代碼正確部署到一個有php發布環境的伺服器上,可以通過域名或者ip進行訪問的話,即為可以訪問了

  2. 用手機同樣的方法,直接訪問域名或者ip就是打開了php網站

G. 蘋果手機php格式如何轉換

需要打開系統設置,然後把系統文件轉換模式打開進行轉換就行。
蘋果手機php文件是預編譯的,需要使用apache,nginx等發布軟體發布才可以訪問。
在蘋果商城搜索一下web集成環境,mac下面有,ios上不清楚了,下載安裝的之後,將php文件放到www目錄下,就可以訪問了

H. 怎麼用PHP實現蘋果手機下載文件功能

php文件是預編譯的,需要使用apache,nginx等發布軟體發布才可以訪問 在蘋果商城搜索一下web集成環境, mac下面有,ios上不清楚了,下載安裝的之後,將php文件放到www目錄下,就可以訪問了

I. php直播源代碼做開發有什麼優勢

PHP(Hypertext Preprocessor),超文本預處理器,是一種通用性開源腳本語言。它的語法吸取了C語言、Java和Perl的優點,免費、快捷、高效,主要適用於Web開發領域。
目前,全球5000萬互聯網網站60%以上都在使用PHP技術,AlexaTOP500中國網站排名中有394家使用PHP,國內80%以上動態網站使用PHP進行開發,在Web後端語言中PHP全球市場語言佔有率達到80%。

像Facebook、Google、新浪、網路、YouTube、騰訊都在使用PHP。

PHP語言的八大優勢:

1、開放源代碼,所有的PHP源代碼事實上都可以得到。

2、免費性,php和其它技術相比,PHP本身免費且是開源代碼。

3、快捷性,程序開發快,運行快,技術本身學習快。嵌入於HTML:因為PHP可以被嵌入於HTML語言,它相對於其他語言。編輯簡單,實用性強,更適合初學者。

4、跨平台性強,由於PHP是運行在伺服器端的腳本,可以運行在UNIX、LINUX、WINDOWS、Mac OS下。

5、專業專注,PHP支持腳本語言為主,同為類C語言。

6、效率高PHP消耗相當少的系統資源。

7、面向對象,在php4,php5 中,面向對象方面都有了很大的改進,php完全可以用來開發大型商業程序。

8、圖像處理,用PHP動態創建圖像,PHP圖像處理默認使用GD2。且也可以配置為使用image magick進行圖像處理。

PHP的3種常用運行方式:CGI、FastCGI、APACHE2HANDLER。

1、CGI

CGI即通用網關介面(common gatewag interface),它是一段程序,通俗的講CGI就像是一座橋,把網頁和WEB伺服器中的執行程序連接起來,它把HTML接收的指令傳遞給伺服器的執行程序,再把伺服器執行程序的結果返還給HTML頁。CGI 的跨平台性能極佳,幾乎可以在任何操作系統上實現。

2、FastCGI

fast-cgi 是cgi的升級版本,FastCGI像是一個常駐(long-live)型的CGI,它可以一直執行著,只要激活後,不會每次都要花費時間去fork一 次。PHP使用PHP-FPM(FastCGI Process Manager),全稱PHP FastCGI進程管理器進行管理。

但每一個Web 請求PHP都必須重新解析php.ini、重新載入全部擴展並重初始化全部數據結構。使用FastCGI,所有這些都只在進程啟動時發生一次。一個額外的好處是,持續資料庫連接(Persistent database connection)可以工作。

3、APACHE2HANDLER

PHP作為Apache模塊,Apache伺服器在系統啟動後,預先生成多個進程副本駐留在內存中,一旦有請求出現,就立即使用這些空餘的子進程進行處理,這樣就不存在生成子進程造成的延遲了。這些伺服器副本在處理完一次HTTP請求之後並不立即退出,而是停留在計算機中等待下次請求。對於客戶瀏覽器的請求反應更快,性能較高。

如何保護自己的PHP代碼:

1、代碼混淆+加密

就是把代碼base64加密,然後對base64里的字元串進行字元串映射(隨機生成字典混淆)然後eval執行 這種百分之百能被破解還原。

2、混淆亂碼字元

代碼混淆變數還有一些東西 和1原理差不多,不過是把字元串換到 ascii 127到255之間非人類還有編輯器看不懂的字元 ,結果也是百分之百能被破解和還原,只是時間問題。

3、發放opcode

不分發代碼,而是先把PHP代碼預編譯,分發opcode,PHP7以後opcache深度集成這個東西 PHP7以後可以用這個方法保護源碼,但是也會被opcode反編譯回去 也會被破解。

4、混淆+加密+寫PHP擴展

混淆+加密+寫PHP擴展,但是只要是開源的PHP擴展都會被破解,除非自己寫加密演算法,把PHP代碼加密, 然後自己拿C語音寫擴展閉源, 別人不知道你加密思路和破解思路,被破解的可能性很小。

J. 如何實現php的安全最大化怎樣避免sql注入漏洞和xss跨站腳本攻擊漏洞

使用php安全模式

伺服器要做好管理,賬號許可權是否合理。

假定所有用戶的輸入都是「惡意」的,防止XSS攻擊,譬如:對用戶的輸入輸出做好必要的過濾

防止CSRF,表單設置隱藏域,post一個隨機字元串到後台,可以有效防止跨站請求偽造。

文件上傳,檢查是否做好效驗,要注意上傳文件存儲目錄許可權。

防禦SQL注入。

避免SQL注入漏洞

1.使用預編譯語句

2.使用安全的存儲過程

3.檢查輸入數據的數據類型

4.從資料庫自身的角度考慮,應該使用最小許可權原則,不可使用root或dbowner的身份連接資料庫。若多個應用使用同一個資料庫,也應該為資料庫分配不同的賬戶。web應用使用的資料庫賬戶,不應該有創建自定義函數,操作本地文件的許可權。

避免XSS跨站腳本攻擊

1.假定所有用戶輸入都是「邪惡」的

2.考慮周全的正則表達式

3.為cookie設置HttpOnly,防止cookie劫持

4.外部js不一定可靠

5.出去不必要的HTML注釋

6. 針對非法的HTML代碼包括單雙引號等,使用htmlspecialchars()函數。

熱點內容
雲頂演算法 發布:2025-01-10 22:10:07 瀏覽:988
收件伺服器有什麼作用 發布:2025-01-10 21:50:01 瀏覽:388
安卓70緩存 發布:2025-01-10 21:49:03 瀏覽:680
圖像檢索演算法 發布:2025-01-10 21:43:58 瀏覽:556
plsqlforupdate 發布:2025-01-10 21:43:50 瀏覽:914
如何設置健康碼快捷方式vivo安卓 發布:2025-01-10 21:39:52 瀏覽:500
安卓不兼容怎麼解決 發布:2025-01-10 21:37:02 瀏覽:29
linux字體大小 發布:2025-01-10 21:36:21 瀏覽:492
安卓手機的音量在哪裡調 發布:2025-01-10 21:32:11 瀏覽:613
路由器怎麼設置登錄密碼怎麼設置密碼 發布:2025-01-10 21:11:12 瀏覽:893