PHP学習の基礎 - ファイルシステム (1) ファイル処理、ファイル権限
/* PHP文件系统处理 * 所有文件处理都是使用系统函数完成的。 * 是基于Linux/Unix系统为模型 * * 文件系统处理的作用: * 1. 所有的项目离不开文件处理 * 2. 可以用文件长时间保存数据 * 3. 建立缓存, 服务器中文件操作 * * 文件处理 * 1. 文件类型 * 以Linux为模型的, 在Windows只能获取file, dir或unknow 三种类型 * 在Linux/Unix下, block, char, dir, fifo, file, link, unknown和种型 * block :块设置文件,磁盘分区,软驱, cd-rom等 * char: 字符设备,I/O 以字符为单位, 键盘,打印机等 * dir: 目录也是文件的一种 * fifo: * file: * link: * unknown * * filetype("目录或文件名") * * is_array(); * is_int(); * is_string(); * is_null; * is_bool(); * is_dir -- 判断给定文件名是否是一个目录 is_executable -- 判断给定文件名是否可执行 is_file -- 判断给定文件名是否为一个正常的文件 is_link -- 判断给定文件名是否为一个符号连接 is_readable -- 判断给定文件名是否可读 is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的 is_writable -- 判断给定的文件名是否可写 is_writeable -- is_writable() 的别名 * * * 2. 文件的属性 * file_exists(); * filesize(); * is_readable(); * is_writeable(); * filectime(); * filemtime(); * fileactime(); * stat(); * * 3. 和文件路径相关的函数 * * 相对路径:相对于当前目录的上级和下级目录 * . 当前目录 * .. 上一级目录 * * ./php/apache/index.php * php/apahce/index.php * login.php * ./login.php * ../images/tpl/logo.gif * * * 路径分隔符号 * linux/Unix "/" * windows "\" * * DIRECTORY_SEPARATOR 为不同平台,在Windows \ Linux / * * 不管是什么操作系统PHP的目录分割符号都支技 / (Linux) * * 在PHP和Apache配置文件中如果需要指定目录,也使用/作为目录符号 * * 绝对路径: * / 根路径 * * /images/index.php * * 指的操作系统的根 * 指的是存放网站的文档根目录 * * 分情况 * * 如果是在服务器中执行(通过PHP文件处理函数执行)路径 则 “根”指的就是操作系统的根 * 如果程序是下载的客户端,再访问服务器中的文件时,只有通过Apache访问,“根”也就指的是文档根目录 * * http://www.xsphp.com/logo.gif * * * basename(url) * dirname(url) * pathinfo(url) * * * * * 4. 文件的操作(创建文件,删除文件,移动文件) * 5. 文件的打开与关闭(读文件中的内容, 向文件中写内容) * 6. 文件内部移动指针 * 7. 文件的锁定一些机制处理 * * * 目录的处理 * 1. 目录的遍历 * 2. 目录的创建 * 3. 目录的删除 * 4. 目录的复制 * 5. 统计目录大小 * * * 文件上传和下载 * 1. 上传 * 2. 下载 * * */
2. PHP ファイル属性関数の例
date_default_timezone_set("PRC"); function getFilePro($fileName){ if(!file_exists($fileName)){ echo "文件或目录{$fileName} 不存在<br>"; return; }else{ echo "文件的类型".filetype($fileName)."<br>"; } if(is_file($fileName)){ echo "这是一个文件<br>"; echo "文件的大小为".getFileSize(filesize($fileName))."<br>"; } if(is_dir($fileName)){ echo "这是一个目录<br>"; } if(is_readable($fileName)){ echo "这个文件可以读<br>"; } if(is_writable($fileName)){ echo "这个文件可以写<br>"; } if(is_executable($fileName)){ echo "这个文件可以执行<br>"; } echo "文件的创建时间:".date("Y-m-d H:i:s",filectime($fileName))."<br>"; echo "文件的修改时间:".date("Y-m-d H:i:s",filemtime($fileName))."<br>"; echo "文件的最后访问时间:".date("Y-m-d H:i:s",fileatime($fileName))."<br>"; } function getFileSize($size){ $dw="Byte"; if($size >= pow(2, 40)){ $size=round($size/pow(2, 40), 2); $dw="TB"; }else if($size >= pow(2, 30)){ $size=round($size/pow(2, 30), 2); $dw="GB"; }else if($size >= pow(2, 20)){ $size=round($size/pow(2, 20), 2); $dw="MB"; }else if($size >= pow(2, 10)){ $size=round($size/pow(2, 10), 2); $dw="KB"; }else { $dw="Bytes"; } return $size.$dw; } getFilePro("demo.txt"); getFilePro("hello");
3.ファイルステータス取得関数
date_default_timezone_set("PRC"); echo '<pre class="brush:php;toolbar:false">'; print_r(stat("demo.txt")); echo '';
4. ファイルシステムを使用したデータキャッシュスキーム
$cache=5; //缓存时间$cachefile="cache.txt"; //缓存的文件if(file_exists($cachefile) && (time()-$cache) 5. ファイルパス関連関数の例<p><br></p><p></p><p></p><pre code_snippet_id="324388" snippet_file_name="blog_20140503_5_8122871" name="code" class="php">$url1="./aaa/bbb/index.php"; echo basename($url1)."<br>"; //文件名称 echo dirname(dirname($url1))."<br>"; //父级目录 echo dirname($url1)."<br>"; //文件目录echo '<pre class="brush:php;toolbar:false">'; //文件路径信息 print_r($path=pathinfo($url3)); echo ''; echo $path["extension"];6. ファイルシステム権限関連 関数インスタンス
创建文件 touch("文件名") 删除文件 unlink("文件路径"); 移动文件 为文件重新命名 rename("当前文件路径", “目录为文件路径”) 复制文件 copy("当前", “目标”); 一定要有PHP执行这个文件权限, Apache, 一个用户 和权限设计有关的函数 ls -l 或 ll _rwxrwxrwx 777 _ 类型 _文件 d 表示是目录 l b rwx 表这个文件的拥有者 r读 w写 x执行 rwx 表这个文件的拥有者所在的组 r读 w写 x执行 rwx 其它用户对这个为文件的权限 r读 w写 x执行 r 4 w 2 x 1 7 7 7 4+2+1 4+2+1 4+2+1 rwx rwx rwx 644 4+2 4 4 rw_ r__ r__ 754 chmod u=rwx,g=rw,o=x chmod 777 demo.php chmod 644 demo.html chown mysql demo.php chgrp apache demo.php chgrp -- 改变文件所属的组 chmod -- 改变文件模式 chown -- 改变文件的所有者 filegroup -- 取得文件的组 fileowner -- 取得文件的所有者

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

在当今科技快速发展的时代,编程语言也如雨后春笋般涌现出来。其中一门备受瞩目的语言就是Go语言,它以其简洁、高效、并发安全等特性受到了许多开发者的喜爱。Go语言以其强大的生态系统而著称,其中有许多优秀的开源项目。本文将介绍五个精选的Go语言开源项目,带领读者一起探索Go语言开源项目的世界。KubernetesKubernetes是一个开源的容器编排引擎,用于自

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

《Go语言开发必备:5个热门框架推荐》Go语言作为一门快速、高效的编程语言,受到越来越多开发者的青睐。为了提高开发效率,优化代码结构,很多开发者选择使用框架来快速搭建应用。在Go语言的世界中,有许多优秀的框架可供选择。本文将介绍5个热门的Go语言框架,并提供具体的代码示例,帮助读者更好地理解和使用这些框架。1.GinGin是一个轻量级的Web框架,拥有快速

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

转化方法:1、使用“mb_substr($url,stripos($url,"?")+1)”获取url的参数部分;2、使用“parse_str("参数部分",$arr)”将参数解析到变量中,并传入指定数组中,变量名转为键名,变量值转为键值。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1
使いやすく無料のコードエディター
