首页 > 后端开发 > 正文

php的文件操作(php操作文件的函数)(PHP处理数组常用的几个函数)

2024-09-28 13:02:24 | 我爱编程网

今天我爱编程网小编为大家带来了php的文件操作(php操作文件的函数)(PHP处理数组常用的几个函数),希望能帮助到大家,一起来看看吧!

本文目录一览:

php的文件操作(php操作文件的函数)(PHP处理数组常用的几个函数)

php的文件操作(php操作文件的函数)

php文件操作之小型留言本实例

本文实例讲述了php文件操作之小型留言本。分享给大家供大家参考。具体如下:

Index.php文件如下:

?php

$path

=

"DB/";

//定义路径

$dr

=

opendir($path);

//打开目录

while($filen

=

readdir($dr))

//循环读取目录中的文件

{

if($filen

!=

"."

and

$filen

!=

"..")

{

$fs

=

fopen($path.$filen,

"r");

echo

"B标题:/B".fgets($fs)."BR";

echo

"B作者:/B".fgets($fs)."BR";

echo

"B内容:/BPRE".fread($fs,

filesize($path.$filen))."/PRE";

echo

"HR";

fclose($fs);

}

}

closedir($dr)

//关闭目录

?

Post.php文件如下:

?php

$path

=

"DB/";

$filename

=

"S".date("YmdHis").".dat";

$fp

=

fopen($path.$filename,

"w");

fwrite($fp,

$_POST["title"]."/n");

fwrite($fp,

$_POST["author"]."/n");

fwrite($fp,

$_POST["content"]."/n");

fclose($fp);

echo

"留言发表成功!";

echo

"a

href="Index.php"

mce_href="Index.php"返回首页/a";

?

!DOCTYPE

HTML

PUBLIC

"-//W3C//DTD

HTML

4.01

Transitional//EN"

""

html

head

title发表新的留言/title

meta

http-equiv="Content-Type"

content="text/html;

charset=gb2312"

/head

body

H1p

align="center"发表新的留言/p/H1

form

name="form1"

method="post"

action="Post.php"

table

width="500"

border="0"

align="center"

cellpadding="0"

cellspacing="0"

tr

td标题/td

tdinput

name="title"

type="text"

id="title"

size="50"/td

/tr

tr

td作者/td

tdinput

name="author"

type="text"

id="author"

size="20"/td

/tr

tr

td内容/td

tdtextarea

name="content"

cols="50"

rows="10"

id="content"/textarea/td

/tr

/table

p

align="center"

input

type="submit"

value="Submit"

input

type="reset"

value="Reset"

/p

/form

/body

/html

希望本文所述对大家的php程序设计有所帮助。

php是什么格式的文件,怎么播放(打开)?

1、PHP,是超级文本预处理语言(HypertextPreprocessor)的缩写。

PHP它是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言。

2、首先找到一个php文件,如下图所示。

3、鼠标右击php文件,在弹出来的列表中选择“打开方式(H)”,如下图所示。

4、在打开的方式的选项中选择“记事本”,如下图所示。

5、然后就可以在记事本中看到php的代码了,如下图所示。

6、鼠标php文件,在出现的列表中选择“Notepad++”,如下图所示。

7、然后可以看到在Notepad++中打开的php代码如下图所示,可以看到此时php代码显示不同颜色,这是Notepad++自带的高显亮。

PHP绕过open_basedir限制操作文件的三种方法

由于open_basedir的设置对system等命令执行函数是无效的,所以我们可以使用命令执行函数来访问限制目录。

我们首先创建一个目录

且在该目录下新建一个1.txt内容为abc

再在该目录下创建一个目录命名为b

并且在该目录下创建一个1.php文件内容为

且在php.ini中设置好我们的open_basedir 我爱编程网

我们尝试执行1.php看看open_basedir是否会限制我们的访问

执行效果如图

很明显我们无法直接读取open_basedir所规定以外的目录文件。

接下来我们用system函数尝试绕open_basedir的限制来删除1.txt

编辑1.php为

先来看看执行1.php之前的文件情况

执行1.php之后

我们先来了解一下symlink函数

symlink函数将建立一个指向target的名为link的符号链接,当然一般情况下这个target是受限于open_basedir的。

由于早期的symlink不支持windows,我的测试环境就放在Linux下了。

测试的PHP版本是5.3.0,其他的版本大家自测吧。

在Linux环境下我们可以通过symlink完成一些逻辑上的绕过导致可以跨目录操作文件。

我们首先在/var/www/html/1.php中编辑1.php的内容为

接着在/var/www/中新建一个1.txt文件内容为

再来设置一下我们的open_basedir

在html目录下编辑一个php脚本检验一下open_basedir

执行看下。

意料之中,文件无法访问。

我们执行刚才写好的脚本,1.php

此时tmplink还是一个符号链接文件,它指向的路径是c/d,因此exploit指向的路径就变成了

由于这个路径在open_basedir的范围之内所以exploit成功建立了。

之后我们删除tmplink符号链接文件再新建一个同名为tmplink的文件夹,这时exploit所指向的路径为

由于这时候tmplink变成了一个真实存在的文件夹所以tmplink/../../变成了1.txt所在的目录即/var/www/

然后再通过访问符号链接文件exploit即可直接读取到1.txt的文件内容

当然,针对symlink()只需要将它放入disable_function即可解决问题,所以我们需要寻求更多的方法。

glob是php自5.3.0版本起开始生效的一个用来筛选目录的伪协议,由于它在筛选目录时是不受open_basedir的制约的,所以我们可以利用它来绕过限制,我们新建一个目录在/var/www/下命名为test

并且在/var/www/html/下新建t.php内容为

执行结果如图:

成功躲过open_basedir的限制读取到了文件。

php实现编辑和保存文件的方法

文章主要介绍了php实现编辑和保存文件的方法,涉及php针对文件的读取、编辑和保存操作的'相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下。

本文实例讲述了php实现编辑和保存文件的方法。分享给大家供大家参考。具体如下:

save_file.php:

?php

session_start();

$handle=fopen($_POST['original_file_name'],"w");

$text=$_POST['file_contents'];

if(fwrite($handle,$text)==FALSE){

$_SESSION['error']='spanclass="redtxt"Therewasanerror/span';

}else{

$_SESSION['error']='spanclass="redtxt"Fileeditedsuccessfully/span';

}

fclose($handle);

header("Location:".$_POST['page']);

?

read_file.php:

!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"

""

htmlxmlns=""

head

metahttp-equiv="Content-Type"content="text/html;charset=iso-8859-1"/

titleUntitledDocument/title

/head

formaction="savecontents.php"method="post"

textareaname="file_contents"

?php

$fileName="location/of/orignal/file/my_file.php";

$handle=fopen($fileName,"r");

while(!feof($handle)){

$text=fgets($handle);

echo$text;

}

?

/textarea

inputtype="hidden"value="?echo$fileName;?"name="original_file_name"/

/form

body

/body

/html

希望本文所述对大家的php程序设计有所帮助。

php的文件操作(php操作文件的函数)(PHP处理数组常用的几个函数)

PHP处理数组常用的几个函数

一、数组操作的基本函数
数组的键名和值
array_values($arr); 获得数组的值
array_keys($arr); 获得数组的键名
array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
in_array("apple",$arr); 在数组中检索apple
array_search("apple",$arr); 在数组中检索apple ,如果存在返回键名
array_key_exists("apple",$arr); 检索给定的键名是否存在数组中
isset($arr[apple]): 检索给定的键名是否存在数组中
数组的内部指针
current($arr); 返回数组中的当前单元
pos($arr); 返回数组中的当前单元
key($arr); 返回数组中当前单元的键名
prev($arr); 将数组中的内部指针倒回一位
next($arr); 将数组中的内部指针向前移动一位
end($arr); 将数组中的内部指针指向最后一个单元
reset($arr; 将数组中的内部指针指向第一个单元
each($arr); 将返回数组当前元素的一个键名/值的构造数组,并使数组指针向前移动一位
list($key,$value)=each($arr); 获得数组当前元素的键名和值
数组和变量之间的转换
extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值
注:(第二个参数很重要,可以看手册使用)使用方法 echo $a;
compact(var1,var2,var3);用给定的变量名创建一个数组
二、数组的分段和填充
数组的分段
array_slice($arr,0,3); 可以将数组中的一段取出,此函数忽略键名
array_splice($arr,0,3,array("black","maroon")); 可以将数组中的一段取出,与上个函数不同在于返回的序列从原数组中删除
分割多个数组
array_chunk($arr,3,TRUE); 可以将一个数组分割成多个,TRUE为保留原数组的键名
数组的填充
array_pad($arr,5,'x'); 将一个数组填补到制定长度
三、数组与栈
array_push($arr,"apple","pear"); 将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
array_pop($arr); 将数组栈的最后一个元素弹出(出栈)
四、数组与列队
array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改为从零技术,文字键名不变)
array_unshift($arr,"a",array(1,2));在数组的开头插入一个或多个元素
五、回调函数
array_walk($arr,'function','words'); 使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)
array_mpa("function",$arr1,$arr2); 可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)
array_filter($arr,"function"); 使用回调函数过滤数组中的每个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变
array_reduce($arr,"function","*"); 转化为单值函数(*为数组的第一个值)
六、数组的排序
通过元素值对数组排序
sort($arr); 由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
rsort($arr); 由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
usort($arr,"function"); 使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序
asort($arr); 由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
arsort($arr); 由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
uasort($arr,"function"); 使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序
通过键名对数组排序
ksort($arr); 按照键名正序排序
krsort($arr); 按照键名逆序排序
uksort($arr,"function"); 使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)
自然排序法排序
natsort($arr); 自然排序(忽略键名)
natcasesort($arr); 自然排序(忽略大小写,忽略键名)
七、数组的计算
数组元素的求和
array_sum($arr); 对数组内部的所有元素做求和运算
数组的合并
array_merge($arr1,$arr2); 合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)
“+”$arr1+$arr2; 对于相同的键名只保留后一个
array_merge_recursive($arr1,$arr2); 递归合并操作,如果数组中有相同的字符串键名,这些值将被合并到一个数组中去。如果一个值本身是一个数组,将按照相应的键名把它合并为另一个数组。当数组 具有相同的数组键名时,后一个值将不会覆盖原来的值,而是附加到后面
数组的差集
array_diff($arr1,$arr2); 返回差集结果数组
array_diff_assoc($arr1,$arr2,$arr3); 返回差集结果数组,键名也做比较
数组的交集
array_intersect($arr1,$arr2); 返回交集结果数组
array_intersect_assoc($arr1,$arr2); 返回交集结果数组,键名也做比较
八、其他的数组函数
range(0,12); 创建一个包含指定范围单元的数组
array_unique($arr); 移除数组中重复的值,新的数组中会保留原始的键名
array_reverse($arr,TRUE); 返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名
//srand((float)microtime()*10000000); 随机种子触发器
array_rand($arr,2); 从数组中随机取出一个或 多个元素
shuffle($arr); 将数组的顺序打乱
求课吧有很多关于PHP编程方面的教程

php的文件操作(php操作文件的函数)(PHP处理数组常用的几个函数)

php中strtolower的函数功能

我爱编程网(https://www.52biancheng.com)小编还为大家带来php中strtolower的函数功能的相关内容。

在Web开发过程中,字符串处理是一项不可或缺的技能。其中,处理字符串的大小写问题尤为关键,尤其是在涉及密码验证、URL地址处理等场景。在PHP中,为我们提供了丰富的字符串处理函数,其中strtolower函数便是其中之一,其主要功能是将字符串全部转换为小写字母。


一、strtolower函数的基本功能


PHP中的strtolower函数是一个强大的工具,用于将输入的字符串完全转化为小写形式。其语法简洁明了:


语法: `strtolower(string $str)`


在这里,$str是待转换的字符串,函数返回转换后的小写字符串。


二、示例说明


让我们通过一个简单的示例来展示strtolower函数的使用:


假设我们有一个包含大写字母的字符串,使用strtolower函数后,所有大写字母都会被转换为小写字母,并返回转换后的结果。


三、注意事项


1. 使用strtolower函数时,需要注意字符集的问题。该函数主要针对ASCII字符集进行设计,对于其他字符集,可能会出现不可预期的结果。因此,在处理非ASCII字符时,要确保字符集的兼容性。


2. 在PHP中,字符串的大小写敏感性取决于具体的应用场景。例如,在MySQL数据库中,表名和列名的大小写是敏感的,而变量名和函数名则是大小写不敏感的。因此,在使用PHP处理字符串时,需要根据具体情境来判断是否需要考虑字符串的大小写问题。


除了上述注意事项,还需要注意的是,strtolower函数在处理字符串时非常高效,能够快速地完成字符串的小写转换,因此在性能要求较高的场景下,该函数是一个理想的选择。


总的来说,PHP中的strtolower函数是一个实用的工具,能够帮助开发者轻松处理字符串的大小写问题。在Web开发过程中,掌握该函数的使用方法和注意事项,将有助于提高开发效率和代码质量。

以上就是我爱编程网整理的php的文件操作(php操作文件的函数)(PHP处理数组常用的几个函数)相关内容,想要了解更多信息,敬请查阅我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
标签: PHP
与“php的文件操作(php操作文件的函数)(PHP处理数组常用的几个函数)”相关推荐