源碼下載下來后,首先安裝php運行環境:簡單點的集成環境有wamp,xampp等,搜索下載安裝就可以了,具體安裝和配置方法搜百度wamp安裝使用方法。。

創新互聯憑借在網站建設、網站推廣領域領先的技術能力和多年的行業經驗,為客戶提供超值的營銷型網站建設服務,我們始終認為:好的營銷型網站就是好的業務員。我們已成功為企業單位、個人等客戶提供了成都做網站、成都網站設計服務,以良好的商業信譽,完善的服務及深厚的技術力量處于同行領先地位。
安裝好環境后,將源碼放入環境的相應項目目錄:如wamp默認在在www下,xampp是在htdoc;
如果是完整的CMS源碼,一般都只要訪問localhost就會有自動安裝引導,綁定數據庫;按提示操作就行,如果不是,那么久要先綁定數據庫(nosql類型數據庫除外)選擇目錄中conf或者config,或者db,或者config.php等類似文件或者目錄配置你的數據庫或者緩存庫就可以測試了(如果每有編程基礎,建議先語言入門);操作簡單但還真得專人來
邊訪問,邊看錯,報錯改錯,知道沒錯,祝你早日入門
PHP上傳文件非常簡單,你需要一個上傳的HTML文件(FORM),一個保存文件的PHP文件(保存),一個查詢上傳文件清單的工具。
真正實現完整功能的上傳和管理需要使用數據庫,我的網站俱樂部里面上傳文件一開放很快就傳了幾萬個文件。
最簡單的方法不用數據庫,可以用一個PHP文件實現,這個文件列出指定目錄下的所有文件,然后提供一個上傳的FORM,最后檢測是否提交了FORM數據,是就保存文件到指定位置。
PHP手冊第39章有關于處理這些問題的說明,我復制粘貼如下:
上一頁??V.?特點?下一頁?
--------------------------------------------------------------------------------
第?39?章?文件上傳處理
目錄
POST?方法上傳
錯誤信息說明
常見缺陷
上傳多個文件
對?PUT?方法的支持
POST?方法上傳
本特性可以使用戶上傳文本和二進制文件。用?PHP?的認證和文件操作函數,可以完全控制允許哪些人上傳以及文件上傳后怎樣處理。?
PHP?能夠接受任何來自符合?RFC-1867?標準的瀏覽器(包括?Netscape?Navigator?3?及更高版本,打了補丁的?Microsoft?Internet?Explorer?3?或者更高版本)上傳的文件。?
相關的設置:?請參閱?php.ini?的?file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size?以及?max_input_time?設置選項。?
請注意?PHP?也支持?PUT?方法的文件上傳,Netscape?Composer?和?W3C?的?Amaya?客戶端使用這種方法。請參閱對?PUT?方法的支持以獲取更多信息。?
例?39.1.?文件上傳表單
可以如下建立一個特殊的表單來支持文件上傳:?
!--?The?data?encoding?type,?enctype,?MUST?be?specified?as?below?--
form?enctype="multipart/form-data"?action="__URL__"?method="POST"
!--?MAX_FILE_SIZE?must?precede?the?file?input?field?--
input?type="hidden"?name="MAX_FILE_SIZE"?value="30000"?/
!--?Name?of?input?element?determines?name?in?$_FILES?array?--
Send?this?file:?input?name="userfile"?type="file"?/
input?type="submit"?value="Send?File"?/
/form
以上范例中的?__URL__?應該被換掉,指向一個真實的?PHP?文件。?
MAX_FILE_SIZE?隱藏字段(單位為字節)必須放在文件輸入字段之前,其值為接收文件的最大尺寸。這是對瀏覽器的一個建議,PHP?也會檢查此項。在瀏覽器端可以簡單繞過此設置,因此不要指望用此特性來阻擋大文件。實際上,PHP?設置中的上傳文件最大值是不會失效的。但是最好還是在表單中加上此項目,因為它可以避免用戶在花時間等待上傳大文件之后才發現文件過大上傳失敗的麻煩。?
注意:?要確保文件上傳表單的屬性是?enctype="multipart/form-data",否則文件上傳不了。?
全局變量?$_FILES?自?PHP?4.1.0?起存在(在更早的版本中用?$HTTP_POST_FILES?替代)。此數組包含有所有上傳的文件信息。?
以上范例中?$_FILES?數組的內容如下所示。我們假設文件上傳字段的名稱如上例所示,為?userfile。名稱可隨意命名。?
$_FILES['userfile']['name']
客戶端機器文件的原名稱。?
$_FILES['userfile']['type']
文件的?MIME?類型,如果瀏覽器提供此信息的話。一個例子是“image/gif”。不過此?MIME?類型在?PHP?端并不檢查,因此不要想當然認為有這個值。?
$_FILES['userfile']['size']
已上傳文件的大小,單位為字節。?
$_FILES['userfile']['tmp_name']
文件被上傳后在服務端儲存的臨時文件名。?
$_FILES['userfile']['error']
和該文件上傳相關的錯誤代碼。此項目是在?PHP?4.2.0?版本中增加的。?
文件被上傳后,默認地會被儲存到服務端的默認臨時目錄中,除非?php.ini?中的?upload_tmp_dir?設置為其它的路徑。服務端的默認臨時目錄可以通過更改?PHP?運行環境的環境變量?TMPDIR?來重新設置,但是在?PHP?腳本內部通過運行?putenv()?函數來設置是不起作用的。該環境變量也可以用來確認其它的操作也是在上傳的文件上進行的。?
例?39.2.?使文件上傳生效
請查閱函數?is_uploaded_file()?和?move_uploaded_file()?以獲取進一步的信息。以下范例處理由表單提供的文件上傳。?
?php
//?In?PHP?versions?earlier?than?4.1.0,?$HTTP_POST_FILES?should?be?used?instead
//?of?$_FILES.
$uploaddir?=?'/var/www/uploads/';
$uploadfile?=?$uploaddir?.?basename($_FILES['userfile']['name']);
echo?'pre';
if?(move_uploaded_file($_FILES['userfile']['tmp_name'],?$uploadfile))?{
echo?"File?is?valid,?and?was?successfully?uploaded.\n";
}?else?{
echo?"Possible?file?upload?attack!\n";
}
echo?'Here?is?some?more?debugging?info:';
print_r($_FILES);
print?"/pre";
??
接受上傳文件的?PHP?腳本為了決定接下來要對該文件進行哪些操作,應該實現任何邏輯上必要的檢查。例如可以用?$_FILES['userfile']['size']?變量來排除過大或過小的文件,也可以通過?$_FILES['userfile']['type']?變量來排除文件類型和某種標準不相符合的文件,但只把這個當作一系列檢查中的第一步,因為此值完全由客戶端控制而在?PHP?端并不檢查。自?PHP?4.2.0?起,還可以通過?$_FILES['userfile']['error']?變量來根據不同的錯誤代碼來計劃下一步如何處理。不管怎樣,要么將該文件從臨時目錄中刪除,要么將其移動到其它的地方。?
如果表單中沒有選擇上傳的文件,則?PHP?變量?$_FILES['userfile']['size']?的值將為?0,$_FILES['userfile']['tmp_name']?將為空。?
如果該文件沒有被移動到其它地方也沒有被改名,則該文件將在表單請求結束時被刪除。?
例?39.3.?上傳一組文件
PHP?的?HTML?數組特性甚至支持文件類型。?
form?action=""?method="post"?enctype="multipart/form-data"
pPictures:
input?type="file"?name="pictures[]"?/
input?type="file"?name="pictures[]"?/
input?type="file"?name="pictures[]"?/
input?type="submit"?value="Send"?/
/p
/form
?php
foreach?($_FILES["pictures"]["error"]?as?$key?=?$error)?{
if?($error?==?UPLOAD_ERR_OK)?{
$tmp_name?=?$_FILES["pictures"]["tmp_name"][$key];
$name?=?$_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name,?"data/$name");
}
}
??
--------------------------------------------------------------------------------
上一頁??上一級?下一頁?
38.?處理?XForms??起始頁?錯誤信息說明?
PHP實現采集抓取淘寶網單個商品信息,本文是一種實現思路,使用file_get_contents函數實現,并給出了采集正則,需要的朋友可以參考下
調用淘寶的數據可以使用淘寶提供的api,如果只需調用淘寶商品圖片名稱等公開信息在自己網站上,使用php中的 file_get_contents 函數實現即可。
思路:
file_get_contents(url) 該函數根據 url 如 將該網頁內容(源碼)以字符串形式輸出(一個整字符串),然后配合preg_match,preg_replace等這些正則表達式操作就可以實現獲取該url特定div,img等信息了。當然前題是淘寶在單個商品頁面的結構是固定的,如500圖的img中id就是J_ImgBooth!
具體實現方法:(獲取500圖,名稱,價格,屬性及商品描述)
復制代碼 代碼如下:
$text=file_get_contents(""); //將url地址上頁面內容保存進$text
A.獲取500圖:
復制代碼 代碼如下:
preg_match('/img[^]*id="J_ImgBooth"[^r]*rc=\"([^"]*)\"[^]*/', $text, $img);
//運用正則抓取img標簽中id為J_ImgBooth的img,$img[0]為該500圖img標簽,$img[1]為500圖的圖片地址;
B. 獲取名稱:
復制代碼 代碼如下:
preg_match('/title([^]*)\/title/', $text, $title);
//因為正文中的商品名稱標簽沒有特殊class或id正則不好抓取,就抓title標簽中的內容了,一般來說title中內容就是商品名稱了(實際有些出入),$title[0]整個title標簽 $title[1]標簽中內容;
$title=iconv('GBK','UTF-8',$title);
//如果你的網站是utf8編碼,那么需要進行一下轉碼(淘寶是gbk編碼)
C.獲取價格:
復制代碼 代碼如下:
preg_match('/([a-z]+)[^i]*id=\"J_StrPrice\"[^]*([^]*)\/\\1/is', $text, $price);
//同理獲取id為J_StrPrice的標簽內容$price[2], $price[0]是整個標簽, $price[1]為strong標簽名;
$price=floatval($price);//放入數據庫估計還有轉一下變量類型
D.獲取屬性:
這之前獲取的內容都是在單標簽中相對只需一個正則就可搞定,然而如果要獲取如
復制代碼 代碼如下:
…
div id=”xxx”
…
ul
…
/ul
div…
div…
/div
/div
/div
…
這樣特定div中有未知n個標簽,獲取該特定div將會非常的困難,搜了下網上,最接近的也只是”/([a-z]+)[^]*([^]|(?R))*\/\\1/”這樣使用遞歸抓取標簽對,但是他不能抓特定標簽,所以想要輕松抓取class=”attributes”的div我是沒法辦到了。但是淘寶網頁有其特殊性,就是它的各個標簽結構基本是固定的…div…/div標簽后面不是/divdiv id=”description”就是/divdiv,所以我們可以采用變通法達到獲取屬性標簽內容的目的。
復制代碼 代碼如下:
preg_match('/(div)[^c]*class=\"attributes\"[^]*.*\/\\1/is', $text, $text0);
//這個正則會抓取div開始到整個頁面最后一個/div標簽,當然我們屬性標簽就在這個的前面部分。
$text1=preg_replace("/\/div[^]*(div)[^c]*id=\"description\"[^]*.*\/\\1/is","",$text0);
//匹配到/div div id=”description”至最后/div然后用””代替(就是把匹配的刪除了),所以如果attributes的div后面緊跟的是description那么我們已經達到目的了。
$attributes=preg_replace("/\/div[^]*(div)[^c]*class=\"box J_TBox\"[^]*.*\/\\1/is","",$text1);
//如果attributes后面緊跟box J_Tbox標簽,那么我們還需要使用以上這步來剔除box J_Tbox標簽,當然如果attributes的div后面緊跟的是description,這一步將不會匹配到任何即什么都不會做。
E.獲取描述:
通過上面方法你肯定覺得淘寶頁面上任何標簽都可以很簡單獲取了吧(我之前也是這么想的),但是使用這個方法獲取描述時得到的內容將會是“描述加載中”,是的,這個描述內容不是在源碼中的,它是打開頁面加載進一大堆js后,不知道從淘寶的哪個角落中加載進來的。
好吧,那么我們也可以模仿它放一些js進去。不知道哪些對加載描述有用?沒事,全加載進來肯定沒錯。不知道需要放那些特定div上去有作用?抓一個源碼,刪掉一些div一步步試試看,你會發現“div id=”detail” /div
復制代碼 代碼如下:
div id="description"
div id="J_DivItemDesc"描述加載中/div
/div
這幾個div是加載描述所必須的,那么下面就是寫代碼了:
復制代碼 代碼如下:
preg_match_all('/script[^]*[^]*\/script/is', $text, $content);//頁面js腳本
$content=$content[0];
$description='div id="detail" /div
div id="description"
div id="J_DivItemDesc"描述加載中/div
/div';
foreach ($content as $v){$description.=iconv('GBK','UTF-8',$v);};
//將這個$description放進頁面,描述就會自動的加載進來了,當然多個商品描述在同一個頁面也會只有一個描述會被加載的。
接口的流程.
建立控制器(訪問地址)-審核訪問者身份(token)-驗證提交數據是否符合類型(validate
)-處理接收數據(邏輯流程)-返回結果(json字符串).
其中要注意是否存在跨域,如果跨域要做跨域處理,例如返回jsonp.
網站欄目:數據上傳接口php源碼 php上傳圖片接口
文章源于:http://www.yijiale78.com/article42/ddjgiec.html
成都網站建設公司_創新互聯,為您提供響應式網站、App開發、網站設計、電子商務、網站內鏈、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯