• 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
  • 相关阅读:
    CAS简介
    Volatile的3大特性
    dsf对矩阵进行搜索
    JVM
    REST风格
    自定义Starters(自动配置Bean)
    反射和注解的原理
    mybatis的注解开发
    Java的多线程安全
    mybatis(3)
  • 原文地址:https://www.cnblogs.com/ooooo/p/2245222.html
Copyright © 2020-2023  润新知