導航:首頁 > 編程語言 > php550

php550

發布時間:2022-07-27 04:50:30

㈠ 在測試php代碼時,顯示指定的網頁無法訪問,是什麼原因

IIS狀態代碼的含義
概要
當用戶試圖通過HTTP或文件傳輸協議(FTP)訪問一台正在運行Internet信息服務(IIS)的伺服器上的內容時,IIS返回一個表示該請求的狀態的數字代碼。該狀態代碼記錄在IIS日誌中,同時也可能在Web瀏覽器或FTP客戶端顯示。狀態代碼可以指明具體請求是否已成功,還可以揭示請求失敗的確切原因。
更多信息
日誌文件的位置
在默認狀態下,IIS把它的日誌文件放在%WINDIR\System32\Logfiles文件夾中。每個萬維網(WWW)站點和FTP站點在該目錄下都有一個單獨的目錄。在默認狀態下,每天都會在這些目錄下創建日誌文件,並用日期給日誌文件命名(例如,exYYMMDD.log)。
HTTP
1xx-信息提示
這些狀態代碼表示臨時的響應。客戶端在收到常規響應之前,應准備接收一個或多個1xx響應。
100-繼續。
101-切換協議。
2xx-成功
這類狀態代碼表明伺服器成功地接受了客戶端請求。
200-確定。客戶端請求已成功。
201-已創建。
202-已接受。
203-非權威性信息。
204-無內容。
205-重置內容。
206-部分內容。
3xx-重定向
客戶端瀏覽器必須採取更多操作來實現請求。例如,瀏覽器可能不得不請求伺服器上的不同的頁面,或通過代理伺服器重復該請求。
301-對象已永久移走,即永久重定向。
302-對象已臨時移動。
304-未修改。
307-臨時重定向。
4xx-客戶端錯誤
發生錯誤,客戶端似乎有問題。例如,客戶端請求不存在的頁面,客戶端未提供有效的身份驗證信息。400-錯誤的請求。
401-訪問被拒絕。IIS定義了許多不同的401錯誤,它們指明更為具體的錯誤原因。這些具體的錯誤代碼在瀏覽器中顯示,但不在IIS日誌中顯示:
401.1-登錄失敗。
401.2-伺服器配置導致登錄失敗。
401.3-由於ACL對資源的限制而未獲得授權。
401.4-篩選器授權失敗。
401.5-ISAPI/CGI應用程序授權失敗。
401.7–訪問被Web伺服器上的URL授權策略拒絕。這個錯誤代碼為IIS6.0所專用。
403-禁止訪問:IIS定義了許多不同的403錯誤,它們指明更為具體的錯誤原因:
403.1-執行訪問被禁止。
403.2-讀訪問被禁止。
403.3-寫訪問被禁止。
403.4-要求SSL。
403.5-要求SSL128。
403.6-IP地址被拒絕。
403.7-要求客戶端證書。
403.8-站點訪問被拒絕。
403.9-用戶數過多。
403.10-配置無效。
403.11-密碼更改。
403.12-拒絕訪問映射表。
403.13-客戶端證書被吊銷。
403.14-拒絕目錄列表。
403.15-超出客戶端訪問許可。
403.16-客戶端證書不受信任或無效。
403.17-客戶端證書已過期或尚未生效。
403.18-在當前的應用程序池中不能執行所請求的URL。這個錯誤代碼為IIS6.0所專用。
403.19-不能為這個應用程序池中的客戶端執行CGI。這個錯誤代碼為IIS6.0所專用。
403.20-Passport登錄失敗。這個錯誤代碼為IIS6.0所專用。
404-未找到。
404.0-(無)–沒有找到文件或目錄。
404.1-無法在所請求的埠上訪問Web站點。
404.2-Web服務擴展鎖定策略阻止本請求。
404.3-MIME映射策略阻止本請求。
405-用來訪問本頁面的HTTP謂詞不被允許(方法不被允許)
406-客戶端瀏覽器不接受所請求頁面的MIME類型。
407-要求進行代理身份驗證。
412-前提條件失敗。
413–請求實體太大。
414-請求URI太長。
415–不支持的媒體類型。
416–所請求的范圍無法滿足。
417–執行失敗。
423–鎖定的錯誤。
5xx-伺服器錯誤
伺服器由於遇到錯誤而不能完成該請求。
500-內部伺服器錯誤。
500.12-應用程序正忙於在Web伺服器上重新啟動。
500.13-Web伺服器太忙。
500.15-不允許直接請求Global.asa。
500.16–UNC授權憑據不正確。這個錯誤代碼為IIS6.0所專用。
500.18–URL授權存儲不能打開。這個錯誤代碼為IIS6.0所專用。
500.100-內部ASP錯誤。
501-頁眉值指定了未實現的配置。
502-Web伺服器用作網關或代理伺服器時收到了無效響應。
502.1-CGI應用程序超時。
502.2-CGI應用程序出錯。application.
503-服務不可用。這個錯誤代碼為IIS6.0所專用。
504-網關超時。
505-HTTP版本不受支持。
FTP
1xx-肯定的初步答復
這些狀態代碼指示一項操作已經成功開始,但客戶端希望在繼續操作新命令前得到另一個答復。
110重新啟動標記答復。
120服務已就緒,在nnn分鍾後開始。
125數據連接已打開,正在開始傳輸。
150文件狀態正常,准備打開數據連接。
2xx-肯定的完成答復
一項操作已經成功完成。客戶端可以執行新命令。200命令確定。
202未執行命令,站點上的命令過多。
211系統狀態,或系統幫助答復。
212目錄狀態。
213文件狀態。
214幫助消息。
215NAME系統類型,其中,NAME是AssignedNumbers文檔中所列的正式系統名稱。
220服務就緒,可以執行新用戶的請求。
221服務關閉控制連接。如果適當,請注銷。
225數據連接打開,沒有進行中的傳輸。
226關閉數據連接。請求的文件操作已成功(例如,傳輸文件或放棄文件)。
227進入被動模式(h1,h2,h3,h4,p1,p2)。
230用戶已登錄,繼續進行。
250請求的文件操作正確,已完成。
257已創建「PATHNAME」。
3xx-肯定的中間答復
該命令已成功,但伺服器需要更多來自客戶端的信息以完成對請求的處理。331用戶名正確,需要密碼。
332需要登錄帳戶。
350請求的文件操作正在等待進一步的信息。
4xx-瞬態否定的完成答復
該命令不成功,但錯誤是暫時的。如果客戶端重試命令,可能會執行成功。421服務不可用,正在關閉控制連接。如果服務確定它必須關閉,將向任何命令發送這一應答。
425無法打開數據連接。
426Connectionclosed;transferaborted.
450未執行請求的文件操作。文件不可用(例如,文件繁忙)。
451請求的操作異常終止:正在處理本地錯誤。
452未執行請求的操作。系統存儲空間不夠。
5xx-永久性否定的完成答復
該命令不成功,錯誤是永久性的。如果客戶端重試命令,將再次出現同樣的錯誤。500語法錯誤,命令無法識別。這可能包括諸如命令行太長之類的錯誤。
501在參數中有語法錯誤。
502未執行命令。
503錯誤的命令序列。
504未執行該參數的命令。
530未登錄。
532存儲文件需要帳戶。
550未執行請求的操作。文件不可用(例如,未找到文件,沒有訪問許可權)。
551請求的操作異常終止:未知的頁面類型。
552請求的文件操作異常終止:超出存儲分配(對於當前目錄或數據集)。
553未執行請求的操作。不允許的文件名。
常見的FTP狀態代碼及其原因
150-FTP使用兩個埠:21用於發送命令,20用於發送數據。狀態代碼150表示伺服器准備在埠20上打開新連接,發送一些數據。
226-命令在埠20上打開數據連接以執行操作,如傳輸文件。該操作成功完成,數據連接已關閉。
230-客戶端發送正確的密碼後,顯示該狀態代碼。它表示用戶已成功登錄。
331-客戶端發送用戶名後,顯示該狀態代碼。無論所提供的用戶名是否為系統中的有效帳戶,都將顯示該狀態代碼。
426-命令打開數據連接以執行操作,但該操作已被取消,數據連接已關閉。
530-該狀態代碼表示用戶無法登錄,因為用戶名和密碼組合無效。如果使用某個用戶帳戶登錄,可能鍵入錯誤的用戶名或密碼,也可能選擇只允許匿名訪問。如果使用匿名帳戶登錄,IIS的配置可能拒絕匿名訪問。
550-命令未被執行,因為指定的文件不可用。例如,要GET的文件並不存在,或試圖將文件PUT到您沒有寫入許可權的目錄。
對HTTP404狀態碼的理解
HTTP 404 錯誤意味著鏈接指向的網頁不存在,即原始網頁的URL失效,這種情況經常會發生,很難避免,比如說:網頁URL生成規則改變、網頁文件更名或移動位置、導入鏈接拼寫錯誤等,導致原來的URL地址無法訪問;當Web 伺服器接到類似請求時,會返回一個404 狀態碼,告訴瀏覽器要請求的資源並不存在。但是,Web伺服器默認的404錯誤頁面,無論Apache還是IIS,均十分簡陋、呆板且對用戶不友好,無法給用戶提供必要的信息以獲取更多線索,無疑這會造成用戶的流失。
因此,很多網站均使用自定義404錯誤的方式以提供用戶體驗避免用戶流失。一般而言,自定義404頁面通用的做法是在頁面中放置網站快速導航鏈接、搜索框以及網站提供的特色服務,這樣可以有效的幫助用戶訪問站點並獲取需要的信息。
404錯誤的處理方式
(一)定製404錯誤頁面的基本原則
首先應明確的是,404錯誤應工作在伺服器級而不是網頁級。對定製使用動態頁面如PHP腳本類型的404頁時,必須確保在PHP執行前伺服器已經順利地送出「404」狀態碼,不然,一旦執行到了ISAPI級別,返回的狀態碼便只能是「200」或其他如「302」之類的重定向狀態碼了。
其次,在自定義網站的404錯誤頁面時,對設置的錯誤頁面URL鏈接應使用相對路徑而不是絕對路徑,而且自定義404頁面應該放在網站根目錄下。盡管無效鏈接可能是多種形式的URL,但當發生404訪問錯誤時,WEB伺服器會自動將其轉到自定義的當404錯誤頁中,這跟URL的形似沒有關系。
(二)Apache下設置404錯誤頁面
為Apache Server設置 404錯誤頁面的方法很簡單,只需在.htaccess 文件中加入如下內容即可:
ErrorDocument 404 /notfound.php
注意:
1.切記不要將404錯誤轉向到網站主頁,否則可能會導致主頁在搜索引擎中消失
2.切記不要使用絕對URL(例如: 形式),如果使用絕對URL返回的狀態碼是「302」+「200」(已測試)
(三)IIS/ASP.net下設置404錯誤頁面
首先,修改應用程序根目錄的設置,打開 「web.config」 文件編輯,在其中加入如下內容:
<configuration>
<system.web>
<customErrors mode=」On」 defaultRedirect=」error.asp」>
<error statusCode=」404〃 redirect=」notfound.asp」 />
</customErrors>
</system.web>
</configuration>
註:上文例中「error.asp」為系統默認的404頁面,「notfound.asp」為自定義的404頁面,使用時請修改相應文件名。
然後,在自定義的404頁面「notfound.asp」中加入:
<%
Response.Status = 「404 Not Found」
%>
這樣,便可以保證IIS能夠正確地返回「404」狀態碼
(四)在IIS/ASP.net下設置404靜態頁面
設置靜態404錯誤頁面的方法則比較簡單,在IIS管理器中右鍵單擊要管理的網站,打開「屬性」中的「自定義錯誤信息」頁,為「404」設定相應的錯誤信息頁即可

㈡ 如何安裝部署php網站

Apache 的安裝

1 點擊apahce安裝包

2 接受協議

3 下面3項隨便填即可
apache 監聽80 埠.如果iis用了80埠,修改iis埠或者apache埠,以免沖突

4 這里默認的是 typical,建議選custom,點擊next.

5 這里可用修改安裝路徑,注意安裝路徑不能含中文.

6 點擊install開始安裝

7 安裝完成後在瀏覽器里打入
如果可以看到這個頁面,證明apache安裝成功,已經可以解釋靜態頁面了

MySQL 的安裝

1 點擊MySQL安裝包

2 默認是Typical,如果想修改安裝路徑的話也可以選擇custom.
注意:安裝mysql的路徑中,不能含有中文!

3 點擊intall開始安裝

4 跳過注冊

5 是否現在就配置 MySQL.也可以之後在開始菜單的configuration wizard 進行配置.
這里是現在進行配置

6 選擇Detailed Configuration(詳細設置),點Next繼續

7 下面這個選項是選擇mysql應用於何種類型,第一種是開發伺服器,
將只用盡量少的內存,第二種是普通WEB伺服器,將使用中等數量內存,
最後一種是這台伺服器上面只運行MySQL資料庫,將佔用全部的內存.
用戶可根據自己的需求,選擇選項.這里只選擇開發伺服器,點Next繼續

8 下面是選擇資料庫用途,第一種是多功能用途,
將把資料庫優化成很好的innodb(事務)存儲類型和高效率的myisam(非事務)存儲類型,
第二種是只用於事務處理類型,最好的優化innodb,但同時也支持myisam,只有myisam才支持全文索引
最後一種是簡單的網路開發,適合於簡單的應用,只有不支持事務的myisam類型是被支持的.
一般選擇第一種多功能的.

9 下面是選擇InnodDB的數據存放位置,一般默認好了,不需要改動
(如果要修改數據保存路徑,也可用在安裝後修改my.ini的datadir的值)

10 下面是選擇MySQL允許的最大連接數,第一種是最大20個連接並發數,
第二種是最大550個並發連接數,最後 一種是自定義,你可以根據自己的需要選擇.
這里選擇第一個
http://su.100steps.net/xxblog/uploadfiles/php-16.gif11 下面是是否運行網路鏈接.這里選擇復選框.資料庫監聽的埠,一般默認是3306,
如果改成其他埠,以後連接資料庫的時候都要記住修改的埠,否則不能連接mysql資料庫,
比較麻煩,這里不做修改,用mysq的默認埠:3306

12 這一步設置mysql的默認編碼,默認是latin1,也是標準的編碼.第二種是UTF8,第三種是手動設置.
編碼是版本4.1以上引入的.如果要用原來資料庫的數據,最好能確定原來資料庫用的是什麼編碼,如果這里設置的編碼
和原來資料庫數據的編碼不一致,在使用的時候可能會出現亂碼.建議使用latin1標准編碼

13 這一步是是否要把mysql設置成windows的服務,一般選擇設成服務,
這樣以後就可以通過服務中啟動和關閉mysql資料庫了.推薦:下面的復選框也勾選上,
這樣,在cmd模式下,不必非到mysql的bin目錄下執行命令.在命令行下咨詢可以執行文件

14 這一步是設置mysql的超級用戶密碼,這個超級用戶非常重要,
對mysql擁有全部的許可權,請設置好並牢記超級用戶的密碼,
下面有個復選框是表示創建一個匿名賬號,這會使資料庫系統不安全.
如果有這個需求,也請勾選.

15 點擊 Execute進行安裝

16 點擊finish完成安裝

㈢ php 發送郵件 要怎麼配置

在Windows平台下使用mail函數發送郵件,記錄如下

php.ini的設置:

SMTP = localhost
smtp_port = 25
sendmail_from=你的設定值

另外,還需要安裝IIS自帶的SMTP,在SMTP虛擬伺服器上點擊右鍵,在彈出的屬性窗口裡進行如下設置:
點擊訪問選項卡,再點擊中繼,在彈出的窗口出點擊添加,然後選單台計算機,添加IP地址為 127.0.0.1。然後一路確定返回。(不進行此項設置,可能會出現:SMTP server response: 550 5.7.1 Unable to relay for [email protected]。。。的錯誤)

這樣就可以使用mail函數了

<?php
mail("[email protected]","Test mail function of PHP.","hello world!");
?>

㈣ 用PHP程序寫,顯示500到1000,按照時間的變化而變化

echo intval((substr(time(),-5)%30000)/60)+500;
每60秒一變 范圍是500-10000

㈤ 求大佬告知我的問題出在哪,tp框架,mpPHP_EMAIL也提示找不到,是我的.env文件創建錯了碼

第一次出現的時候,我以為是目錄不可寫,檢查了半天沒發現問題,於是各種網路,才發現別人也有遇得類似問題,就是跨頁傳遞session為空。(溫馨提示:不喜歡聽流水賬的可以略過以下兩段,直接看下面的解決措施。)我調試了一下程序,將登陸跳轉後的頁面print_r($_SESSION),果然為空值。最後查找資料說是要把use_trans_sid 的值改為 1,於是在配置文件中加了一行:'SESSION_OPTIONS'=> array('use_trans_sid'=>1),然後再登陸的時候就好了。

第二次,換到另一個環境的時候又出現問題了,於是我又到網上查資料,很可惜,這次找了半天都沒有解決,瞬間感慨國內編程這一塊的資源匱乏程度還是挺嚴重的啊,所以我只有自己摸索了。首先排除目錄許可權和其他一系列問題後,我意識到這次的問題應該也是php設置的問題。於是我把本地的phpinfo和出問題那台虛擬空間的phpinfo輸出來,一行一行比較session那塊選項。最後我發現有一行配置不一樣,如下圖:

這里的session.use_only_cookies的值是on,也就是1,而我本地的是off。我馬上意識到是這里的問題了,於是又在配置文件中加了一個參數'SESSION_OPTIONS'=> array('use_trans_sid'=>1,'use_only_cookies'=>0),同時還要在thinkphp/Common/functions.php的550行左右加上一句if(isset($name['use_only_cookies'])) ini_set('session.use_only_cookies', $name['use_only_cookies']?1:0); 因為thinkphp默認沒有定義這個選項。瞬間,又能登陸了。

session.use_only_cookies

經過這兩次的問題,最後,代瀟瑞博客總結出一下幾點導致不能正常登陸、session傳值為空的原因:

1. 首先檢查存放session的目錄是否可寫。

2. 如果您用的是空間的話,有些空間文件數目上線也有限制,比如一個200MB的空間,空間單個文件數不能超過45000,當文件滿後,就不能在寫入文件了,如果你session路徑設置在web目錄下,也就會影響session無法寫入了。

3. 就是將「use_trans_sid」的值設為1,可以在配置文件中加入「SESSION_OPTIONS' => array('use_trans_sid'=>1)」這行代碼,讓session可以跨頁傳值。

4. 這個是最不容易發現的,我找了好半天,網上也沒有提到這個。也是session的設置選項問題,在第3點的基礎上加一個「'use_only_cookies'=>0」選項,即:「SESSION_OPTIONS' => array('use_only_cookies'=>0,'use_trans_sid'=>1)」,同時還要在thinkphp/Common/functions.php的550行左右加上一句if(isset($name['use_only_cookies'])) ini_set('session.use_only_cookies', $name['use_only_cookies']?1:0); 因為thinkphp默認沒有定義這個選項。

不能正常登陸、session傳值為空的問題大概就是這幾個因素了,如果還有其他原因,我會再次的補充完善。如果您有什麼不清楚的,也歡迎與代瀟瑞博客交流。

㈥ PHP正則替換

回答者「gpgkd906」的方法很好,學習了,我也把較初級的辦法貼一下,供大家參考:
<?php
$content='<img style="cursor: pointer" border="0" alt="復地紫城外景" width="550" height="437" onclick="window.open(\'/uploads/allimg/110504/172_110504113610_1.jpg\')" src="/uploads/allimg/110504/172_110504113610_1.jpg" />';

//php中(\S+)要補上一個加號變成兩個,即(\S++)
$s2=preg_replace("/(<img[^>]+(?:src=))(\S++)([^>]*>)/iU","<a href=$2>$1 $2 $3</a>",$content);
echo $s2."\r\n\r\n\r\n"; ///輸出第一遍出理結果

//1、如果IMG中有ALT標記,則自動給A鏈接里加一個TITLE標記,其內容用ALT的。
$s2=preg_replace("/(<a[^>]+)(><img[^>]+?)alt=(\S++)([^>]+>)/iU","$1 title=$3$2$4",$s2);

//2、去掉IMG里的onclick標記
$s2=preg_replace("/(<a[^>]+)(><img[^>]+?)(onclick=\S++)([^>]+>)/iU","$1$2$4",$s2);
echo $s2."\r\n\r\n";
?>

㈦ 請 php 簡單 產品分類代碼

商品分類展示
設置商品分類顯示不僅可使該購物系統的所有商品都分門別類的顯示出來,而且為用戶選擇商品提供了很大的方便。首先應該建立一個單獨的type表用來存儲商品大類,之後在shangpin表中增加一個typeid欄位,該欄位中存儲的內容是商品大類id值,利用這個值就可以確定該商品屬於那一類。商品分類展示是在showfenlei.php中完成的,代碼如下:
<!--*******************************showfenlei.php*******************************-->
<?php
include("top.php");
?>
<table width="800" height="438" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="200" height="438" valign="top" bgcolor="#E8E8E8"><div align="center">
<?php include("left.php");?>
</div></td>
<td width="10" background="images/line2.gif"></td>
<td width="590" valign="top"><table width="590" height="20" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="left">
<?php
$sql=mysql_query("select * from type order by id desc",$conn);
$info=mysql_fetch_object($sql);
if($info==false)
{
echo "本站暫無商品!";
}
else
{
do
{
echo "<a href='showfenlei.php?id=".$info->id."'>".$info->typename."</a>";
}
while($info=mysql_fetch_object($sql));
}
?>
</div></td>
</tr>
</table>
<?php
if($_GET[id]=="")
{
$sql=mysql_query("select * from type order by id desc limit 0,1",$conn);
$info=mysql_fetch_array($sql);
$id=$info[id];
}
else
{
$id=$_GET[id];
}
$sql1=mysql_query("select * from type where id=".$id."",$conn);
$info1=mysql_fetch_array($sql1);
$sql=mysql_query("select count(*) as total from shangpin where typeid='".$id."' order by addtime desc ",$conn);
$info=mysql_fetch_array($sql);
$total=$info[total];
if($total==0)
{
echo "<div align='center'>本站暫無該類產品!</div>";
}
else
{
?>
<table width="550" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="left"><span style="color: #666666; font-weight: bold"><span style="color: #000000">本類商品>></span><?php echo $info1[typename];?></span>
</div></td>
</tr>
</table>
<table width="550" height="10" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td background="images/line1.gif"></td>
</tr>
</table>
<table width="550" height="70" border="0" align="center" cellpadding="0" cellspacing="0">
<?php
$pagesize=10;
if ($total<=$pagesize)
{
$pagecount=1;
}
if(($total%$pagesize)!=0)
{
$pagecount=intval($total/$pagesize)+1;
}
else
{
$pagecount=$total/$pagesize;
}
if(($_GET[page])=="")
{
$page=1;
}
else
{
$page=intval($_GET[page]);
}
$sql1=mysql_query("select * from shangpin where typeid=".$id." order by addtime desc limit ".($page-1) *$pagesize.",$pagesize ",$conn);
while($info1=mysql_fetch_array($sql1)) //顯示商品信息
{
?>
……
<?php
}
?>
</table>
<table width="550" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><div align="right"> 本站共有該類商品
<?php
echo $total;
?>
件每頁顯示<?php echo $pagesize;?>件第<?php echo $page; ?> 頁/共<?php echo $pagecount; ?>頁
<?php
if($page>=2) //商品分頁顯示
{
?>
<a href="showfenlei.php?id=<?php echo $id;?>&page=1" title="首頁"><font face="webdings"> 9 </font></a>
<a href="showfenlei.php?id=<?php echo $id;?>&page=<?php echo $page-1;?>" title="前一頁"><font face="webdings"> 7 </font></a>
<?php
}
if($pagecount<=4){
for($i=1;$i<=$pagecount;$i++){
?>
<a href="showfenlei.php?id=<?php echo $id;?>&page=<?php echo $i;?>"><?php echo $i;?></a>
<?php
}
}
else
{
for($i=1;$i<=4;$i++){
?>
<a href="showfenlei.php?id=<?php echo $id;?>&page=<?php echo $i;?>"><?php echo $i;?></a>
<?php
}
?>
<a href="showfenlei.php?id=<?php echo $id;?>&page=<?php echo $page-1;?>" title="後一頁"><font face="webdings"> 8 </font></a>
<a href="showfenlei.php?id=<?php echo $id;?>&page=<?php echo $pagecount;?>" title="尾頁"><font face="webdings"> : </font></a>
<?php
}
?>
</div></td>
</tr>
</table>
<?php
}
?>
</td>
</tr>
</table>
<?php
include("bottom.php");
?>

㈧ php中函數中變數定義的問題

oop成員屬性不是這樣用的。童鞋
是$this->x;

㈨ php-fpm的特色功能

所有這些特性都是「不打斷」的方式實現的。也就是說,如果你不使用它們,它們的存在不會影響php的功能性——他們都是「透明」的。
Error header
范圍:php.ini 選項
分類:便利性
默認情況下,如果被訪問的php腳本包含語法錯誤,用戶會收到一個空的「200 ok」頁。這是不方便的。Error header 這個php.ini 選項允許在這種情況下產生一個 HTTP錯誤碼,比如「HTTP/1.0 550 Server Made Big Boo」,從而中斷web server請求並顯示一個正確的錯誤頁。
如果要實現這樣的功能,需要在php.ini 中添加一條fastcgi.error_header = HTTP/1.0 550 Server Made Big Boo
在php-5.2.4 中添加了類似,但不相同的功能:如果被訪問的php腳本包含語法錯誤,並且 display_errors = off,會立刻返回「HTTP/1.0 500 Internal Server Error」。
如果你需要設定一個 503錯誤,或者想要使這個行為獨立於 display_errors 的設置,那麼可以使用fastcgi.error_header。如果你在php-5.2.5 或以上版本上啟用 php-fpm,那麼fastcgi.error_header的優先順序更高。
優化的上傳支持
實質:web server 支持
類型:優化
這個特性正如名字那樣,可以加速對大 POST 請求的處理速度,包括文件上傳。優化是通過將請求體已寫入一個臨時文件,然後fastcgi協議傳遞文件名而不是請求體到來實現的。只有 nginx0.5.9 以上才支持這個功能。顯然,這種模式只在php和 web server 在一台機器上的時候才能用。
nginx 樣例配置:
location ~ .php$ {
fastcgi_pass_request_body off;
client_body_in_file_only clean;
fastcgi_param REQUEST_BODY_FILE $request_body_file;
...
fastcgi_pass ...;
}
在php中不需要配置任何東西。如果php收到了參數REQUEST_BODY_FILE,就讀取其中的請求體,如果沒有,就自行從fastcgi協議中讀取請求體。
結合這個特性,可以考慮對臨時文件使用內存文件系統,例如tmpfs(linux):
client_body_temp_path /dev/shm/client_body_temp;
fastcgi_finish_request()
范圍:php函數
類型:優化
這個特性可以提高一些php請求的處理速度。如果有些處理可以在頁面生成完後進行,就可以使用這種優化。比如,在 memcached 中保存 session 就可以在頁面交給 web server 後進行。fastcgi_finisth_request() ,這一特性可以結束響應輸出,web server 可以立即開始交給等不及的客戶端,而此刻,php可以在請求的上下文環境中處理許多事情。比如保存session,轉換上傳的視頻,處理統計等等。
fastcgi_finisth_request() 會觸發 shutdown 函數運行。
request_slowlog_timeout
范圍:php-fpm.conf 選項
分類: 方便
這個選項能讓你跟蹤執行緩慢的腳本並把他們連同調用棧一起記錄在日誌文件中。例如如下設置:
<value name=request_slowlog_timeout>5s</value>
<value name=slowlog>logs/slow.log</value>
正如你再例子中看到的,腳本運行了 5 秒以上,並很可能是由於 mysql 響應慢造成的(top backtrace)。

閱讀全文

與php550相關的資料

熱點內容
怎麼能成為優秀程序員 瀏覽:244
智行app怎麼查學生認證 瀏覽:556
萬心pdf 瀏覽:92
哪個app能看3d電影 瀏覽:270
劍網三伺服器是怎麼運營 瀏覽:690
快手app快遞在哪裡查 瀏覽:474
開發聊天機器人python 瀏覽:856
程序員入職後無法工作 瀏覽:953
買海鮮用什麼app好 瀏覽:923
看劇用什麼app好 瀏覽:906
sql命令update 瀏覽:26
生意不忙怎麼解壓 瀏覽:501
歡太健康app在哪裡下載 瀏覽:489
androidtools使用教程 瀏覽:972
十天突破雅思口語pdf劍9 瀏覽:296
李誕笑場pdf 瀏覽:266
自用紙巾做解壓筆 瀏覽:130
銀行流水解壓碼是多少 瀏覽:896
百度哪個app好用 瀏覽:317
115廣告聯盟源碼 瀏覽:496