岳琴濱
我有PHP程序設(shè)計(jì)經(jīng)典300例案例源碼怎么給你
武動(dòng)乾坤
<?php //雙斜杠為注釋?zhuān)趐hp中被解析不執(zhí)行。每句要以 ‘分號(hào)’結(jié)束。 echo “hello world"; //echo表示輸出 echo phpinfo(); //查看安裝環(huán)境信息 //變量輸出 $a='1'; //定義變量$a,用$符號(hào)表示 echo $a; //打印輸出變量$a; //數(shù)組定義 $arr = array(); //定義一個(gè)空數(shù)組 $arr1= array(1,2); //表示鍵值0=>1,1=>2 print_r($arr1); //打印數(shù)組元素?>php程序要以<?php ..... ?>未開(kāi)始結(jié)束。 建議初學(xué)時(shí)根據(jù) php中文手冊(cè) 來(lái)學(xué)習(xí)。
嚴(yán)昊
創(chuàng)建一個(gè)文件上傳表單允許用戶(hù)從表單上傳文件是非常有用的。請(qǐng)看下面這個(gè)供上傳文件的 HTML 表單:<html><body><form action="upload_file.php" method="post"enctype="multipart/form-data"><label for="file">Filename:</label><input type="file" name="file" id="file" /> <br /><input type="submit" name="submit" value="Submit" /></form></body></html>請(qǐng)留意如下有關(guān)此表單的信息:<form> 標(biāo)簽的 enctype 屬性規(guī)定了在提交表單時(shí)要使用哪種內(nèi)容類(lèi)型。在表單需要二進(jìn)制數(shù)據(jù)時(shí),比如文件內(nèi)容,請(qǐng)使用 "multipart/form-data"。<input> 標(biāo)簽的 type="file" 屬性規(guī)定了應(yīng)該把輸入作為文件來(lái)處理。舉例來(lái)說(shuō),當(dāng)在瀏覽器中預(yù)覽時(shí),會(huì)看到輸入框旁邊有一個(gè)瀏覽按鈕。注釋?zhuān)涸试S用戶(hù)上傳文件是一個(gè)巨大的安全風(fēng)險(xiǎn)。請(qǐng)僅僅允許可信的用戶(hù)執(zhí)行文件上傳操作。創(chuàng)建上傳腳本"upload_file.php" 文件含有供上傳文件的代碼:<?phpif ($_FILES["file"]["error"] > 0){echo "Error: " . $_FILES["file"]["error"] . "<br />";}else{echo "Upload: " . $_FILES["file"]["name"] . "<br />";echo "Type: " . $_FILES["file"]["type"] . "<br />";echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";echo "Stored in: " . $_FILES["file"]["tmp_name"];}?>通過(guò)使用 PHP 的全局?jǐn)?shù)組 $_FILES,你可以從客戶(hù)計(jì)算機(jī)向遠(yuǎn)程服務(wù)器上傳文件。第一個(gè)參數(shù)是表單的 input name,第二個(gè)下標(biāo)可以是 "name", "type", "size", "tmp_name" 或 "error"。就像這樣:$_FILES["file"]["name"] - 被上傳文件的名稱(chēng)$_FILES["file"]["type"] - 被上傳文件的類(lèi)型$_FILES["file"]["size"] - 被上傳文件的大小,以字節(jié)計(jì)$_FILES["file"]["tmp_name"] - 存儲(chǔ)在服務(wù)器的文件的臨時(shí)副本的名稱(chēng)$_FILES["file"]["error"] - 由文件上傳導(dǎo)致的錯(cuò)誤代碼這是一種非常簡(jiǎn)單文件上傳方式?;诎踩矫娴目紤],您應(yīng)當(dāng)增加有關(guān)什么用戶(hù)有權(quán)上傳文件的限制。上傳限制在這個(gè)腳本中,我們?cè)黾恿藢?duì)文件上傳的限制。用戶(hù)只能上傳 .gif 或 .jpeg 文件,文件大小必須小于 20 kb:<?phpif ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 20000)){if ($_FILES["file"]["error"] > 0){echo "Error: " . $_FILES["file"]["error"] . "<br />";}else{echo "Upload: " . $_FILES["file"]["name"] . "<br />";echo "Type: " . $_FILES["file"]["type"] . "<br />";echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";echo "Stored in: " . $_FILES["file"]["tmp_name"];}}else{echo "Invalid file";}?>注釋?zhuān)簩?duì)于 IE,識(shí)別 jpg 文件的類(lèi)型必須是 pjpeg,對(duì)于 FireFox,必須是 jpeg。保存被上傳的文件上面的例子在服務(wù)器的 PHP 臨時(shí)文件夾創(chuàng)建了一個(gè)被上傳文件的臨時(shí)副本。這個(gè)臨時(shí)的復(fù)制文件會(huì)在腳本結(jié)束時(shí)消失。要保存被上傳的文件,我們需要把它拷貝到另外的位置:<?phpif ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] < 20000)){if ($_FILES["file"]["error"] > 0){echo "Return Code: " . $_FILES["file"]["error"] . "<br />";}else{echo "Upload: " . $_FILES["file"]["name"] . "<br />";echo "Type: " . $_FILES["file"]["type"] . "<br />";echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";if (file_exists("upload/" . $_FILES["file"]["name"])){echo $_FILES["file"]["name"] . " already exists. ";}else{move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);echo "Stored in: " . "upload/" . $_FILES["file"]["name"];}}}else{echo "Invalid file";}?>上面的腳本檢測(cè)了是否已存在此文件,如果不存在,則把文件拷貝到指定的文件夾。
鐘敢
請(qǐng)去 電驢 上搜索,很完整的
太陰鬼箓
php經(jīng)典實(shí)例 php高級(jí)編程都還不錯(cuò)的 文件太大就不上傳了你可以去拼吾愛(ài)下載 編程方面的資源很多的
紅月世家
青鳥(niǎo)啊,夏日星啊,青春狂騷曲流星悲しみをやさしさに等mylife(有點(diǎn)陳亦迅的味道~):http://www.comicme.net/player.php?type=anime&song_id=17861FarOffDistance:http://www.comicme.net/player.php?type=anime&song_id=1Harmonia:http://www.comicme.net/player.php?type=anime&song_id=16549Alive:http://www.comicme.net/player.php?type=anime&song_id=15582大蛇丸那家伙牛B的時(shí)候的背景音樂(lè)http://www.comicme.net/player.php?type=anime&song_id=16544#
陰陽(yáng)
我用C#來(lái)寫(xiě)(注意,的請(qǐng)直接到我的個(gè)人博客,點(diǎn)擊, http://www.cnblogs.com/serviceboy/archive/2009/07/19/1526590.html,收看) 【例1】有甲、乙、丙、丁四人,從甲開(kāi)始到丁,一個(gè)比一個(gè)大1歲,已知丁10歲,問(wèn)甲幾歲?【分析】這是遞歸法的一道非常典型的題目——因?yàn)槲覀兛梢院茱@然知道:假設(shè)要計(jì)算甲的年齡,那么必須直到乙的年齡;同樣,算乙的必須直到丙的,算丙的必須知道丁的,因?yàn)槎∫阎?,自然可以往前推算了?,F(xiàn)在假設(shè)有一個(gè)數(shù)學(xué)模型(函數(shù))可以計(jì)算出他們各自的年齡(方便期間我們給他們編號(hào)——甲=1,乙=2,丙=3,丁=4),那么存在這一個(gè)F(X)函數(shù),X表示某人的編號(hào),其規(guī)律如下:F(1)=F(2)+1F(2)=F(3)+1F(3)=F(4)+1F(4)=10顯然,直到X=4的時(shí)候是一個(gè)終止值,其余情況下都是返回F(X’),F(xiàn)(X’’)……F(X’’……’),且前者總是比后至大1,這也符合了X’和X總是呈現(xiàn)一定函數(shù)關(guān)系(設(shè)想一下,如果不是等差和等比,又怎么可能在一個(gè)遞歸函數(shù)中進(jìn)行計(jì)算?要知道,函數(shù)本身就是一個(gè)公式表示,既然是公式,那么一定是一種函數(shù)關(guān)系Y=F(X)),此處顯然X和X’的關(guān)系是X=X’+1。根據(jù)規(guī)律式,我們可以寫(xiě)出該遞歸函數(shù):int AgeCal(int id){if(id==4) return 10;elsereturn (AgeCal(id+1)+1); } 【例2】計(jì)算n!【分析】雖然這道題目不像例1一樣清晰明了告訴你使用“遞歸”法反推,但是我們有這樣一個(gè)常識(shí)——n!=(n-1)!*n;(n-1)!=(n-2)!*(n-1)……n=0或1,返回1.顯然n與n-1,n-2也是線性的遞減數(shù)列(等差關(guān)系)。其規(guī)律如下:F(n)=F(n-1)*nF(n-1)=F(n-2)*(n-1)F(n-2)=F(n-3)*(n-2)……F(1)=1或者F(0)=1(防止別人直接輸入0)編寫(xiě)其遞歸函數(shù),如下:int Fac(int n){if(n==1 || n==0){return 1;}elsereturn Fac(n-1)*n;} 【例3】求一組整數(shù)中的最大(小)值(整數(shù)是一個(gè)int[]數(shù)組,個(gè)數(shù)未知)?!痉治觥慨?dāng)數(shù)字只有兩個(gè)的時(shí)候,我們可以使用>和<直接比較;但是當(dāng)數(shù)字超過(guò)2個(gè)的時(shí)候(假設(shè)3個(gè)),那么我們可以使用一個(gè)預(yù)訂的函數(shù)(比如Max(1,2)和3進(jìn)行比較),由于1,2兩個(gè)數(shù)比較的時(shí)候已經(jīng)得到一個(gè)最大值,因此在回代到Max中又變成了兩個(gè)數(shù)的比較。這樣,我們可以發(fā)現(xiàn)一個(gè)規(guī)律:F(1,2,3,4……n)=F(1,2,3,4……n-1)和n比較F(1,2,3,4……n-1)=F(1,2,3,4……n-2)和n-1比較……F(1,2,3)=F(1,2)和3比較F(1,2)=結(jié)果(并回代)相應(yīng)的遞歸函數(shù)如下(C#):Codeint Max(int[]numbers){if(numbers.Length==2){return (numbers[0]>numbers[1]?numbers[0]:numbers[1]);}else{int[]tempnumbers=new int[numbers.Length-1];for(int i=0;i<numbers.Length-1;++i){tempnumbers[i]=numbers[i];}return (Max(tempnumbers)>numbers[numbers.Length-1]? Max(tempnumbers): numbers[numbers.Length-1]}}
七禽五遁
有兩種方法,一種方法使用mysql的e68a8462616964757a686964616f31333337383231check table和repair table 的sql語(yǔ)句,另一種方法是使用MySQL提供的多個(gè)myisamchk, isamchk數(shù)據(jù)檢測(cè)恢復(fù)工具。前者使用起來(lái)比較簡(jiǎn)便。推薦使用。1. check table 和 repair table登陸mysql 終端:mysql -uxxxxx -p dbnamecheck table tabTest;如果出現(xiàn)的結(jié)果說(shuō)Status是OK,則不用修復(fù),如果有Error,可以用:repair table tabTest;進(jìn)行修復(fù),修復(fù)之后可以在用check table命令來(lái)進(jìn)行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。2. myisamchk, isamchk其中myisamchk適用于MYISAM類(lèi)型的數(shù)據(jù)表,而isamchk適用于ISAM類(lèi)型的數(shù)據(jù)表。這兩條命令的主要參數(shù)相同,一般新的系統(tǒng)都使用MYISAM作為缺省的數(shù)據(jù)表類(lèi)型,這里以myisamchk為例子進(jìn)行說(shuō)明。當(dāng)發(fā)現(xiàn)某個(gè)數(shù)據(jù)表出現(xiàn)問(wèn)題時(shí)可以使用:myisamchk tablename.MYI進(jìn)行檢測(cè),如果需要修復(fù)的話,可以使用:myisamchk -of tablename.MYI關(guān)于myisamchk的詳細(xì)參數(shù)說(shuō)明,可以參見(jiàn)它的使用幫助。需要注意的時(shí)在進(jìn)行修改時(shí)必須確保MySQL服務(wù)器沒(méi)有訪問(wèn)這個(gè)數(shù)據(jù)表,保險(xiǎn)的情況下是最好在進(jìn)行檢測(cè)時(shí)把MySQL服務(wù)器Shutdown掉。-----------------------------另外可以把下面的命令放在你的rc.local里面啟動(dòng)MySQL服務(wù)器前:[ -x /tmp/mysql.sock ] && /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI其中的/tmp/mysql.sock是MySQL監(jiān)聽(tīng)的Sock文件位置,對(duì)于使用RPM安裝的用戶(hù)應(yīng)該是/var/lib/mysql/mysql.sock,對(duì)于使用源碼安裝則是/tmp/mysql.sock可以根據(jù)自己的實(shí)際情況進(jìn)行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL數(shù)據(jù)庫(kù)存放的位置。需要注意的時(shí),如果你打算把這條命令放在你的rc.local里面,必須確認(rèn)在執(zhí)行這條指令時(shí)MySQL服務(wù)器必須沒(méi)有啟動(dòng)!檢測(cè)修復(fù)所有數(shù)據(jù)庫(kù)(表)
張春
驗(yàn)證碼類(lèi),文件上傳類(lèi),單例模式,工廠模式。圖片類(lèi)