PHP使用經驗小結

來源:互聯網
上載者:User

簡介:這是PHP使用經驗小結的詳細頁面,介紹了和php,有關的知識、技巧、經驗,和一些php源碼等。

class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=340724' scrolling='no'>

1.Apache的配置

我下載的是Apache 2.2和PHP 5.2.17(VC6 x86 Thread Safe)
註:VC6 x86 non Thread Safe版本在我機子上貌似不行。

首先將下載好的PHP解壓至C:\php,將檔案夾中的php.ini-recommend檔案改名為php.ini,找到542行左右,找到下面代碼參數:extension = "./",修改為 extension = "C:/php/ext/" ,告訴PHP擴充庫的目錄是在"C:/php/ext/"。儲存後將php.ini複製到C:\windows\php.ini。這樣做的好處是如果升級PHP版本,只需把新版本直接覆蓋到C:\php即可完成升級。

接下來,找到apache的設定檔(在../conf/httpd.conf),找到“LoadModule”一節,追加:LoadModule php5_module "C:/php/php5apache2_2.dll";找到“AddType”一節,追加:AddType application/x-httpd-php .php。再重新啟動apache服務即可。

註:如果需要修改網站目錄,可以在httpd.conf中找到DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"改為想要的目錄,同時,<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">也要修改。如果需要修改首頁,可以找到"<IfModule dir_module> DirectoryIndex index.php </IfModule>"修改為index.php等。

2.檔案的上傳

首先定義一些參數:

<?php// 上傳檔案類型列表
$uptypes = array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);
$max_file_size = 2000000; // 上傳檔案大小限制, 單位BYTE
$destination_folder = "uploading/"; // 上傳檔案路徑?>

接下來加入表單:

<form enctype="multipart/form-data" method="post" name="upform">
上傳檔案:
<input name="upfile" type="file">
<input type="submit" value="上傳"><br>
允許上傳的檔案類型為:<?php echo implode(',',$uptypes); ?>
</form>

然後處理上傳請求:

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$file = $_FILES['upfile'];
// $file中有4個元素:name,type,size,tmp_name,每個元素都是一個數組

// 是否存在檔案
if (!is_uploaded_file($file['tmp_name']))
{
echo "<font color=red>檔案上傳失敗!</font>";
exit();
}

// 檢查檔案大小
if($max_file_size < $file['size'])
{
echo "<font color=red>上傳檔案大小超過".($max_file_size/1000000)."MB限制!</font>";
unlink($file["tmp_name"]);
exit();
}

//檢查檔案類型
if(!in_array($file["type"], $uptypes))
{
echo "<font color=red>檔案類型不符!</font>";
unlink($file["tmp_name"]);
exit();
}

//建立目標檔案夾
if(!file_exists($destination_folder))
{
mkdir($destination_folder);
}

$filename = $file["tmp_name"];
$pinfo = pathinfo($file["name"]);
// pathinfo() 返回一個數組[dirname][basename][extension]
$ftype = $pinfo['extension'];
// 去掉basename的尾碼名,存在$name中
$pos = strrpos($pinfo['basename'], ".");
$name = substr_replace($pinfo['basename'], "", $pos, strlen($pinfo['basename']));
// 目標檔案名路徑
$destination = $destination_folder.$name."_".$_SERVER['REMOTE_ADDR'].".".$ftype;
if (file_exists($destination) && $overwrite != true)
{
echo "<font color=red>伺服器上已存在同名檔案,請稍候重試!</font>";
unlink($file["tmp_name"]);
exit();
}

if(!move_uploaded_file ($filename, $destination))
{
echo "<font color=red>移動檔案出錯!</font>";
exit();
}

// 擷取移動後的檔案資訊
$pinfo = pathinfo($destination);
$fname = $pinfo[basename]; // basename是不含路徑的檔案名稱
echo "<font color=red>已經成功上傳!</font><br>檔案名稱:<font color=blue>".$destination_folder.$fname."</font><br>";
echo "檔案大小:".$file["size"]." bytes";
echo "<br>提交IP:".$_SERVER['REMOTE_ADDR'];
}
?>

愛J2EE關注Java邁克爾傑克遜視頻站JSON線上工具

http://biancheng.dnbcw.info/php/340724.html pageNo:7

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.