php fopen 创建生成html并且创建目录实例教程

 更新时间:2016年11月25日 15:57  点击:1303
主要是以fopen 为主来生成指定目录与指定日期生成静态文件哦,本程序可以自动判断如果是目录并且目录不存在就创建目录,当然可以更新$path来根据目录生成文件或与目录名了。只要把$path = date(\\\"Y/m/d\\\");就OK了,文件名就用同样的方法。

 $path = date("Y-m-d");
 $filename = '111cn.net.html';
 $content = '原创www.111cn.net,转载注明原来';
 tohtmlfile($filename,$content);
 
 function tohtmlfile($file_name,$file_content)
 {
  $dir_name=dirname($file_name);
  //目录不存在就创建
  if(!file_exists($dir_name))
  {
   mkdirs($dir_name);
  }
    
  if (file_exists($file_name)){
    @unlink ($file_name); //文件存在,就删除
  }
  
  $cjjer_handle = fopen ($file_name,"w+"); //创建文件
  if (!is_writable ($file_name)){ //判断写权限
    exit('不能写文件');
  }
  if (!fwrite ($cjjer_handle,$file_content)){
    exit('写入文件失败');
  }
  fclose ($cjjer_handle); //关闭指针
  return $file_name; //返回文件名
 }
 
 //创建目录函数
 
 function mkdirs($dir)
 {
  if(!is_dir($dir)){
   if(!mkdirs(dirname($dir))){
    exit('不能创建目录');}
   if(!mkdir($dir,0777)){
    exit('不能创建目录2');}
  }
  return true;
 }
/*
 用户函数说明
 is_dir  目录是否存
 fopen 新建文件
 mkdir 创建目录
 fwrite 写文件
 fclose 闭文件
 file_exists 文件是否在存
 unlink 删除文件
 
 
 更多更好手册http://www.111cn.net/w3school/php/
*/ 

php教程 获取当前url域名实例代码
 
 function getServerName()
 {
  $ServerName = strtolower($_SERVER['SERVER_NAME']?$_SERVER['SERVER_NAME']:$_SERVER['HTTP_HOST']);
  if( strpos($ServerName,'http://') )
  {   
   return str_replace('http://','',$ServerName);
  }  
  return $ServerName;
 }
  
 
 $url = getServerName();
 echo $url;
 
 /*
  用到函数介绍
  strtolower 将字符转换成小写
  strpos($str,$str1) 判断$str1存在$str中的第几个位置
  str_replace( $str,$repalce,$str1 ) 把$str1字符串包括字符$str的值替换成$replace
  $_SERVER 参考http://www.111cn.net/phper/21/php_SERVER.htm
  
  更多更好手册http://www.111cn.net/w3school/php/
 */
 
 ?>

<html>
<head>
<title>查询结果</title>
</head>
<body>
<?
    $pagesize = 3;//每页显示3条记录

    $server = mysql教程_pconnect("localhost","root","");
    $db = mysql_select_db("bbs");
    mysql_query("set names 'gb2312'");
      //生成查询记录数的SQL语句
    $sql = "select count(*) as total from message";
        //查询记录数
    $rst = mysql_query($sql);
       //取出一条记录
    $row = mysql_fetch_array($rst);
      //取出记录数
    $rowcount = $row["total"];
      //释放result资源
    mysql_free_result($rst);
     //算出总共有几页
    $pagecount = bcdiv($rowcount+$pagesize-1,$pagesize,0);
     //在没有设置pageno时,缺省为显示第1页
    if(!isset($pageno)) $pageno = 1;
     //若pageno比1小,则把它设置为1
    if($pageno<1) $pageno = 1;
      //若pageno比总共的页数大,则把它设置为最后一页
    if($pageno>$pagecount) $pageno = $pagecount;
 if($pageno>0){
     //把$PHP_SELF转换为可以在URL上使用的字符串,这样的话就可以处理中文目录或中文文件名
       $href = eregi_replace("%2f","/",urlencode($PHP_SELF));
       if($pageno>1){//显示上一页的裢接
          echo '<a href="fenye.php教程' . $href . '?pageno=' . ($pageno-1) . '">上一页</a>  ';
       }
       else{
          echo '上一页  ';
       }
       for($i=1;$i<$pageno;$i++){
          echo '<a href="fenye.php' . $href . '?pageno=' . $i . '">' . $i . '</a>  ';
       }
       echo $pageno . '  ';
       for($i++;$i<=$pagecount;$i++){
          echo '<a href="fenye.php' . $href . '?pageno=' . $i . '">' . $i . '</a>  ';
       }
       if($pageno<$pagecount){//显示下一页的裢接
          echo '<a href="fenye.php' . $href . '?pageno=' . ($pageno+1) . '">下一页</a>  ';
       }
       else{
          echo '下一页  ';
       }
         //算出本页第一条记录在整个表中的位置(第一条记录为0)
       $offset = ($pageno-1) * $pagesize;
         //生成查询本页数据的SQL语句
       $sql = "select * from message LIMIT $offset,$pagesize";
         //查询本页数据
       $rst = mysql_query($sql);
           //取得字段总数
       $num_fields = mysql_num_fields($rst);
       $i = 0;
       while($i<$num_fields){
        //取得所有字段的名字
          $fields[$i] = mysql_field_name($rst,$i);//取得第i+1个字段的名字
          $i++;
       }
       echo '<table border="1" cellspacing="0" cellpadding="0">';
       //开始输出表格
       echo '<tr>';
       reset($fields);
       while(list(,$field_name)=each($fields)){
        //显示字段名称
          echo "<th>$field_name</th>";
       }
       echo '</tr>';
       while($row=mysql_fetch_array($rst)){
        //显示本页数据
          echo '<tr>';
          reset($fields);
          while(list(,$field_name)=each($fields)){
           //显示每个字段的值
             $field_value = $row[$field_name];
             if($field_value==""){
                echo '<td> </td>';
             }
             else{
                echo "<td>$field_value</td>";
             }
          }
          echo '</tr>';
       }
       echo '</table>';
       //表格输出结束
       mysql_free_result($rst) or die("无法释放result资源!");//释放result资源
    }
    else{
       echo "目前该表中没有任何数据!";
    }
 //断开连接并释放资源
    mysql_close($server);
    ?>
</body>
</html>

本站原创转载注明www.111cn.net

上传表单 upload.html
复制代码 代码如下:
<form enctype="multipart/form-data" action="upload.php教程" method="post">
<input type="hidden" name="max_file_size" value="100000">
<input name="userfile" type="file">  
<input type="submit" value="上传文件">
</form>

1.注意<form enctype="multipart/form-data"......>这是一个标签,我们要实现文件的上传,必须指定为multipart/form-data,否则服务器将不知道要干什么。
2.值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。
3.MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。
PHP上传文件涉及到的参数
复制代码 代码如下:
$f=&$HTTP_POST_FILES['Myfile'];
$dest_dir='uploads';//设定上传目录
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//设置文件名为日期加上文件名避免重复
$r=move_uploaded_file($f['tmp_name'],$dest);
chmod($dest, 0755);//设定上传的文件的属性

或者
<?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?>
======================================================================== 以上范例中 $_FILES 数组的内容如下所示。我们假设文件上传字段的名称为 userfile(名称可随意命名)
复制代码 代码如下:
$_FILES['userfile']['name'] 客户端机器文件的原名称。
$_FILES['userfile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。
$_FILES['userfile']['size'] 已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error'] 和该文件上传相关的错误代码

值:0; 没有错误发生,文件上传成功。
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
值:3; 文件只有部分被上传。
值:4; 没有文件被上传。
PHP默认的上传限定是最大2M,想上传超过此设定的文件,需要调整PHP、apache等的一些参数. 下面,我们简要介绍一下PHP文件上传涉及到的一些参数:
file_uploads
是否允许通过HTTP上传文件的开关,默认为ON即是开
upload_tmp_dir
upload_tmp_dir用来说明PHP上传的文件放置的临时目录,要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限,如果未指定则PHP使用系统默认值
upload_max_filesize
允许上传文件大小的最大值,默认为2M
复制代码 代码如下:
<?php
define('MUILTI_FILE_UPLOAD', '10'); //最多10个文件同时上传
define('MAX_SIZE_FILE_UPLOAD', '500000' ); //文件大小不超过5MB
define('FILE_UPLOAD_DIR', 'd:/'); //上传文件的目录
//允许上传的文件名
$array_extention_interdite = array( '.php' , '.php3' , '.php4' , '.exe' , '.msi' , '.htaccess' , '.gz' ); //上传文件的扩展名
//显示信息的公共函数
function func_message($message='', $ok=''){
echo '<table width="100%" cellspacing="0" cellpadding="5">';
if($ok == true){
echo '<tr bgcolor="#99FF99" ><td width="100"> </td><td class= "text"> '.$message.'</td></tr>' ;
}
if($ok == false){
echo '<tr bgcolor="#FF99CC" ><td width="100"> </td><td class="text"> '.$message.'</td></tr>';
}
echo '</table>';
}
//处理表单提交
$action = (isset($_POST['action'])) ? $_POST['action'] :'' ;
$file = (isset($_POST['file'])) ? $_POST['file'] :'' ;
if($file != '') {
$file = $file.'/';
}
$message_true = '';
$message_false = '';
switch($action){
case 'upload' :
chmod(FILE_UPLOAD_DIR,0777);
for($nb = 1 ; $nb <= MUILTI_FILE_UPLOAD ; $nb ++ ){
if( $_FILES['file_'.$nb]['size'] >= 10 ){
if ($_FILES['file_'.$nb]['size'] <= MAX_SIZE_FILE_UPLOAD ){
if (!in_array(ereg_replace('^[[:alnum:]]([-_.]?[[:alnum:]])*.' ,'.', $_FILES['file_'.$nb]['name'] ) , $array_extention_interdite) ){
if($_POST['file_name_'.$nb] !=''){
$file_name_final = $_POST['file_name_'.$nb].$extension ;
}else {
$file_name_final = $_FILES['file_'.$nb]['name'] ;
}
//文件名的修改
$file_name_final = strtr($file_name_final, 'aaaaaa', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$file_name_final = preg_replace('/([^.a-z0-1]+)/i', '_', $file_ name_final );
$_FILES['file_'.$nb]['name'] = $file_name_final;
move_uploaded_file( $_FILES['file_'.$nb]['tmp_name'] , FILE_UPLOAD_ DIR . $file . $file_name_final );
$message_true .= '已经上传文件 : '.$_FILES['file_'.$nb]['name'] .'<br>';
}else{
$message_false .= '文件上传失败 : '.$_FILES['file_'.$nb]['name'] .' <br>';
}
}else{
$message_false .= '文件尺寸超过'.MAX_SIZE_FILE_UPLOAD/1000 . 'KB : " '.$_FILES['file_'.$nb]['tmp_name'].'" <br>';}
}
}//end for
break;
}
?>
<html>
<head>
<title>多文件上传</title>
<style>
.border{background-color:#000000}
.box{background-color:#f8f8f9;}
.text{ color:#000000;
font-family: 宋体;
font-size: 12px;
font-weight:bold}
input, select{font-size: 12px;}
body {
margin-top: 8px;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
<body marginwidth="0" bottommargin="0" leftmargin="0" rightmargin="0">
<form name="form" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF'] ; ?>">
<input type="hidden" name="action" value="upload">
<table border="0" cellspacing="1" cellpadding="0" align="center" class="border">
<tr>
<td>
<?php
if($message_true != '') { func_message($message_true, true); }
if($message_false != ''){ func_message($message_false, false); }
?>
<table width="100%" border="0" cellspacing="5" cellpadding="2" align="center" class="box">
<?php
for($nb = 1 ; $nb <= MUILTI_FILE_UPLOAD ; $nb ++ ){
?>
<tr class="text">
<td>上传文件: <?php echo $nb; ?></td> <td><input type="file" name="file_<?php echo $nb; ?>"></td>
<td>新文件名(包括扩展名):<?php echo $nb; ?> </td><td><input type="text" name="file_name_<?php echo $nb; ?>"></td>
</tr>
<?php } ?>
<tr>
<td colspan="2" align="right" class="text">上传目的地址:<?php echo FILE_UPLOAD_DIR ;?>
<select name="file">
<option value=""></option>
<?php
$repertoire = opendir(FILE_UPLOAD_DIR);
while( $file = readdir($repertoire) ) {
$file = str_replace('.','',$file);
if( is_dir($file)) {
?>
<option value="<?php echo $file; ?>"> <?php echo $file; ?>/</option>
<?php
}
}
closedir($repertoire);
?>
</select>
</td>
<td colspan="2" align="right"><input type="submit" value="可同时上传<?php echo $nb-1; ?> 个文件 "></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body> </html>

 

<?
//php教程 var_export读写实例类
class user{
 var $filepath;
 function __()
 {
  $this->filepath = "d:/www.111cn.net/group/";
 }
 function cache() {
  $array = $this->db->select('select group_id,group_name from group','hashmap');
  $fp = fopen ($this->filepath, 'w');
  fputs($fp, '<?php return ' . var_export($array, true) . ';?>');
  fclose($fp);
 }

 function getVar_export($value) {
  $array = require($this->filepath);
  foreach ($array as $key => $v) {
   if ($key==$value) {
    $selected = ' current option';
   } else {
    $selected = '';
   }
   $html .= '<option value="' . $key . '"' . $selected . '>' . $v . '</option>';
  }
 
  return $html;
 }
}

//使用实例方法

$g = new user();
if( intval( $_GET['iscreate']) )
{
 $g->cache();
}
else
{
 $g->getVar_export('vv');
}
//本站原创www.111cn.net转载注明来源
?>

[!--infotagslink--]

相关文章

  • 解决Pycharm的项目目录突然消失的问题

    今天小编就为大家分享一篇解决Pycharm的项目目录突然消失的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-22
  • C#路径,文件,目录及IO常见操作汇总

    这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php二维码生成

    本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
  • Java生成随机姓名、性别和年龄的实现示例

    这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
  • JavaScript动态创建div属性和样式示例代码

    1.创建div元素: Javascript代码 复制代码 代码如下: <scripttypescripttype="text/javascript"> functioncreateElement(){ varcreateDiv=document.createElement("div"); createDiv.innerHTML="Testcreateadiveleme...2013-10-13
  • C#生成随机数功能示例

    这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • JS创建Tag标签的方法详解

    这篇文章主要介绍了JS创建Tag标签的方法,结合具体实例形式分析了javascript动态操作页面HTML元素实现tag标签功能的步骤与相关操作技巧,需要的朋友可以参考下...2017-06-15
  • docker 启动elasticsearch镜像,挂载目录后报错的解决

    这篇文章主要介绍了docker 启动 elasticsearch镜像,挂载目录后报错的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-20
  • idea out目录与target目录的区别详解

    这篇文章主要介绍了idea out目录与target目录的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-08
  • jQuery为动态生成的select元素添加事件的方法

    下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
  • php生成唯一数字id的方法汇总

    关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
  • PHP自动生成后台导航网址的最佳方法

    经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
  • C#获得程序的根目录以及判断文件是否存在的实例讲解

    今天小编大家分享一篇C#获得程序的根目录以及判断文件是否存在的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • 利用Node.js获取项目根目录的小技巧

    这篇文章介绍的是一个小技巧来获取node.js项目根目录,这个技巧非常实用。有需要的朋友们可以参考借鉴,下面来一起看看吧。...2016-10-02
  • PHP递归创建多级目录

    我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){    if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个“父目录不存...2015-11-08
  • js生成随机数的方法实例

    js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1 之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要: (1)生成一个 0 - 1...2015-10-21
  • 解决docker挂载的目录无法读写问题

    这篇文章主要介绍了解决docker挂载的目录无法读写问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-19
  • python import 上级目录的导入

    这篇文章主要介绍了python import 上级目录的导入,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • 什么是cookie?js手动创建和存储cookie

    什么是cookie? cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。 有关cookie的例子: 名字 cookie 当访...2014-05-31
  • PS如何创建变形文字 ps给文字变形的方法

    PS怎么创建变形文字?ps中想要给输入的文字变形,该怎么调整文字的显示形态呢?下面我们就来看看ps给文字变形的方法,需要的朋友可以参考下 我们在图层上输入文字后,可以...2017-07-06