『壹』 php實現文件下載代碼
簡單的文件下載只需要使用HTML的連接標記<a>,並將屬性href的URL值指定為下載的文件即可。所示:
<a href=」http://www.*****.net/download/book.rar」>下載文件</a>
如果通過上面的代碼實現文件下載,只能處理一些瀏覽器不能默認識別的MIME類型文件,例如當訪問book.rar文件時,瀏覽器並沒有直接打開,而是彈出一個下載提示框,提示用戶「下載」還是「打開」等處理方式。但如果需要下載後綴名為.html的網頁文件、圖片文件及PHP程序腳本文件等,使用這種連接形式,則會將文件內容直接輸出到瀏覽器中,並不會提示用戶下載。
為了提高文件的安全性,不希望在<a>標簽中給出文件的鏈接,則必須向瀏覽器發送必要的頭信息,以通知瀏覽器將要進行下載文件的處理。PHP使用header()函數發送網頁的頭部信息給瀏覽器,該函數接收一個頭信息的字元串作為參數。文件下載需要發送的頭信息包括以下三部分,通過調用三次header()函數完成。以下載圖片test.gif為例,需要發送的頭信息的所示:
header(『Content-Type:imge/gif'); //發送指定文件MIME類型的頭信息
header(『Content-Disposition:attachment; filename=」test.gif」『); //發送描述文件的頭信息,附件和文件名
header(『Content-Length:3390′); //發送指定文件大小的信息,單位位元組
如果使用header()函數向瀏覽器發送了這三行頭信息,圖片test.gif就不會直接在瀏覽器中顯示,而讓瀏覽器將該文件形成下載的形式。在函數header()中,「Content-Type」指定了文件的MIME類型,「Content_Disposition」用於文件的描述,值「attachment;
filename=」test.gif」」說明這是一個附件,並且指定了下載後的文件名,「Content_Length」則給出了被下載文件的大小。
設置完頭部信息以後,需要將文件的內容輸出到瀏覽器,以便進行下載。可以使用PHP中的文件系統函數將文件內容讀取出來後,直接輸出給瀏覽器。最方便的是使用readfile()函數,將文件內容讀取出來直接輸出。下載文件test.gif的所示:
<?php
$filename = "test.gif";
header('Content-Type:image/gif'); //指定下載文件類型
header('Content-Disposition: attachment; filename="'.$filename.'"'); //指定下載文件的描述
header('Content-Length:'.filesize($filename)); //指定下載文件的大小
//將文件內容讀取出來並直接輸出,以便下載
readfile($filename);
?>
上面如果碰到中文名字就會無法正常下載了,對於中文名字下載文件我又找到一個文件下載實例代碼
<?php
header("Content-type:text/html;charset=utf-8");
// $file_name="cookie.jpg";
$file_name="聖誕狂歡.jpg";
//用以解決中文不能顯示出來的問題
$file_name=iconv("utf-8","gb2312",$file_name);
$file_sub_path=$_SERVER['DOCUMENT_ROOT']."marcofly/phpstudy/down/down/";
$file_path=$file_sub_path.$file_name;
//首先要判斷給定的文件存在與否
if(!file_exists($file_path)){
echo "沒有該文件文件";
return ;
}
$fp=fopen($file_path,"r");
$file_size=filesize($file_path);
//下載文件需要用到的頭
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".$file_name);
$buffer=1024;
$file_count=0;
//向瀏覽器返回數據
while(!feof($fp) && $file_count<$file_size){
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
fclose($fp);
?>
header("Content-type:text/html;charset=utf-8")的作用:在伺服器響應瀏覽器的請求時,告訴瀏覽器以編碼格式為UTF-8的編碼顯示該內容
關於file_exists()函數不支持中文路徑的問題:因為php函數比較早,不支持中文,所以如果被下載的文件名是中文的話,需要對其進行字元編碼轉換,否則file_exists()函數不能識別,可以使用iconv()函數進行編碼轉換
$file_sub_path() 我使用的是絕對路徑,執行效率要比相對路徑高
Header("Content-type: application/octet-stream")的作用:通過這句代碼客戶端瀏覽器就能知道服務端返回的文件形式
Header("Accept-Ranges: bytes")的作用:告訴客戶端瀏覽器返回的文件大小是按照位元組進行計算的
Header("Accept-Length:".$file_size)的作用:告訴瀏覽器返回的文件大小
Header("Content-Disposition: attachment; filename=".$file_name)的作用:告訴瀏覽器返回的文件的名稱
以上四個Header()是必需的
fclose($fp)可以把緩沖區內最後剩餘的數據輸出到磁碟文件中,並釋放文件指針和有關的緩沖區
『貳』 php開發中app怎麼接入支付寶
准備工作
APP支付介面:alipay.trade.app.pay
伺服器端使用框架:TP5
登錄螞蟻金服開放平台 --> 創建應用 --> 添加App支付功能。具體查看官方文檔
下載官方 SDK (PHP版本資源)——當前SDK版本:106 生成時間:2017-07-25 11:46:10
將SDK原碼放置在TP5的vendor目錄下的alipay文件夾(可根據實際使用框架技術進行實際調整)。
支付介面調用原理
1、APP支付系統架構
APP支付系統架構圖
2、數據校驗原理
數據校驗原理
應用公鑰(商戶自身的RSA公鑰):支付寶使用該公鑰驗證該交易是商戶發起。
支付寶公鑰(支付寶的RSA公鑰):商戶使用該公鑰驗證該結果是支付寶返回的。
3、系統交互流程
系統交互流程圖
4、支付場景具體實現流程(最詳細圖解)
在集成App支付能力時,建議實現如下支付流程,創建訂單並支付,根據返回的結果確定支付狀態,並進行相應的異常處理,其過程如下圖所示.
支付場景具體實現流程
商家APP在創建訂單並且喚起支付寶APP支付,流程如上圖所示,根據第2.2,3步返回的支付結果,確定支付狀態,並且做相應的異常處理(必要時關閉訂單)
代碼實現
步驟1:商戶APP端請求商戶伺服器介面,提交訂單數據。
步驟2:商戶伺服器端接收數據,然後對數據進行簽名,返回請求參數到商戶APP端。
官方介面文檔:https://docs.open.alipay.com/204/105465/
——代碼如下:
//vendor();為TP5框架的方法,作用:導入第三方框架類庫
vendor('alipay.aop.AopClient');
vendor('alipay.aop.request.AlipayTradeAppPayRequest');
//實例化支付介面
$aop = new \AopClient();
$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; //支付寶網關
$aop->appId = 「應用ID,填寫你的APPID」;
$aop->rsaPrivateKey = "商戶私鑰,您的原始格式RSA私鑰()";
$aop->alipayrsaPublicKey = "支付寶公鑰";
$aop->apiVersion = '1.0';
$aop->signType = "簽名方式,如 RSA2 ";
$aop->postCharset = 'UTF-8';
$aop->format = "json";
//實例化具體API對應的request類,類名稱和介面名稱對應,當前調用介面名稱:alipay.trade.app.pay
$appRequest = new \AlipayTradeAppPayRequest();
//SDK已經封裝掉了公共參數,這里只需要傳入業務參數
$bizcontent = json_encode([
'body' => '余額充值', //訂單描述
'subject' => '充值', //訂單標題
'timeout_express' => '30m',
'out_trade_no' => 『20170125test01』, //商戶網站唯一訂單號
'total_amount' => '0.01', //訂單總金額
'proct_code' => 'QUICK_MSECURITY_PAY', //固定值
]);
$appRequest->setNotifyUrl($url); //設置非同步通知地址
$appRequest->setBizContent($bizcontent);
//這里和普通的介面調用不同,使用的是sdkExecute
$response = $aop->sdkExecute($appRequest);
//htmlspecialchars是為了輸出到頁面時防止被瀏覽器將關鍵參數html轉義,實際列印到日誌以及http傳輸不會有這個問題
echo htmlspecialchars($response);//就是orderString 可以直接給客戶端請求,無需再做處理。
// 如果最後有問題可以嘗試把htmlspecialchars方法去掉,直接返回$response
說明:sdkExecute()方法,作用生成簽名,詳細步驟如下:
將請求參數組裝分下列3步,以最後第三步獲取到的請求為准。
1)將請求參數的鍵按字典排序,然後按照key=value&key=value方式拼接,得到未簽名原始字元串如下:
app_id=2015052600090779&biz_content={"timeout_express":"30m","proct_code":"QUICK_MSECURITY_PAY","total_amount":"0.01","subject":"1","body":"我是測試數據","out_trade_no":"IQJZSRC1YMQB5HU"}&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http://domain.merchant.com/payment_notify&sign_type=RSA2×tamp=2016-08-25 20:26:31&version=1.0
2)再對原始字元串進行簽名
app_id=2015052600090779&biz_content={"timeout_express":"30m","proct_code":"QUICK_MSECURITY_PAY","total_amount":"0.01","subject":"1","body":"我是測試數據","out_trade_no":"IQJZSRC1YMQB5HU"}&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http://domain.merchant.com/payment_notify&sign_type=RSA2×tamp=2016-08-25 20:26:31&version=1.0&sign=+/=
3)最後對請求字元串的所有一級value(biz_content作為一個value)進行encode,編碼格式按請求串中的charset為准,沒傳charset按UTF-8處理,獲得最終的請求字元串:
app_id=2015052600090779&biz_content=%7B%22timeout_express%22%3A%2230m%22%2C%22proct_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%221%22%2C%22body%22%3A%22%E6%88%91%E6%98%AF%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%22%2C%22out_trade_no%22%3A%22IQJZSRC1YMQB5HU%22%7D&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http%3A%2F%2Fdomain.merchant.com%2Fpayment_notify&sign_type=RSA2×tamp=2016-08-25%2020%3A26%3A31&version=1.0&sign=%2B%2F%3D
步驟3:商戶APP接收從商戶伺服器端返回的請求參數,然後調起支付寶支付面板。
若用戶支付成功,支付寶會同步給商戶APP端返回一個支付結果。相應地,支付寶也會通過非同步通知給商戶伺服器端返回一個支付結果。
注意:由於同步通知和非同步通知都可以作為支付完成的憑證,且非同步通知支付寶一定會確保發送給商戶服務端。為了簡化集成流程,商戶可以將同步結果僅僅作為一個支付結束的通知(忽略執行校驗),實際支付是否成功,完全依賴服務端非同步通知。
步驟4:服務端非同步通知處理機制(支付寶主動發起通知,該方式才會被啟用)
官方介面文檔:https://docs.open.alipay.com/204/105301/
注意點:
1)必須保證伺服器非同步通知頁面(notify_url)上無任何字元,如空格、HTML標簽、開發系統自帶拋出的異常提示信息等;
2)支付寶是用POST方式發送通知信息,因此該頁面中獲取參數的方式,如:$_POST[『out_trade_no』];
3)程序執行完後必須列印輸出「success」(不包含引號)。如果商戶反饋給支付寶的字元不是success這7個字元,支付寶伺服器會不斷重發通知,直到超過24小時22分鍾。一般情況下,25小時以內完成8次通知(通知的間隔頻率一般是:4m,10m,10m,1h,2h,6h,15h);
4)當商戶收到伺服器非同步通知並列印出success時,伺服器非同步通知參數notify_id才會失效。
——代碼如下:
$aop = new AopClient;
$aop->alipayrsaPublicKey = '請填寫支付寶公鑰,一行字元串';
$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2"); //驗證簽名
if($flag){
//校驗通知數據的正確性
$out_trade_no = $_POST[『out_trade_no']; //商戶訂單號
$trade_no = $_POST[『trade_no']; //支付寶交易號
$trade_status = $_POST[『trade_status']; //交易狀態trade_status
$total_amount = $_POST[『'total_amount']; //訂單的實際金額
$app_id = $_POST[『app_id'];
if($app_id!=$this->config['app_id']) exit('fail'); //驗證app_id是否為該商戶本身
//只有交易通知狀態為TRADE_SUCCESS或TRADE_FINISHED時,支付寶才會認定為買家付款成功。
if($trade_status != 'TRADE_FINISHED' && $trade_status != 'TRADE_SUCCESS')
exit('fail');
//校驗訂單的正確性
if(!empty($out_trade_no)){
//1、商戶需要驗證該通知數據中的out_trade_no是否為商戶系統中創建的訂單號;
//2、判斷total_amount是否確實為該訂單的實際金額(即商戶訂單創建時的金額);
//3、校驗通知中的seller_id(或者seller_email) 是否為out_trade_no這筆單據的對應的操作方(有的時候,一個商戶可能有多個seller_id/seller_email)。
//上述1、2、3有任何一個驗證不通過,則表明本次通知是異常通知,務必忽略。在上述驗證通過後商戶必須根據支付寶不同類型的業務通知,正確的進行不同的業務處理,並且過濾重復的通知結果數據。
//校驗成功後在response中返回success,校驗失敗返回failure
}
exit('fail');
}
echo"fail"; //驗證簽名失敗
步驟5:當商戶APP端接收到支付寶的同步返回結果為成功時,商戶APP端再請求商戶伺服器端API,判斷訂單最終支付結果,並做出最終響應。
『叄』 《PHP基礎教程(第4版)》pdf下載在線閱讀,求百度網盤雲資源
《PHP基礎教程(第4版)》(Larry Ullman)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:
書名:PHP基礎教程(第4版)
作者:Larry Ullman
譯者:賈菡
豆瓣評分:7.6
出版社:人民郵電出版社
出版年份:2011-10
頁數:405
內容簡介:
由賈菡等編譯的《PHP基礎教程(第4版)》以通俗易懂的語言向初學者介紹了PHP語言的基本概念、使用方法和注意事項。全書通過豐富的示例,引領讀者逐步掌握這門流行的Web開發語言,使讀者能夠上手編寫適用於常用場景的PHP腳本。
《PHP基礎教程(第4版)》適合有基本HTML經驗的讀者閱讀。
作者簡介:
Brian Halligan 市場營銷軟體開發公司HubSpot創始人兼CEO,致力於幫助其他企業「被目標客戶找到」。他也是一位眼光超前的風險投資家、經驗豐富的銷售及營銷主管,常應邀去MIT以及哈佛商學院舉辦講座。
Dharmesh Shah HubSpot公司創始人兼CTO,天使投資人,撰寫的博客OnStartups.com擁有大量粉絲。他還屢次應邀就市場營銷以及企業家精神這類主題發表演說。
侯德傑 北京郵電大學英語專業,後取得北京交通大學項目管理碩士學位。目前就職於北京全路通信信號研究設計院,全職翻譯和審核文檔,曾翻譯出版《網路營銷實訓》,對網路營銷有較深入的研究。
『肆』 關於php學習,哪個網站資料比較合適
做PHP相關工作已經有7年了,如果是初學者,推薦有兩個PHP100、PHP CHINA.
PHP100
-------------
PHP100中文網是國內第一家以PHP資源分享為主的專業網站,也提供了PHP中文交流社區。面向PHP學習研究者提供:最新PHP資訊、原創內容、開源代碼和PHP視頻教程等相關內容。
PHP100中的100個視頻,雖然看著有點多,但是如果想入門的話,10幾個視頻就可以了,這裡面不僅有入門的教程,還有中階、高階的教程,完全可以把你從一個什麼都不懂的PHP菜鳥,變成PHP的使用高手。
介紹php開發環境,讓您快速搭建您的工作環境,測試環境,開始PHP的編程之旅;php開發工具
,工欲善其事必先利其器,IDE,資料庫管理,版本控制等等,稱心..,帶你進行PHP語言開發,手把手在視頻教程中教你如何開發一個留言板功能,學會這些,你就可以入門了。
當然如果遇到問題怎麼辦,PHP100還有一個技術論壇,分類也很全,不僅包含PHP技術相關的內容,還包含PHP相關的好多技術語言,例如linux、apache、mysql、javascript、ajax等等。
PHP CHINA
----------------
之所以推薦這個,是因為,N年前我自己就是在這里進行過培訓的學員,也是深受益處,還有個很出名的開源論壇也是出自這里的,Discuz! ,這里不僅有學習相關的資料,也可以報名進行培訓,還可以學習Discuz!相關的源碼。
當然這里也有一個屬於自己的論壇,裡面有一部分人都是初學者,都是在這里做培訓的學員,所以會看到很多初級的問題,也可以提一些基礎問題,很多人會幫你解答。
當然別的地方也會有很多資料很全的網站,以上兩個只是個人推薦,希望對你有幫助
『伍』 如何在windows上配置php環境
如何在Windows下配置搭建PHP環境
發布時間:2013-09-02 12:17:14.0作者:青島做網站
現在很多站長PHP構建網站,因為PHP相對於其他的語言功能強大又簡單易學,PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的資料庫以及操作系統。最大的原因可能是因為幾乎所有用PHP編寫的網站程序都開源,可以直接下載使用並修改,這給站長們特別是個人站長建設網站節約了很多的時間和精力。我們在用PHP建網站的時候,首先要面臨的問題就是php環境搭建,今天筆者就跟大家分享一下如何在windows下配置搭建PHP開發環境,筆者主要講的是搭建Apache+php開發環境。
配置搭建Apache+php環境的軟體准備:
Apache官方下載地址:apache_2.0.55-win32-x86-no_ssl.msi
php官方下載地址:php-5.0.5-Win32.zip
一、安裝Apache,配置成功一個普通網站伺服器
運行下載好的「apache_2.0.55-win32-x86-no_ssl.msi」,出現如下界面:
出現Apache HTTP Server 2.0.55的安裝向導界面,點「Next」繼續
確認同意軟體安裝使用許可條例,選擇「I accept the terms in the license agreement」,點「Next」繼續
將Apache安裝到Windows上的使用須知,請閱讀完畢後,按「Next」繼續
設置系統信息,在Network Domain下填入您的域名(比如:qdsulian.com),在Server Name下填入您的伺服器名稱(比如:www.qdsulian.com,也就是主機名加上域名),在Administrator』s Email Address下填入系統管理員的聯系電子郵件地址(比如:[email protected]),上述三條信息僅供參考,其中聯系電子郵件地址會在當系統故障時提供給訪問者,三條信息均可任意填寫,無效的也行。下面有兩個選擇,圖片上選擇的是為系統所有用戶安裝,使用默認的80埠,並作為系統服務自動啟動;另外一個是僅為當前用戶安裝,使用埠8080,手動啟動。一般選擇如圖所示。按「Next」繼續。]
選擇安裝類型,Typical為默認安裝,Custom為用戶自定義安裝,我們這里選擇Custom,有更多可選項。按「Next」繼續
出現選擇安裝選項界面,如圖所示,左鍵點選「Apache HTTP Server 2.0.55」,選擇「This feature, and all subfeatures, will be installed on local hard drive.」,即「此部分,及下屬子部分內容,全部安裝在本地硬碟上」。點選「Change...」,手動指定安裝目錄。
我這里選擇安裝在「D:\」,各位自行選取了,一般建議不要安裝在操作系統所在盤,免得操作系統壞了之後,還原操作把Apache配置文件也清除了。選「OK」繼續。
返回剛才的界面,選「Next」繼續。
確認安裝選項無誤,如果您認為要再檢查一遍,可以點「Back」一步步返回檢查。點「Install」開始按前面設定的安裝選項安裝。
正在安裝界面,請耐心等待,直到出現下面的畫面。
安裝向導成功完成,這時右下角狀態欄應該出現了下面的這個綠色圖標,表示Apache服務已經開始運行,按「Finish」結束Apache的軟體安裝
我們來熟悉一下這個圖標,很方便的,在圖標上左鍵單擊,出現如下界面,有「Start(啟動)」、「Stop(停止)」、「Restart(重啟動)」三個選項,可以很方便的對安裝的Apache伺服器進行上述操作。
好了現在我們來測試一下按默認配置運行的網站界面,在IE地址欄打「http://127.0.0.1」,點「轉到」,就可以看到如下頁面,表示Apache伺服器已安裝成功。
現在開始配置Apache伺服器,使它更好的替我們服務,事實上,如果不配置,你的安裝目錄下的Apache2\htdocs文件夾就是網站的默認根目錄,在裡面放入文件就可以了。這里我們還是要配置一下,有什麼問題或修改,配置始終是要會的,如圖所示,「開始」、「所有程序」、「Apache HTTP Server2.0.55」、「Configure Apache Server」、「Edit the Apache httpd conf Configuration file」,點擊打開。
XP的記事本有了些小變化,很實用的一個功能就是可以看到文件內容的行、列位置,按下圖所示,點「查看」,勾選「狀態欄」,界面右下角就多了個標記,「Ln 78, Col 10」就表示「行 78,列 10」,這樣可以迅速的在文件中定位,方便解說。當然,你也可以通過「編輯」,「查找」輸入關鍵字來快速定位。每次配置文件的改變,保存後,必須在 Apache伺服器重啟動後生效,可以用前面講的小圖標方便的控制伺服器隨時「重啟動」。
現在正式開始配置Apache伺服器,「Ln 228」,或者查找關鍵字「DocumentRoot」(也就是網站根目錄),找到如下圖所示地方,然後將""內的地址改成你的網站根目錄,地址格式請照圖上的寫,主要是一般文件地址的「\」在Apache里要改成「/」。
「Ln 253」,同樣,你也可以通過查找「
「Ln321」,DirectoryIndex(目錄索引,也就是在僅指定目錄的情況下,默認顯示的文件名),可以添加很多,系統會根據從左至右的順序來優先顯示,以單個半形空格隔開,比如有些網站的首頁是index.htm,就在游標那裡加上「index.htm 」文件名是任意的,不一定非得「index.html」,比如「test.php」等,都可以。
這里有一個選擇配置選項,以前可能要配置,現在好像修正過來了,不用配置了,就是強制所有輸出文件的語言編碼,html文件里有語言標記(,這個就是設定文檔語言為gb2312)的也會強制轉換。如果打開的網頁出現亂碼,請先檢查網頁內有沒有上述 html語言標記,如果沒有,添加上去就能正常顯示了。把「#DefaultLanguage nl」前面的「# 」去掉,把「nl」改成你要強制輸出的語言,中文是「zh-cn」,保存,關閉。
簡單的Apache配置就到此結束了,現在利用先前的小圖標重啟動,所有的配置就生效了,你的網站就成了一個網站伺服器,如果你載入了防火牆,請打開80或8080埠,或者允許Apache程序訪問網路,否則別人不能訪問。
二、php的安裝、以mole方式,將php與apache結合使你的網站伺服器支持php伺服器腳本程序
將下載的php安裝文件php-5.0.5-Win32.zip右鍵解壓縮。
指定解壓縮的位置,我的設定在「D:\php」
查看解壓縮後的文件夾內容,找到「php.ini-dist」文件,將其重命名為「php.ini」,打開編輯,找到下面圖中的地方, Ln385,有一個「register_globals = Off」值,這個值是用來打開全局變數的,比如表單送過來的值,如果這個值設為「Off」,就只能用「$_POST['變數名']、$_GET['變數名 ']」等來取得送過來的值,如果設為「On」,就可以直接使用「$變數名」來獲取送過來的值,當然,設為「Off」就比較安全,不會讓人輕易將網頁間傳送的數據截取。這個值是否改成「On」就看自己感覺了,是安全重要還是方便重要?
這里還有一個地方要編輯,功能就是使php能夠直接調用其它模塊,比如訪問mysql,如下圖所示,Ln563,選擇要載入的模塊,去掉前面的 「;」,就表示要載入此模塊了,載入的越多,佔用的資源也就多一點,不過也多不到哪去,比如我要用mysql,就要把「;extension= php_mysql.dll」前的「;」去掉。所有的模塊文件都放在php解壓縮目錄的「ext」之下,我這里的截圖是把所有能載入的模塊都載入上去了,前面的「;」沒去掉的,是因為「ext」目錄下默認沒有此模塊,載入會提示找不到文件而出錯。這里只是參考,一般不需要載入這么多,需要的載入上就可以了,編輯好後保存,關閉。
如果上一步載入了其它模塊,就要指明模塊的位置,否則重啟Apache的時候會提示「找不到指定模塊」的錯誤,這里介紹一種最簡單的方法,直接將php安裝路徑、裡面的ext路徑指定到windows系統路徑中——在「我的電腦」上右鍵,「屬性」,選擇「高級」標簽,點選「環境變數」,在「系統變數」下找到「Path」變數,選擇,雙擊或點擊「編輯」,將「;D:\php;D:\php\ext」加到原有值的後面,當然,其中的「D:\php」 是我的安裝目錄,你要將它改為自己的php安裝目錄,如下圖所示,全部確定。系統路徑添加好後要重啟電腦才能生效,可以現在重啟,也可以在所有軟體安裝或配置好後重啟。
現在開始將php以mole方式與Apache相結合,使php融入Apache,照先前的方法打開Apache的配置文件,Ln 173,找到這里,添加進如圖所示選中的兩行,第一行「LoadMole php5_mole D:/php/php5apache2.dll」是指以mole方式載入php,第二行「PHPIniDir "D:/php"」是指明php的配置文件php.ini的位置,是當然,其中的「D:/php」要改成你先前選擇的php解壓縮的目錄。
還是Apache的配置文件,Ln 757,加入「AddType application/x-httpd-php .php」、「AddType application/x-httpd-php .html」兩行,你也可以加入更多,實質就是添加可以執行php的文件類型,比如你再加上一行「AddType application/x-httpd-php .htm」,則.htm文件也可以執行php程序了,你甚至還可以添加上一行「AddType application/x-httpd-php .txt」,讓普通的文本文件格式也能運行php程序。
前面所說的目錄默認索引文件也可以改一下,因為現在加了php,有些文件就直接存為.php了,我們也可以把「index.php」設為默認索引文件,優先順序就自己排了,我的是放在第一位。編輯完成,保存,關閉。
現在,php的安裝,與Apache的結合已經全部完成,用屏幕右下角的小圖標重啟Apache,你的Apache伺服器就支持了php。在windows下配置搭建Apache+php環境就此大功告成。
『陸』 如何用thinkPHP 構建一個簡單的項目
1、使用sftp協議進行上傳的操作:輸入用戶名和用戶密碼。
『柒』 php中怎麼實現文件下載功能
兩種方法:
1.直接做個超鏈接,地址為文件的地址
<ahref="文件地址">下載</a>2.流輸出
<?php
$file=fopen('文件地址',"r");
header("Content-Type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Accept-Length:".filesize('文件地址'));
header("Content-Disposition:attachment;filename=文件名稱");
echofread($file,filesize('文件地址'));
fclose($file);
?>推薦第二種
因為第一種方法只能下載瀏覽器不能解析的文件,比如rar啊,腳本文件之類。如果文件是圖片或者txt文檔,就會直接在瀏覽器中打開。
而第二種方法是直接輸出的文件流,不存在上述問題。
你可以檢查一下你傳值過來的路徑是否正確,還有,流輸出後面不要再進行任何操作了。
拓展資料:
集成開發環境是一種集成了軟體開發過程中所需主要工具的集成開發環境,其功能包括但不僅限於代碼高亮、代碼補全、調試、構建、版本控制等。一些常見的PHP IDEs如下:
Zend Studio:商業版,Zend官方出品,基於eclipse
Eclipsewith PDT:免費
Coda:商業版,針對Mac用戶
NetBeans:免費,功能強大
PHP Storm:商業版
AptanaStudio:免費
PhpEd:商業版
KomodoIDE/Edit:IDE為商業版,Edit可免費使用
Adobe Dreamweaver:商業版
除去集成開發環境,具備代碼高亮功能的常見文本編輯器因其輕巧靈活也常被選作開發工具,例如:Notepad++、Editplus、SublimeText、Everedit(國人開發)等等。
PHP的特性包括:
1. PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。
2. PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,
PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。
3. PHP支持幾乎所有流行的資料庫以及操作系統。
4. 最重要的是PHP可以用C、C++進行程序的擴展!
參考資料:網路:PHP