程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP禁止某些類型的上傳文件

PHP禁止某些類型的上傳文件

編輯:關於PHP編程

為了防止某些人將 exe 之類的可執行文件上傳到服務器,我們可以編寫程序判斷上傳文件的類型,然後不符合類型的文件將會拒絕上傳。

下面是實現這一功能的 PHP 程序:

function ($file_name, $pass_type = array('jpg','jpeg','gif','bmp','png') )
{
    // 允許文件類型的後綴組成的數組
    $file = $pass_type;
    // 截取上傳文件的文件名的後綴
    $kzm  = substr(strrchr($file_name,"."),1);
    // 判斷此後綴是否在數組中
    $is_img = in_array(strtolower($kzm),$file);
    if($is_img)
    {
        return true;
    }
    else
    {
        return false;
    }
}

in_array() 函數

in_array() 函數在數組中搜索給定的值。用法:in_array(value,array,type)。

  • 參數value,必需。規定要在數組搜索的值。
  • 參數array,必需。規定要搜索的數組。
  • 參數type,可選。如果設置該參數為 true,則檢查搜索的數據與數組的值的類型是否相同。

如果給定的值 value 存在於數組 array 中則返回 true。如果第三個參數設置為 true,函數只有在元素存在於數組中且數據類型與給定值相同時才返回 true。

如果沒有在數組中找到參數,函數返回 false。

如果 value 參數是字符串,且 type 參數設置為 true,則搜索區分大小寫。

<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland");
if (in_array("Glenn",$people))
{
  	echo "Match found";
}
else
{
  	echo "Match not found";
}
?>

程序輸出:

Match found

再一個示例程序:

<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland", 23);
if (in_array("23",$people, TRUE))
{
  	echo "Match found<br />";
}
else
{
  	echo "Match not found<br />";
}
if (in_array("Glenn",$people, TRUE))
{
  	echo "Match found<br />";
}
else
{
  	echo "Match not found<br />";
}
if (in_array(23,$people, TRUE))
{
  	echo "Match found<br />";
}
else
{
  	echo "Match not found<br />";
}
?>

程序輸出:

Match not found
Match found
Match found

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved