php是如何執(zhí)行的,PHP變量里的PHP代碼怎么執(zhí)行啊技術(shù)問(wèn)答

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括銀川網(wǎng)站建設(shè)、銀川網(wǎng)站制作、銀川網(wǎng)頁(yè)制作以及銀川網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,銀川網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到銀川省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

成都創(chuàng)新互聯(lián)公司是專業(yè)的包頭網(wǎng)站建設(shè)公司,包頭接單;提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行包頭網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

1,PHP變量里的PHP代碼怎么執(zhí)行啊 技術(shù)問(wèn)答

eval(\"echo 5566;\");記得給里面的也分號(hào)哦
eval相當(dāng)于自動(dòng)加了起始print: hello world
其實(shí)我不是很明白是什么意思。。路過(guò)頂一下。

2,如何運(yùn)行PHP

分類: 電腦/網(wǎng)絡(luò) >> 程序設(shè)計(jì) >> 其他編程語(yǔ)言 問(wèn)題描述: 我們要在電腦上運(yùn)運(yùn)ASP文件 只要裝IIS就可以。 哪要運(yùn)行PHP文件呢。該怎么辦!~ 解析: 如何安裝運(yùn)行php 1. Unix/Windows: 我的php.ini 文件應(yīng)該放在哪? UNIX下默認(rèn)它應(yīng)該放在 /usr/local/lib 目錄下。 這是它的 /lib. 很多人會(huì)在編譯時(shí)改變它,使用--with-config-file-path 標(biāo)志。 例如, 你可以這樣設(shè)它: --with-config-file-path=/etc 然后你可以復(fù)制源程序包里的 php.ini-dist 到 /etc/php.ini ,編輯它滿足你的本地化需求。 Windows下 php.ini默認(rèn)的路徑是 Windows 系統(tǒng)目錄. 如果你在使用 Apache webserver, php.ini 則最先在 Apaches 安裝目錄下被查找, 例如: c:\program files\apache group\apache. 這樣你可以有不同的 php.ini 對(duì)應(yīng)不同版本的 Apache(同一臺(tái)機(jī)器上)。 更多細(xì)節(jié)請(qǐng)查閱 configuration file. 2. Unix: 我安裝了 PHP, 但我每次加載一個(gè)文檔, 會(huì)得到下面的消息: Document Contains No Data ! 怎么回事? 這可能是因?yàn)槟愕?PHP 發(fā)生了core-dumping錯(cuò)誤。 查找你的服務(wù)器錯(cuò)誤日志文件,看看是否屬于這種情況。 然后報(bào)告這個(gè)錯(cuò)誤。如果你知道怎樣使用 gdb ,你可以提供一個(gè) backtrace 在你的錯(cuò)誤報(bào)告里。這將會(huì)對(duì)開發(fā)人員解決 這個(gè)問(wèn)題有很大幫助。如果你是在將PHP作為Apache模塊使用,那么請(qǐng)按下面的步驟做: 停止 d 進(jìn)程 gdb d 停止 d 進(jìn)程 > run -X -f /path/to/d.conf 瀏覽你剛才出錯(cuò)的 URL > run -X -f /path/to/d.conf 如果你還有 core dump, gdb 現(xiàn)在會(huì)通知你 打入: bt 在你的 bug report里應(yīng)該包含backtrace 。 這些會(huì)被發(fā)往 bugs.php/ 如果你的腳本使用了正則表達(dá)式函數(shù) (ereg() and friends), 你應(yīng)該確保你編譯 PHP 和 Apache 用的是同一個(gè)正則表達(dá)式包。 在 PHP 和 Apache 1.3.x 這個(gè)過(guò)程是自動(dòng)進(jìn)行的。 3. Unix: 我使用 RPMS 安裝 PHP , 但Apache 不支持 PHP頁(yè)面! 怎么辦? 假設(shè)你安裝了 Apache 和 PHP(從 RPM ) , 你需要反注釋或者增加一些行在你的 .conf 文件里: # Extra ModulesAddModule mod_php.cAddModule mod_php3.cAddModule mod_perl.c# Extra ModulesLoadModule php_module modules/mod_php.soLoadModule php3_module modules/libphp3.so /* for PHP 3 */LoadModule php4_module modules/libphp4.so /* for PHP 4 */LoadModule perl_module modules/libperl.so And add: AddType application/x-d-php3 .php3 /* for PHP 3 */AddType application/x-d-php .php /* for PHP 4 */ ... 到全局域里, 或者到你想要的 支持PHP的虛擬域里。 4. 我使用 RPMS 安裝 PHP 3 , 但是它沒(méi)有我需要的數(shù)據(jù)庫(kù)選項(xiàng)支持! 我該怎么辦? 因?yàn)?PHP 3 內(nèi)建支持的關(guān)系, 編譯一個(gè)完整的可適于所有應(yīng)用的 PHP RPM是相當(dāng)困難的。 在 PHP 4有談到這點(diǎn)。 對(duì) PHP 3, 我們只好建議你使用INSTALL.REDHAT (在 PHP包里)描述的機(jī)制。 如果你一定要使用 RPM 版的 PHP 3, 讀... RPM 包管理器設(shè)置 RPMS 簡(jiǎn)單的安裝,不帶數(shù)據(jù)庫(kù)支持 and 因?yàn)镽PMS 使用 /usr/ 而不是標(biāo)準(zhǔn)的 /usr/local/ 目錄存放文件. 你需要告訴 RPM 文件你要支持哪種數(shù)據(jù)庫(kù)以及它們的最上級(jí)目錄的位置。 下面的例子將解釋在Apache模式下怎樣支持通行的數(shù)據(jù)庫(kù)Mysql. 當(dāng)然所有的這些可以稍作修改,以支持其它的PHP支持的數(shù)據(jù)庫(kù)。我們假設(shè)你安裝了 MySQL and Apache ,完全是用 RPMS 安裝的。 首先,移去 mod_php3 : rpm -e mod_php3 然后取得rpm包并安裝, 不是 --重編譯 rpm -Uvh mod_php3-3.0.5-2.src.rpm 編輯/usr/src/redhat/SPECS/mod_php3.spec 文件 在 %build 一節(jié)里增加你想要的數(shù)據(jù)庫(kù)支持, 以及路徑信息。 對(duì) MySQL 你應(yīng)該增加: --with-mysql=/usr \ %build 節(jié)看起來(lái)象: ./configure --prefix=/usr \ --with-apxs=/usr/ *** in/apxs \ --with-config-file-path=/usr/lib \ --enable-debug=no \ --enable-safe-mode \ --with-exec-dir=/usr/bin \ --with-mysql=/usr \ --with-system-regex 改動(dòng)完成后,象下面這樣重編rpm : rpm -bb /usr/src/redhat/SPECS/mod_php3.spec Then install the rpm rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm 重啟 Apache,你已經(jīng)得到了rpm下的Mysq l的支持。 注意到這種做法比你重新得到一個(gè) PHP 3 的tarball 代碼,按照 INSTALL.REDHAT 的指引一步一步做要容易得多。 5. Unix: 我用 FrontPage 擴(kuò)展包對(duì)Apache打了補(bǔ)丁, 忽然 PHP 停止工作。 是PHP 和 Apache FrontPage 包不兼容嗎 ? 不是, PHP 和 FrontPage擴(kuò)展包運(yùn)行得很好.。問(wèn)題是FrontPage 包修改了幾個(gè)Apache 結(jié)構(gòu)參數(shù),而PHP要用到它們.在FrontPage擴(kuò)展包被打上后, 重新編譯 PHP (使用 make clean ; make ) ,會(huì)解決這個(gè)問(wèn)題。 6. Unix/Windows: 我安裝了PHP,但在瀏覽器里看我的PHP頁(yè)面時(shí),空白一片。 在瀏覽器里用 查看源文件 看你的腳本,你可能會(huì)發(fā)現(xiàn)你看到的是源程序。 這表示 web server 并沒(méi)有送腳本到PHP去執(zhí)行。肯定是服務(wù)器配置上哪兒出了錯(cuò)。 仔細(xì)檢查PHP安裝的 server 配置。 7. Unix/Windows: 我安裝了PHP,但在瀏覽器里看我的 PHP頁(yè)面時(shí),我得到一個(gè) server 500 error。 這是服務(wù)器在運(yùn)行 PHP 時(shí)發(fā)生了錯(cuò)誤。 為了看到可讀的錯(cuò)誤信息,在命令行,改變目錄到 (php.exe Windows)所在目錄, 運(yùn)行 php -i. 如果有任何問(wèn)題,詳細(xì)的錯(cuò)誤信息就顯示出來(lái)了,它會(huì)告訴你下一步該做什么。 如果你得到滿屏的HTML代碼 (phpinfo() 函數(shù)的輸出), 那么PHP工作正常,這個(gè)錯(cuò)誤就是由于服務(wù)器配置引發(fā)的,應(yīng)該仔細(xì)檢查。 8. 某些操作系統(tǒng): 我安裝PHP沒(méi)出錯(cuò),可是我啟動(dòng)Apache時(shí),得到一個(gè) undefined symbol errors: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/d Undefined symbols: _press _unpress 這個(gè)問(wèn)題其實(shí)與 PHP 無(wú)關(guān), 而與 MySQL 客戶端庫(kù)有關(guān)。 --with-zlib,有些操作系統(tǒng)需要,而有些不需要。MySQL FAQ已經(jīng)講述了這個(gè)問(wèn)題。 9. Windows: 我安裝了PHP,但在瀏覽器里看我的PHP頁(yè)面, 得到如下錯(cuò)誤: cgi error: The specified CGI application mi *** ehaved by not returning a plete set of HTTP headers. The headers it did return are: 這是 PHP 根本沒(méi)有產(chǎn)生任何輸出。 為了看到可讀的錯(cuò)誤信息,在命令行,改變目錄到 (php.exe Windows)所在目錄, 運(yùn)行 php -i. 如果有任何問(wèn)題,詳細(xì)的錯(cuò)誤信息就顯示出來(lái)了,它會(huì)告訴你下一步該做什么。 如果你得到滿屏的HTML代碼 (phpinfo() 函數(shù)的輸出), 那么PHP工作正常。 一旦PHP在命令行模式下工作,再看看你的腳本程序, 它還是失敗,可能是因?yàn)橐韵略? 你的PHP腳本的權(quán)限許可。 php.exe, php4ts.dll, php.ini 或者任何你可能裝入的PHP文件,它樣都必須能被匿名 inter 用戶 ISUR_ 訪問(wèn)。 腳本文件根本不存在(或者不是你認(rèn)為的位置。)請(qǐng)注意在IIS里,你能夠阻塞這個(gè)錯(cuò)誤,做法是在設(shè)置腳本映射目錄時(shí), 選上 check file exists 框。這樣如果腳本不存在,服務(wù)器會(huì)返回一個(gè)404錯(cuò)誤。 這樣做也有其它的一些好處, 就是IIS僅為你做經(jīng)過(guò)授權(quán)的操作。 10. Windows: 我嚴(yán)格按照install的要求做,可是還是不能讓我的php在IIS下工作。 確定任何想要運(yùn)行PHP的用戶有操作php.exe的權(quán)限! IIS 使用匿名的inter用戶,它是在IIS安裝時(shí)系統(tǒng)自動(dòng)增加的。 這個(gè)用戶需要操作 php.exe的權(quán)限. 還有,任何需要授權(quán)的用戶也必須有訪問(wèn) php.exe的權(quán)限。 在 IIS4下,你要告訴它PHP是一個(gè)腳本引擎。

3,php語(yǔ)言的執(zhí)行過(guò)程

php執(zhí)行順序是從上往下執(zhí)行的。執(zhí)行前先從上往下檢查有無(wú)語(yǔ)法錯(cuò)誤,像少分號(hào)括號(hào)什么的,沒(méi)有則將整個(gè)程序讀入內(nèi)存,然后在執(zhí)行內(nèi)存中的程序。所以一旦執(zhí)行起來(lái),如果程序還沒(méi)執(zhí)行完,你改程序不會(huì)起作用的
有啊 從上到下 有include或者require什么的 按順序下來(lái)
php執(zhí)行順序是又上到下往下執(zhí)行的。

4,如何執(zhí)行PHP代碼

用ssh連接需要有個(gè)連接工具,如:SSH Secure Shell;除了知道ip還需要知道具有至少讀寫權(quán)限的帳號(hào)名和密碼(通常虛擬主機(jī)都會(huì)提供),還有端口號(hào)(默認(rèn)22),你通過(guò)ssh可以把你寫好的php上傳到apache的站點(diǎn)根目錄下(默認(rèn)/var/local/apache/htdocs/ 或/var/www/html/)就可以執(zhí)行.
php先執(zhí)行。整個(gè)運(yùn)行是這樣的:客戶端發(fā)送請(qǐng)求到服務(wù)器,服務(wù)器找到請(qǐng)求的文件(在服務(wù)器上),判斷請(qǐng)求的文件類型。如果遇到php的代碼類型 就把代碼發(fā)送給php讓php先翻譯成html,再由服務(wù)器把html發(fā)送到瀏覽器上。瀏覽器開始解釋html,遇到j(luò)avascript再解釋javascript。最后完成整個(gè)流程。。

5,PHP是如何執(zhí)行代碼解析過(guò)程的

就PHP語(yǔ)言來(lái)說(shuō),它也是一組符合一定規(guī)則的約定的指令。 在編程人員將自己的想法以php語(yǔ)言實(shí)現(xiàn)后,通過(guò)PHP的虛擬機(jī)(確切的來(lái)說(shuō)應(yīng)該是PHP的語(yǔ)言引擎Zend)將這些PHP指令轉(zhuǎn)變成C語(yǔ)言 (可以理解為更底層的一種指令集)指令,而c語(yǔ)言又會(huì)轉(zhuǎn)變成匯編語(yǔ)言, 最后匯編語(yǔ)言將根據(jù)處理器的規(guī)則轉(zhuǎn)變成機(jī)器碼執(zhí)行。這是一個(gè)更高層次抽象的不斷具體化,不斷細(xì)化的過(guò)程。
php代碼的編譯分4個(gè)步驟(下面4步參考依據(jù):chenglin博客); 1.scanning(lexing) 將php代碼轉(zhuǎn)換為語(yǔ)言片段(tokens);2.parsing 將tokens轉(zhuǎn)換成簡(jiǎn)單而有意義的表達(dá)式;3.compilation 將表達(dá)式編譯成opocdes;4.execution 按順序執(zhí)行opcodes,每次一條,從而實(shí)現(xiàn)php腳本的功能。

6,Zend后的PHP是如何執(zhí)行的

那個(gè)是已經(jīng)加密、混雜變量名后的PHP的OpCode碼執(zhí)行過(guò)程就是解密,然后用Zend VM運(yùn)行解密后的OpCode并不是像1L所說(shuō)的是二進(jìn)制代碼。針對(duì)最近Zend公司對(duì)加密模式調(diào)整補(bǔ)充一些東西:如果要讓Zend加密的代碼在PHP 5.3.x上運(yùn)行,必須選擇針對(duì)PHP 5.3加密,舊版本的加密文件不能在PHP 5.3上運(yùn)行。同時(shí),如果是Windows平臺(tái)還必須選擇PHP的NTS版本。對(duì)應(yīng)的Zend解密插件是Zend Loader。需要全部手工安裝。獲取ZendLoader.dll之后修改PHP文件增加以下兩行:zend_extension="(ZendLoader.dll的路徑)"zend_loader.enable=1而如果要讓Zend加密的代碼在PHP 5.3之前的平臺(tái)上運(yùn)行,必須選擇針對(duì)舊版PHP加密。針對(duì)PHP 5.3加密的代碼是不能在PHP 5.3之前的平臺(tái)上運(yùn)行的。同時(shí),如果是Windows平臺(tái)還必須選擇PHP的TS版本。對(duì)應(yīng)的Zend解密插件是Zend Optimizer。有安裝程序,需要自行安裝。
需要zend環(huán)境支持,編譯后的php是以二進(jìn)制文件被執(zhí)行的??梢越饷?但別問(wèn)我原因 我不知道
需要Zend環(huán)境支持,編譯后的PHP是以二進(jìn)制文件被執(zhí)行的。

新聞名稱:php是如何執(zhí)行的,PHP變量里的PHP代碼怎么執(zhí)行啊技術(shù)問(wèn)答
標(biāo)題來(lái)源:http://muchs.cn/article40/epdhho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)建站公司、網(wǎng)站設(shè)計(jì)、搜索引擎優(yōu)化小程序開發(fā)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司