php怎么用代码创建文件 PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码

 更新时间:2017年7月6日 23:34  点击:1731
本文介绍了PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码,非常实用,不会的同学可以看看这篇文章。

创建文件我们用到函数

fopen ( string filename, string mode )
参数filename为创建文件名
参数mode为以什么方式打开文件filename
其中mode可能值列表:

mode 说明

‘r' 只读方式打开,将文件指针指向文件头。
‘r+' 读写方式打开,将文件指针指向文件头。
‘w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
‘a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
‘x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
‘x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
下面代码是我通过利用函数fopen创建一个名为Demo,格式为txt的文件,并在文件中写入"Welcome To ItCodeWorld!"的数据。

< ?php

//要创建的两个文件

$TxtFileName="Demo.txt";

//以读写方式打写指定文件,如果文件不存则创建

if( ($TxtRes=fopen($TxtFileName,"w+")) === FALSE){

echo("创建可写文件:".$TxtFileName."失败");

exit();

}

echo("创建可写文件".$TxtFileName."成功!</br>");

$StrConents="Welcome To ItCodeWorld!";//要 写进文件的内容

if(!fwrite ($TxtRes,$StrConents)){//将信息写入文件

echo("尝试向文件".$TxtFileName."写入".$StrConents."失败!");

fclose($TxtRes);

exit();

}

echo("尝试向文件".$TxtFileName."写入".$StrConents."成功!");

fclose ($TxtRes);//关闭指针

?>

PHP 创建文件 &ndash; fopen()
fopen() 函数也用于创建文件。也许有点混乱,但是在 PHP 中,创建文件所用的函数与打开文件的相同。
如果您用 fopen() 打开并不存在的文件,此函数会创建文件,假定文件被打开为写入(w)或增加(a)。
下面的例子创建名为 "testfile.txt" 的新文件。此文件将被创建于 PHP 代码所在的相同目录中:
实例
$myfile = fopen("testfile.txt", "w")
PHP 文件权限
如果您试图运行这段代码时发生错误,请检查您是否有向硬盘写入信息的 PHP 文件访问权限。
PHP 写入文件 &ndash; fwrite()
fwrite() 函数用于写入文件。
fwrite() 的第一个参数包含要写入的文件的文件名,第二个参数是被写的字符串。
下面的例子把姓名写入名为 "newfile.txt" 的新文件中:
实例

<?php

$myfile=fopen("newfile.txt","w")ordie("Unable to open file!");

$txt="Bill Gates\n";

fwrite($myfile,$txt);

$txt="Steve Jobs\n";

fwrite($myfile,$txt);

fclose($myfile);

?>

请注意,我们向文件 "newfile.txt" 写了两次。在每次我们向文件写入时,在我们发送的字符串 $txt 中,第一次包含 "Bill Gates",第二次包含 "Steve Jobs"。在写入完成后,我们使用 fclose() 函数来关闭文件。
如果我们打开 "newfile.txt" 文件,它应该是这样的:
Bill Gates
Steve Jobs

PHP 覆盖(Overwriting)

如果现在 "newfile.txt" 包含了一些数据,我们可以展示在写入已有文件时发生的的事情。所有已存在的数据会被擦除并以一个新文件开始。
在下面的例子中,我们打开一个已存在的文件 "newfile.txt",并向其中写入了一些新数据:
实例

<?php

$myfile=fopen("newfile.txt","w")ordie("Unable to open file!");

$txt="Mickey Mouse\n";

fwrite($myfile,$txt);

$txt="Minnie Mouse\n";

fwrite($myfile,$txt);

fclose($myfile);

?>

如果现在我们打开这个 &ldquo;newfile.txt&rdquo; 文件,Bill 和 Steve 都已消失,只剩下我们刚写入的数据:

Mickey Mouse
Minnie Mouse
换行符&lsquo;\n'和回车符&lsquo;\r'
顾名思义,换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符

&lsquo;\n' 10 换行(newline)
&lsquo;\r' 13 回车(return)

也可以表示为'\x0a'和'\x0d'.(16进制)
在windows系统下,回车换行符号是&rdquo;\r\n&rdquo;.但是在Linux等系统下是没有&rdquo;\r&rdquo;符号的。
在解析文本或其他格式的文件内容时,常常要碰到判定回车换行的地方,这个时候就要注意既要判定&rdquo;\r\n&rdquo;又要判定&rdquo;\n&rdquo;。
写程序时可能得到一行,将其进行trim掉'\r',这样能得到你所需要的string了。

分页基本上是每个项目都会使用到的。本文介绍了常用PHP封装分页工具类,对此有疑问的同学快来看看这篇文章吧!

分页基本上是每个项目都会使用到的,所以呢,把它封装成一个工具类,以后直接调用就可以了(虽然TP框架的灰常强大,但是自己封一个也未尝不可。),这样既省时又省力还赚‘工分'。

我封的这个分页工具类还比较完整,有首页,上一页,下一页,末页和可选数量的页码数量(也就是当页面很多时,只显示依据参数传入的个数),还可以依据需求选择是否使用下拉跳转页面功能。

 代码如下复制代码

<?php

/**

 * 分页工具类

 */

 

classpage{

 

  /**

   * 返回分页所需字符串

   * @param $pageNum int 显示的页码

   * @param $pageCount int 总的页码数

   * @param $url string 当前页码路径

   * @param $Count string 页码列表里显示的个数

   * @param $selected bool 是否开启下拉框选择功能。默认不开启

   * return $strpage string 分页字符串

   */

  functionshowPage($pageNum,$pageCount,$url,$Count= 5,$selected= false){

    $pageMaxVal=$Count- 1;// 页码到达最大时,页码列表里第一个页码与最大页码的差

    $pageMiddleVal=ceil($Count/ 2);// 依据需要显示页码个数得到的中间值

    $pageMiddleCha=floor($Count/ 2);// 依据需要显示页码个数得到的当前页码与第一个页码的差

 

    // 判断url是否已经存在?

    if(!strpos($url,'?')){// 未存在?

      $url.='?'

    }else{

      $url.='&'

    }

 

    // 首页

    $strpage="首页";

 

    // 上一页

    $preNum=$pageNum> 1 ?$pageNum- 1 : 1;

 

    // 当页码为第一页时取消上一页按钮的功能

    $strpage.=$pageNum== 1 ?"上一页":"上一页";

 

    // 显示的页码列表中的第一个页码

    $startPage=$pageNum>$pageMiddleVal?$pageNum-$pageMiddleCha: 1;

    // 起始页码最大值 = 总页数 - 4

    if($pageCount-$pageMaxVal> 0 &&$startPage>$pageCount-$pageMaxVal){

      $startPage=$pageCount-$pageMaxVal;

    }

 

    // 显示的页码列表中的最后一个页码

    $endPage=$startPage<($pageCount-$pageMaxVal) ?$startPage+$pageMaxVal:$pageCount;

 

    // 中间数字页码

    for($i=$startPage;$i<=$endPage;$i++){

      if($i==$pageNum){

        $strpage.="$i";

      }else{

        $strpage.="$i";

      }

    }

 

    // 下一页

    $nextNum=$pageNum<$pageCount?$pageNum+ 1 :$pageCount;

 

    // 当页码为最后一页时取消下一页按钮的功能

    $strpage.=$pageNum==$pageCount?"下一页":"下一页";

 

    // 末页

    $strpage.="末页";

 

    // 总页数

    $strpage.="总页数:{$pageCount}  ";

 

    // 判断是否是否选择页码功能

    if($selected){// 选择了

      $strpage.="当前页码:

        for($i= 1;$i<=$pageCount;$i++){

          if($i==$pageNum){

            $strpage.="

          }else{

            $strpage.="

          }

        }

         

      $strpage.="";

    }

 

    return$strpage;

  }

 

}

 

接下来应该会PO完MySQL剩余部分知识吧,希望大家继续关注。

这篇文章介绍了PHP使用递归算法无限遍历数组的实例,分析了php针对一维数组、二维数组及多维不规则数组的通用遍历技巧,有兴趣的同学可以看看

本文实例讲述了PHP使用递归算法无限遍历数组。分享给大家供大家参考,具体如下:

 代码如下 复制代码

<?php

//无限遍历数组

$a1=array("a","b","c");//一维数组

$a2=array(array(21, 3, 6),array("a","b","c"));//二维数组

$a3=array(array(array(5, 55), 4, 444), 2, 7, 6, 8,array("w","d",array(3, 2,"a"),"s"));//多维不规则数组

functionfun($a) {

  foreach($aas$val) {

    if(is_array($val)) {//如果键值是数组,则进行函数递归调用

      fun($val);

    }else{// 如果键值是数值,则进行输出

      echo"$val<br />";

    }//end if

  }//end foreach

}//end fun

//fun($a1);

//fun($a2);

fun($a3);

?>

输出:

 代码如下 复制代码

5

55

4

444

2

7

6

8

w

d

3

2

a

s

小编给大家分享的这篇文章介绍了PHP实现二维数组根据key进行排序的方法,对二维数组根据key进行排序有疑惑的同学可以参考一下本文

在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果;但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来对自己的想法进行实现。下面就讲述一下如何实现二维数组根据key进行排序。

实现方法:

 
 代码如下 复制代码
<?php
/**
 * =======================================
 * Created by Zhihua_W.
 * Author: Zhihua_W
 * Date: 2016/11/26 0002
 * Time: 下午 2:43
 * Project: PHP开发小技巧
 * Power: 实现二维数组根据key进行排序
 * =======================================
 */
/**
 * 二维数组排序
 * @param array $arr 需要排序的二维数组
 * @param string $keys 所根据排序的key
 * @param string $type 排序类型,desc、asc
 * @return array $new_array 排好序的结果
 */
functionarray_sort($arr,$keys,$type='desc')
{
  $key_value=$new_array=array();
  foreach($arras$k=>$v) {
    $key_value[$k] =$v[$keys];
  }
  if($type=='asc') {
    asort($key_value);
  }else{
    arsort($key_value);
  }
  reset($key_value);
  foreach($key_valueas$k=>$v) {
    $new_array[$k] =$arr[$k];
  }
  return$new_array;
}
$arr=array(
  array(
    'name'=>'a',
    'sex'=>'m',
    'sort'=> 5
  ),
  array(
    'name'=>'c',
    'sex'=>'m',
    'sort'=> 8
  ),
  array(
    'name'=>'g',
    'sex'=>'m',
    'sort'=> 3
  ),
  array(
    'name'=>'e',
    'sex'=>'w',
    'sort'=> 6
  ),
  array(
    'name'=>'b',
    'sex'=>'w',
    'sort'=> 2
  ),
);
//打印出原数组
print_r($arr);
//打印出排好序的数组
print_r(array_sort($arr,'name'));
?>
 

通过打印出的结果我们就可以看到,数组根据“name”进行排序。

 
 代码如下 复制代码
//原数组
Array
(
  [0] => Array
    (
      [name] => a
      [sex] => m
      [sort] => 5
    )
  [1] => Array
    (
      [name] => c
      [sex] => m
      [sort] => 8
    )
  [2] => Array
    (
      [name] => g
      [sex] => m
      [sort] => 3
    )
  [3] => Array
    (
      [name] => e
      [sex] => w
      [sort] => 6
    )
  [4] => Array
    (
      [name] => b
      [sex] => w
      [sort] => 2
    )
)
//排序后数组
Array
(
  [2] => Array
    (
      [name] => g
      [sex] => m
      [sort] => 3
    )
  [3] => Array
    (
      [name] => e
      [sex] => w
      [sort] => 6
    )
  [1] => Array
    (
      [name] => c
      [sex] => m
      [sort] => 8
    )
  [4] => Array
    (
      [name] => b
      [sex] => w
      [sort] => 2
    )
  [0] => Array
    (
      [name] => a
      [sex] => m
      [sort] => 5
    )
)
 
[!--infotagslink--]

相关文章