php怎么用代码创建文件 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 创建文件 – fopen()
fopen() 函数也用于创建文件。也许有点混乱,但是在 PHP 中,创建文件所用的函数与打开文件的相同。
如果您用 fopen() 打开并不存在的文件,此函数会创建文件,假定文件被打开为写入(w)或增加(a)。
下面的例子创建名为 "testfile.txt" 的新文件。此文件将被创建于 PHP 代码所在的相同目录中:
实例
$myfile = fopen("testfile.txt", "w")
PHP 文件权限
如果您试图运行这段代码时发生错误,请检查您是否有向硬盘写入信息的 PHP 文件访问权限。
PHP 写入文件 – 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);
?>
如果现在我们打开这个 “newfile.txt” 文件,Bill 和 Steve 都已消失,只剩下我们刚写入的数据:
Mickey Mouse
Minnie Mouse
换行符‘\n'和回车符‘\r'
顾名思义,换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符
‘\n' 10 换行(newline)
‘\r' 13 回车(return)
也可以表示为'\x0a'和'\x0d'.(16进制)
在windows系统下,回车换行符号是”\r\n”.但是在Linux等系统下是没有”\r”符号的。
在解析文本或其他格式的文件内容时,常常要碰到判定回车换行的地方,这个时候就要注意既要判定”\r\n”又要判定”\n”。
写程序时可能得到一行,将其进行trim掉'\r',这样能得到你所需要的string了。
分页基本上是每个项目都会使用到的,所以呢,把它封装成一个工具类,以后直接调用就可以了(虽然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进行排序。
实现方法:
代码如下 | 复制代码 |
<?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
)
)
|
相关文章
- 这篇文章主要给大家介绍了关于C#中txt数据写入的几种常见方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-25
- 这篇文章主要介绍了c# 如何对CSV文件操作,帮助大家更好的理解和学习C#,感兴趣的朋友可以了解下...2020-11-03
- 小编分享了一段php实现的简单日志写入函数的代码,不知道php如何写日志的同学快来看看吧! 代码如下复制代码functionlog($logthis){file_put_contents('logfil...2017-07-06
python3中关于excel追加写入格式被覆盖问题(实例代码)
这篇文章主要介绍了python3中关于excel追加写入格式被覆盖问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-04-27- 接下来我们在桌面新建一个文件夹,命名为“DIV+CSS布局练习”,在文件夹下新建两个空的记事本文档,输入以下内容: 这是XHTML的基本结构,将其命名为index.htm...2017-07-06
Python中Scrapy+adbapi提高数据库写入效率实现
本文主要介绍了Python中Scrapy+adbapi提高数据库写入效率实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-21- 这篇文章主要介绍了C#实现将日志写入文本文件的方法,涉及C#针对日志文件写入的相关技巧,需要的朋友可以参考下...2020-06-25
- 本篇文章是对使用C#实现写入与读出文本文件的方法进行了详细的分析介绍,需要的朋友参考下...2020-06-25
- 这篇文章主要介绍了OpenCVcv::Mat中的数据按行列写入txt文件中,需要的朋友可以参考下...2020-04-25
- 用 Memcache 可以缓解 php和数据库压力下面代码是解决高负载下数据库写入瓶颈问题。遇到最实用的:写入ip pv uv的时候 ,用户达到每分钟几万访问量,要记录这些数据,实时写...2016-11-25
- 本文主要介绍C#通过XML节点属性、属性值对XML的读取,写入操作,大家参考使用吧...2020-06-25
- 本文要介绍的是ASP.NET怎样读写文本文件,但更重要的是实现的过程。使用的工具是Visual Studio 2015 ,.NET版本是4.6.1 。一共建立的2个项目,HoverTreePanel和HoverTreeWeb,都是ASP.NET项目。文章末尾附源码下载。下面跟着小编一起来看下吧...2021-09-22
- 这篇文章主要介绍了PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码,需要的朋友可以参考下...2016-03-27
- 这篇文章主要介绍了C#实现xml文件的读取与写入方法,涉及C#操作XML文件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 在php中数组写入文件的方法有很多种,像我们要做成缓存文件就会把php数组转换成文件然后保存到.php文件,调用时直接调用此文件即可。 php把数组写入文件,通过序列和...2016-11-25
- 这篇文章主要介绍了java 将字符串、list 写入到文件,并读取内容的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-24
PHP中file_put_contents追加和换行的实现方法
下面小编就为大家带来一篇PHP中file_put_contents追加和换行的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-04-03- 这篇文章主要介绍了Laravel中log无法写入问题的解决,文中给出了详细解决方法供大家参考学习,对大家具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧。...2017-06-20
- 这篇文章主要介绍了C#操作读取、写入XML文档的实用方法,即即用.NET本身提供的Deserialize和Serialize进行反序列化和序列化XML文档,感兴趣的小伙伴们可以参考一下...2020-06-25
在.NET中使用Newtonsoft.Json转换,读取,写入的方法介绍
Newtonsoft.Json.JsonConvert类是非微软提供的一个JSON序列化和反序列的开源免费的类库...2021-09-22