⑴ 求實現php文件上傳代碼
PHP上傳文件非常簡單,你需要一個上傳的HTML文件(<FORM>),一個保存文件的PHP文件(保存),一個查詢上傳文件清單的工具。
真正實現完整功能的上傳和管理需要使用資料庫,我的網站俱樂部裡面上傳文件一開放很快就傳了幾萬個文件。
最簡單的方法不用資料庫,可以用一個PHP文件實現,這個文件列出指定目錄下的所有文件,然後提供一個上傳的FORM,最後檢測是否提交了FORM數據,是就保存文件到指定位置。
PHP手冊第39章有關於處理這些問題的說明,我復制粘貼如下:
上一頁V.特點下一頁
--------------------------------------------------------------------------------
第39章文件上傳處理
目錄
POST方法上傳
錯誤信息說明
常見缺陷
上傳多個文件
對PUT方法的支持
POST方法上傳
本特性可以使用戶上傳文本和二進制文件。用PHP的認證和文件操作函數,可以完全控制允許哪些人上傳以及文件上傳後怎樣處理。
PHP能夠接受任何來自符合RFC-1867標準的瀏覽器(包括NetscapeNavigator3及更高版本,打了補丁的MicrosoftInternetExplorer3或者更高版本)上傳的文件。
相關的設置:請參閱php.ini的file_uploads,upload_max_filesize,upload_tmp_dirpost_max_size以及max_input_time設置選項。
請注意PHP也支持PUT方法的文件上傳,NetscapeComposer和W3C的Amaya客戶端使用這種方法。請參閱對PUT方法的支持以獲取更多信息。
例39.1.文件上傳表單
可以如下建立一個特殊的表單來支持文件上傳:<!--Thedataencodingtype,enctype,MUSTbespecifiedasbelow-->
<formenctype="multipart/form-data"action="__URL__"method="POST">
<!--MAX_FILE_-->
<inputtype="hidden"name="MAX_FILE_SIZE"value="30000"/>
<!--$_FILESarray-->
Sendthisfile:<inputname="userfile"type="file"/>
<inputtype="submit"value="SendFile"/>
</form>
以上範例中的__URL__應該被換掉,指向一個真實的PHP文件。
MAX_FILE_SIZE隱藏欄位(單位為位元組)必須放在文件輸入欄位之前,其值為接收文件的最大尺寸。這是對瀏覽器的一個建議,PHP也會檢查此項。在瀏覽器端可以簡單繞過此設置,因此不要指望用此特性來阻擋大文件。實際上,PHP設置中的上傳文件最大值是不會失效的。但是最好還是在表單中加上此項目,因為它可以避免用戶在花時間等待上傳大文件之後才發現文件過大上傳失敗的麻煩。
注意:要確保文件上傳表單的屬性是enctype="multipart/form-data",否則文件上傳不了。
全局變數$_FILES自PHP4.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']
和該文件上傳相關的錯誤代碼。此項目是在PHP4.2.0版本中增加的。
文件被上傳後,默認地會被儲存到服務端的默認臨時目錄中,除非php.ini中的upload_tmp_dir設置為其它的路徑。服務端的默認臨時目錄可以通過更改PHP運行環境的環境變數TMPDIR來重新設置,但是在PHP腳本內部通過運行putenv()函數來設置是不起作用的。該環境變數也可以用來確認其它的操作也是在上傳的文件上進行的。
例39.2.使文件上傳生效
請查閱函數is_uploaded_file()和move_uploaded_file()以獲取進一步的信息。以下範例處理由表單提供的文件上傳。
<?php
//InPHPversionsearlierthan4.1.0,$HTTP_POST_FILESshouldbeusedinstead
//of$_FILES.
$uploaddir='/var/www/uploads/';
$uploadfile=$uploaddir.basename($_FILES['userfile']['name']);
echo'<pre>';
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)){
echo"Fileisvalid,andwassuccessfullyuploaded.\n";
}else{
echo"Possiblefileuploadattack!\n";
}
echo'Hereissomemoredebugginginfo:';
print_r($_FILES);
print"</pre>";
?>
接受上傳文件的PHP腳本為了決定接下來要對該文件進行哪些操作,應該實現任何邏輯上必要的檢查。例如可以用$_FILES['userfile']['size']變數來排除過大或過小的文件,也可以通過$_FILES['userfile']['type']變數來排除文件類型和某種標准不相符合的文件,但只把這個當作一系列檢查中的第一步,因為此值完全由客戶端控制而在PHP端並不檢查。自PHP4.2.0起,還可以通過$_FILES['userfile']['error']變數來根據不同的錯誤代碼來計劃下一步如何處理。不管怎樣,要麼將該文件從臨時目錄中刪除,要麼將其移動到其它的地方。
如果表單中沒有選擇上傳的文件,則PHP變數$_FILES['userfile']['size']的值將為0,$_FILES['userfile']['tmp_name']將為空。
如果該文件沒有被移動到其它地方也沒有被改名,則該文件將在表單請求結束時被刪除。
例39.3.上傳一組文件
PHP的HTML數組特性甚至支持文件類型。
<formaction=""method="post"enctype="multipart/form-data">
<p>Pictures:
<inputtype="file"name="pictures[]"/>
<inputtype="file"name="pictures[]"/>
<inputtype="file"name="pictures[]"/>
<inputtype="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起始頁錯誤信息說明
⑵ phpstorm顯示this file is indented with tabs instead of是什麼回事
tab鍵 縮進 的問題。指的是 此文件被縮進製表符 代替了,
解決:
在左上角,點擊 file,裡面有settings 設置:依次展開設置。
File -> Settings -> Editor -> Code Style -> Java -> Tabs and Indents -> Use tab character
⑶ php時間獲取問題
文章提供了php的幾種獲取當前時間的函數,date,time等哦,同時告訴我如何解決時區問題哦。
方法一date函數
echo date(『y-m-d h:i:s』,time());
//2010-08-29 11:25:26
方法二 time函數
$time = time();
echo date("y-m-d",$time) //2010-08-29
方法三 $_server['server_time']
方法四 strftime
echo strftime ("%hh%m %a %d %b" ,time());
18h24 sunday 21 may
還有一個問題就是時區問題,php環境默認時差與北京時間相差8小時,我們要想獲取正確的時間就必須設置
在php文件開始處 加上date_default_timezone_set('prc');
或在php.ini裡面 date.timezone=prc;嗾。
記得修改了php.ini要重起apache
⑷ php 分詞,搜索引擎,技術
你好,很高興為你解答:
如果你僅僅是要把長句中的單詞分出來,那是很簡單的:
<?php
$str="GoogleTranslateforBusiness!";
$str=preg_replace("{.|,|;|:|'|"|?|!|<|>|(|)}","",$str);//移除所有標點符號
$arr=array_unique(explode("",$str));//以空格分割,並去重
var_mp($arr);
?>
以下是一段測試文本:
(asseeninCorPerl),"something"(inthiscase,output"Hi,I'maPHPscript!").<?phpand?>"PHPmode."
-,.,.,andthenthere'.
,.Don''sfeatures.Youcanjumpin,inashorttime,.
AlthoughPHP'sdevelopmentisfocusedonserver-sidescripting,youcandomuchmorewithit.Readon,andseemoreintheWhatcanPHPdo?section,.
輸出結果:
Instead,of,lots,commands,to,output,HTML,as,seen,in,C,or,Perl,PHP,pages,contain,with,embedded,code,that,does,something,this,case,Hi,Im,a,script,The,is,enclosed,special,start,and,end,processing,instructions,php,,allow,you,jump,into,out,modeWhat,distinguishes,from,like,client-side,JavaScript,the,executed,on,server,generating,which,then,sent,client,would,receive,results,running,but,not,know,what,underlying,was,You,can,even,configure,your,web,process,all,files,theres,really,no,way,users,tell,have,up,sleeveThe,best,things,using,are,it,extremely,simple,for,newcomer,offers,many,advanced,features,professional,programmer,Dont,be,afraid,reading,long,list,PHPs,short,time,writing,scripts,few,hoursAlthough,development,focused,server-side,scripting,do,much,more,Read,see,What,section,go,right,introctory,tutorial,if,only,interested,programming
使用sort()對其進行排序:
C,Dont,HTML,Hi,Im,Instead,JavaScript,PHP,PHPs,Perl,Read,The,What,You,a,advanced,afraid,all,allow,and,are,as,be,best,but,can,case,client,client-side,code,commands,configure,contain,development,distinguishes,do,does,embedded,enclosed,end,even,executed,extremely,features,few,files,focused,for,from,generating,go,have,hoursAlthough,if,in,instructions,interested,into,introctory,is,it,jump,know,like,list,long,lots,many,modeWhat,more,much,newcomer,no,not,of,offers,on,only,or,out,output,pages,php,process,processing,professional,programmer,programming,reading,really,receive,results,right,running,script,scripting,scripts,section,see,seen,sent,server,server-side,short,simple,sleeveThe,something,special,start,tell,that,the,then,theres,things,this,time,to,tutorial,underlying,up,users,using,was,way,web,what,which,with,would,writing,you,your
-----------------------------------
如有疑問歡迎追問!
滿意請點擊右上方【選為滿意回答】按鈕么么噠 o(∩_∩)o
⑸ 這個PHP文件怎麼解密
1. dezend:http://www.old.necenzurat.com/dezend/ 支持php4,php5,免費程序,不支持批量解密,但是可以用批處理,支持捐贈,作者說:「the money will be used on alcohol, cigars and whores」。囧。
在實際的解密過程中,某些文件會「卡」住,直接ctrl+c跳到下個文件。
2. http://www.showmycode.com/ 在線解密,不支持批量解密,需輸入驗證碼。
⑹ PHP CURLOPT_RETURNTRANSFER選項,該如何理解
TRUE to return the transfer as a string of the return value ofcurl_exec() instead of outputting it out directly.
根據php官網解釋 如果你設置這個的參數為TRUE
即 curl_exec() 的結果是一個return賦值 也就是你要把它賦值給一個函數
比如 $response = curl_exec();
$response就是一個你curl執行後的string結果
反之如果是false 你的 curl_exec(); 就相當於你設置true的時候 echo $response;