목차
投票完毕!
백엔드 개발 PHP 튜토리얼 php 目录与文件处理-郑阿奇(续)_PHP教程

php 目录与文件处理-郑阿奇(续)_PHP教程

Jul 21, 2016 pm 03:26 PM
php 그리고 다루다 작동하다 문서 최대 사용 목차 표현하다

1.文件目录操作
最顶层止录是磁盘根目录,用'/'或'//'
当前目录 ./
../表示apache的目录即htdocs目录
1.创建与删除目录 mkdir

复制代码 代码如下:

if(mkdir("./path",0700)) //在当前目录中创建path目录
echo "创建成功";
?>

2.获取和更改当前目录
使用getcwd()函数可以取得当前的工作目录,该函数没有参数。成功则返回当前的工作目录,失败则返回FALSE
3.打开和关闭目录句柄
opendir($dir)
closed($dir_handle)
4.读取目录内容
readdir(),该参数是一个已经打开的目录句柄,与while循环可以实现对目录的遍历
5.获取指定路径中的目录与文件 。
array scandir(string $directory [, int $sorting_order [, resource $context ]])
说明:$directory为指定路径。参数$sorting_order默认是按字母升序排列,如果设为1表示按字母的降序排列。
$context是可选参数,是一个资源变量,可以用stream_context_create()函数生成,这个变量保存着与具体的操作对象有关的一些数据。
函数运行成功则返回一个包含指定路径下的所有目录和文件名的数组,失败则返回FALSE
2.操作文件的一般方法
3.文件的打开与关闭
1.打开文件
resource fopen(string $filename , string $mode [, bool $use_include_path [, resource $context ]])
●$filename参数。fopen()函数将$filename参数指定的名字资源绑定到一个流上
●$mode参数。$mode参数指定了fopen()函数访问文件的模式,取值见表4.5。
$mode
说 明
'r'
只读方式打开文件,从文件头开始读
'r+'
读写方式打开文件,从文件头开始读写
'w'
写入方式打开文件,将文件指针指向文件头。如果文件已经存在则删除已有内容,如果文件不存在则尝试创建它
'w+'
读写方式打开文件,将文件指针指向文件头。如果文件已经存在则删除已有内容,如果文件不存在则尝试创建它
'a'
写入方式打开文件,将文件指针指向文件末尾,如果文件已有内容将从文件末尾开始写。如果文件不存在则尝试创建它
'a+'
读写方式打开文件,将文件指针指向文件末尾。如果文件已有内容将从文件末尾开始读写。如果文件不存在则尝试创建它
'x'
创建并以写入方式打开文件,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建它。此选项被PH及以后的版本所支持,仅能用于本地文件
'x+'
创建并以读写方式打开文件,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建它。此选项被PH及以后的版本所支持,仅能用于本地文件
'b'
二进制模式,用于连接在其他模式后面。如果文件系统能够区分二进制文件和文本文件(Windows区分,而UNIX不区分),则需要使用到这个选项,推荐一直使用这个选项以便获得最大程度的可移植性

●$use_include_path参数。如果需要在include_path(PHP的include路径,在PHP的配置文件设置)中搜寻文件,
可以将可选参数 $use_include_path的值设为1或TRUE,默认为FALSE。
●$context参数。可选的$context参数只有文件被远程打开时(如通过HTTP打开)才使用,它是一个资源变量,
其中保存着与fopen()函数具体的操作对象有关的一些数据。如果fopen()打开的是一个HTTP地址,
那么这个变量记录着HTTP请求的请求类型、HTTP版本及其他头信息;如果打开的是FTP地址,
记录的可能是FTP的被动/主动模式
2.关闭文件
bool fclose(resource $handle)
4.文件的写入
文件写入前需打开文件,不存在先创建它,一般用fopen()函数创建
●fwrite().文件打开后,向文件写入内容
int fwrite(resource $handle , string $string [, int $length ])
说明:参数$handle是写入的文件句柄,
$string是将要写入文件中的字符串数据,
$length是可选参数,如果指定了$length,则当写入了$string中的前$length个字节的数据后停止写入。
●file_put_contents()函数。PHP 5还引入了file_put_contents()函数。这个函数的功能与依次调用fopen()、fwrite()及fclose()函数的功能一样。语法格式如下:
int file_put_contents(string $filename , string $data [, int $flags [, resource $context ]])
说明:$filename是要写入数据的文件名。
$data是要写入的字符串,$data也可以是数组,但不能为多维数组。
在使用FTP或HTTP向远程文件写入数据时,可以使用可选参数$flags和$context,这里不具体介绍。
写入成功后函数返回写入的字节数,否则返回FALSE。
●fputcsv()函数。CSV是一种比较常用的文件格式,一般以.csv作为扩展名。CSV格式把文件的一行看做是一条记录,记录里的字段使用逗号分隔。
在PHP中使用 fputcsv()函数可以把指定的数组格式化为符合CSV文件格式的内容,并写入文件指针指向的当前行。语法格式如下:
int fputcsv(resource $handle [, array $fields [, string $delimiter [, string $enclosure ]]])
说明:参数$handle是要写入的文件句柄。
参数$fields是要格式化的数组。
可选的$delimiter参数用于设定字段分界符(只允许一个字符),默认为逗号。
可选的$enclosure参数设定字段环绕符(只允许一个字符),默认为双引号
5 文件的读取
1.读取任意长度
fread()函数可以用于读取文件的内容,语法格式如下:
string fread(int $handle, int $length)
说明:参数$handle是已经打开的文件指针,
$length是指定读取的最大字节数,$length的最大取值为8192。
如果读完$length个字节数之前遇到文件结尾标志(EOF),则返回所读取的字符,并停止读取操作。
如果读取成功则返回所读取的字符串,如果出错返回FALSE。
注意:在读取文件后显示文件内容时,文本中可能含有无法直接显示的字符,如HTML标记。
这时需要使用htmlspecialchars()函数将HTML标记转化为实体才能显示文件中的字符。
2.读取整个文件
●file()函数。file()函数用于将整个文件读取到一个数组中,语法格式如下:
array file(string $filename [, int $use_include_path [, resource $context ]])
说明:本函数的作用是将文件作为一个数组返回,数组中的每个单元都是文件中相应的一行,包括换行符在内,
如果失败则返回FALSE。参数$filename是读取的文件名,参数$use_inclue_path和$context的意义与之前介绍的相同
●readfile()函数。readfile()函数用于输出一个文件的内容到浏览器中,语法格式如下:
int readfile(string $filename [, bool $use_include_path [, resource $context ]])
●fpassthru()函数。fpassthru()函数可以将给定的文件指针从当前的位置读取到EOF,并把结果写到输出缓冲区。
要使用这个函数,必须先使用fopen()函数打开文件,然后将文件指针作为参数传递给fpassthru()函数,
fpassthru()函数把文件指针所指向的文件内容发送到标准输出。如果操作成功返回读取到的字节数,否则返回FALSE。
●file_get_contents()函数。file_get_contents()函数可以将整个或部分文件内容读取到一个字符串中,
功能与依次调用fopen()、fread()及fclose()函数的功能一样。语法格式如下:
string file_get_contents(string $filename [, int $offset [, int $maxlen ]])
说明:$filename是要读取的文件名,可选参数$offset可以指定从文件头开始的偏移量,
函数可以返回从$offset所指定的位置开始长度为$maxlen的内容。如果失败,函数将返回FALSE

3. 读取一行数据
●fgets()函数。fgets()函数可以从文件中读出一行文本,语法格式如下:
string fgets(int $handle [, int $length ])
说明:$handle是已经打开的文件句柄,可选参数$length指定了返回的最大字节数,考虑到行结束符,
最多可以返回length-1个字节的字符串。如果没有指定$length,默认为1024个字节
●fgetss()函数与fgets()基本相同,不过fgetss()函数会尝试从读取的文本中去掉任何html和php标记。
●fgetcsv()函数。fgetcsv()函数可以读取指定文件的当前行,使用CSV格式解析出字段,并返回一个包含这些字段的数组。
语法格式如下:
array fgetcsv(int $handle [, int $length [, string $delimiter [, string $enclosure ]]])
4. 读取一个字符
fgetc()函数。fgetc()函数可以从文件指针处读取一个字符,语法格式为:
string fgetc(resource $handle)
该函数返回$handle指针指向的文件中的一个字符,遇到EOF则返回FALSE
5. 使用指定格式读取文件
fscanf()函数。fscanf()函数可以读取文件中的数据,并根据指定的格式进行格式化,并返回一个数组。语法格式如下:
mixed fscanf(resource $handle , string $format [, mixed &$... ])
格式字符串中的任何空白会与输入流中的任何空白匹配。
这意味着甚至格式字符串中的制表符“\t”也会与输入流中的一个空格字符匹配。
6.文件的上传与下载
1.文件上传
文件上传可以通过提交html表单来实现。文件上传结束后,默认存储在临时目录中,这时必须从临时目录中删除或移动到其他地方
使用PHP的move_uploaded_file()将其移到其它位置上
move_uploaded_file()函数语法格式如下:
bool move_uploaded_file(string $filename , string $destination)
注意:在将文件移动之前需要检查文件是否是通过HTTP POST上传的,这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件,
这时需要使用is_uploaded_file()函数。该函数的参数为文件的临时文件名,若文件是通过HTTP POST上传的,则函数返回TRUE。
例4.5 将由HTML表单上传的GIF图片文件移动到html目录中
复制代码 代码如下:






if(isset($_POST['up']))
{
if($_FILES['myFile']['type']=="image/gif") //判断文件格式是否为GIF
{
if($_FILES['myFile']['error']>0) //判断上传是否出错
echo "错误:".$_FILES['myFile']['error']; //输出错误信息
else
{
$tmp_filename=$_FILES['myFile']['tmp_name']; //临时文件名
$filename=$_FILES['myFile']['name']; //上传的文件名
$dir="html/";
if(is_uploaded_file($tmp_filename)) //判断是否通过HTTP POST上传
{
if(move_uploaded_file($tmp_filename,$dir.$filename)) //上传并移动文件
{
echo "文件上传成功!";
//输出文件大小
echo "文件大小为:". ($_FILES['myFile']['size']/1024)."kb";
}
else
echo "上传文件失败!";
}
}
}
else
{
echo "文件格式非GIF图片!";
}
}
?>

2.文件下载
header()函数的作用是向浏览器发送正确的HTTP报头,报头指定了网页内容的类型、页面的属性等信息。
header()函数的功能很多,这里只列出以下几点:
●页面跳转。如果header()函数的参数为“Location: xxx”,页面就会自动跳转到“xxx”指向的URL地址。例如:
header("Location: http://www.baidu.com"); //跳转到百度页面
header("Location: first.php"); //跳转到工作目录的first.php页面
●指定网页内容。例如,同样的一个XML格式的文件,如果header()函数的参数指定为“Content-type: application/xml”,
浏览器会将其按照XML文件格式来解析。但如果是“Content-type: text/xml”,浏览器就会将其看做文本解析。
header()函数结合readfile()函数可以下载将要浏览的文件
7.其他常用文件函数
1.计算文件大小
filesize()函数用于计算文件的大小,以字节为单位
filesize()函数结合fread()函数可以实现一次读取整个文件
2.判断文件是否存在
file_exits()
is_dir()函数用于判断给定文件名是否是目录
is_file()函数用于判断给定文件名是否是文件。
is_readable()函数用于判断给定文件是否可读。
is_writeable()用于判断给定的文件是否可写
3.删除文件
unlink()
4.复制文件
bool copy(string $source,string $dest),如果目示文件已存在,则将被覆盖
5.移动、重命名文件
除了move_uploaded_file()函数,还有一个rename()函数也可以移动文件。
语法格式如下:
bool rename ( string $oldname , string $newname [, resource $context ] )
说明:rename()函数主要用于对一个文件进行重命名,$oldname是文件的旧名,$newname为新的文件名。
当然,如果$oldname与$newname的路径不相同,就实现了移动该文件的功能
6.文件指针操作
PHP中有很多操作文件指针的函数,如rewind()、ftell()、fseek()函数等。之前用过的feof()函数用于测试文件指针是否处于文件尾部,
也属于文件指针操作函数。
rewind()函数。用于重置文件的指针位置,使指针返回到文件头。它的参数只有一个,就是已经打开的指定文件的文件句柄。
ftell()函数。可以以字节为单位,报告文件中指针的位置,也就是文件流中的偏移量。它的参数也是已经打开的文件句柄。
fseek()函数。可以用于移动文件指针,语法格式如下:
int fseek ( resource $handle , int $offset [, int $whence ] )
例4.8 投票统计
复制代码 代码如下:









当前最流行的Web开发语言:
PHP
ASP
JSP


$votefile="EX4_6_vote.txt"; //用于计数的文本文件$votefile
if(!file_exists($votefile)) //判断文件是否存在
{
$handle=fopen($votefile,"w+"); //不存在则创建该文件
fwrite($handle,"0|0|0"); //将文件内容初始化
fclose($handle);
}
if(isset($_POST['sub']))
{
if(isset($_POST['vote'])) //判断用户是否投票
{
$vote=$_POST['vote']; //接收投票值
$handle=fopen($votefile,"r+");
$votestr=fread($handle,filesize($votefile)); //读取文件内容到字符串$votestr
fclose($handle);
$votearray=explode("|", $votestr); //将$votestr根据“|”分割
echo "

投票完毕!

";
if($vote=='PHP')
$votearray[0]++; //如果选择PHP,则数组第1个值加1
echo "目前PHP的票数为:".$votearray[0]."
";
if($vote=='ASP')
$votearray[1]++; //如果选择ASP,则数组第2个值加1
echo "目前ASP的票数为:".$votearray[1]."
";
if($vote=='JSP')
$votearray[2]++; //如果选择JSP,则数组第3个值加1
echo "目前JSP的票数为:".$votearray[2]."
";
//计算总票数
$sum=$votearray[0]+$votearray[1]+$votearray[2];
echo "总票数为:".$sum."
";
$votestr2=implode("|",$votearray); //将投票后的新数组用“|”连接成字符串$votestr2
$handle=fopen($votefile,"w+");
fwrite($handle,$votestr2); //将新字符串写入文件$votefile
fclose($handle);
}
else
{
echo "<script>alert('未选择投票选项!')</script>";
}
}
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/323885.htmlTechArticle1.文件目录操作 最顶层止录是磁盘根目录,用'/'或'//' 当前目录 ./ ../表示apache的目录即htdocs目录 1.创建与删除目录 mkdir 复制代码 代码如下...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). Apr 03, 2025 am 12:04 AM

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? Apr 03, 2025 am 12:03 AM

PHP의 마법 방법은 무엇입니까? PHP의 마법 방법은 다음과 같습니다. 1. \ _ \ _ Construct, 객체를 초기화하는 데 사용됩니다. 2. \ _ \ _ 파괴, 자원을 정리하는 데 사용됩니다. 3. \ _ \ _ 호출, 존재하지 않는 메소드 호출을 처리하십시오. 4. \ _ \ _ get, 동적 속성 액세스를 구현하십시오. 5. \ _ \ _ Set, 동적 속성 설정을 구현하십시오. 이러한 방법은 특정 상황에서 자동으로 호출되어 코드 유연성과 효율성을 향상시킵니다.

PHP 및 Python : 두 가지 인기있는 프로그래밍 언어를 비교합니다 PHP 및 Python : 두 가지 인기있는 프로그래밍 언어를 비교합니다 Apr 14, 2025 am 12:13 AM

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP 실행 : 실제 예제 및 응용 프로그램 PHP 실행 : 실제 예제 및 응용 프로그램 Apr 14, 2025 am 12:19 AM

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP : 웹 개발의 핵심 언어 PHP : 웹 개발의 핵심 언어 Apr 13, 2025 am 12:08 AM

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 ​​있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7

See all articles