PHP使用经验小结

简介:这是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
原文地址:https://www.cnblogs.com/ooooo/p/2245222.html