首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php面试笔记(7)-php基础知识-文件及目录处理考点

) "a+" (读写方式打开,通过将文件指针指向文件末尾进行写入来保存文件内容) "x" (创建一个新的文件并以写入方式打开,如果文件已存在则返回 FALSE 和一个错误) "x+" (创建一个新的文件并以读写方式打开...,如果文件已存在则返回 FALSE 和一个错误) "b" (以二进制的方式打开) 2写入函数: fwrite(file,string,length) file:指定写入的文件 string:指定写入的内容...readfile() readfile() 函数读取一个文件,并写入到输出缓冲。 如果成功,该函数返回文件中读入的字节数。如果失败,该函数返回 FALSE 并附带错误信息。...is_executable(file) is_executable() 函数检查指定的文件是否可执行。...请看下面这道题: 通过PHP函数的方式对目录进行遍历,写出程序 答案: <?php /** * Created by 冷月小白.

69521
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP中的文件系统函数(二)

    需要使用 ob_start() 之类的函数才能将 readfile() 函数读取的内容放到一个变量中,我们之前的文章专门讲过缓冲区的概念,公众号回复【PHP中的输出缓冲控制】 。...is_executable() 用于判断文件是否可以执行,is_writable() 、is_readable() 判断文件是否可以写和读。这三个函数对应的就是文件的权限相关的判断。...echo fread($temp, 1024), PHP_EOL; // writing to tempfile fclose($temp); // 文件直接被删除了 tempnam() 函数根据指定的...tmpfile() 在之前的文章中讲解过,它是生成一个临时文件,一般放在 /tmp 目录下(如果你没有修改 php.ini 文件中的相关设置的话)。...这个函数创建文件后会返回一个句柄,一旦使用 fclose() 关闭了这个文件句柄,那么文件就马上会被删除掉。

    99510

    PHP零基础入门

    PHP核心函数库之文件目录函数库.png 文件操作 文件目录函数库:文件信息相关,文件操作相关,内容操作相关。...文件信息 Fileinfo 函数finfo_buffer — 返回一个字符串缓冲区的信息 finfo_close — 关闭 fileinfo 资源 finfo_file — 返回一个文件的信息...判断给定文件名是否是一个目录 is_executable — 判断给定文件名是否可执行 is_file — 判断给定文件名是否为一个正常的文件 is_link — 判断给定文件名是否为一个符号连接 is_readable...— 获取真实目录缓存的详情 realpath_cache_size — 获取真实路径缓冲区的大小 realpath — 返回规范化的绝对路径名 rename — 重命名一个文件或目录 rewind —...感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,欢迎把它分享给更多的朋友,感谢。 作者简介 达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你可以!

    1.5K20

    Web安全 | PHP反序列化入门这一篇就够了

    而在php中,使用函数serialize()来返回一个包含字节流的字符串来表示 比如: class S{ public $test="sd"; } $s=new S(); //创建一个对象 serialize...实战中要更具情况来构造payload,能利用的漏洞远不止xss phar://伪协议 除了unserialize反序列化之外 ,另一种能够反序列化方式是利用 phar:// 协议触发反序列化,前提是完全可控的文件名...> 二:manifest describing the contents phar文件本质上是一种压缩文件,其中每个被压缩文件的权限、属性等信息都放在这部分,存储用户自定义的meta-data,这是用来攻击的入口...有序列化,必然有反序列化来处理,php一大部分的文件系统函数在通过phar://伪协议解析phar文件时,都会将meta-data进行反序列化,测试后受影响的函数如下: fileatime filectime...这里返回绝对路径 ? 编造payload <?

    4.6K22

    腾讯的一份PHP经典面试题(附答案)

    ==false){      echo "不是整数";  }else{      echo "是整数";  } 3.PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能导致将汉字转换为乱码...,无法准确判断一个目录/文件是否可写,请写一个函数来判断目录/文件是否绝对可写 答:其中bug存在两个方面, 1、在windowns中,当文件只有只读属性时,is_writeable()函数返回false...5.PHP的chmod()函数存在Bug,无法保证设置成功,请写一个函数在指定路径下创建一个目录/文件并确保可以正确设置权限掩码 答:我找不到答案 6.PHP处理上传文件信息数组中的文件类型_FILES...,使用不同的浏览器php返回的type类型是不一样的,由浏览器提供type类型的话,就有可能被黑客利用向服务器提交一个伪装撑图片后缀的可执行文件。...可以通过getimagesize()函数来判断上传的文件类型,如果是头像文件 返回这样的一个数组 Array(     [0] => 331     [1] => 234     [2] => 3

    1K20

    php开发工程师面试题知识点总结(二)–基础篇

    这也适用于 PHP 5.4 起的构造函数。在 PHP 5.4 之前的构造函数声明可以不一样的....,其值不会消失 ip处理函数 ip2long() long2ip() 时间日期处理函数 date() strtotime() mktime() time()...fopen() 打开文件并指定模式 r/r+ 只读打开/读写打开,指针在文件开头 w/w+ 只写打开/读写打开,文件存在清空,不存在创建 a/a+ 写入追加写入/读写的追加写入,指针在文件末尾...x/x+ 写入/读写打开,指针开头,文件存在返回false,不存在就直接创建 b 二进制打开 写入 fwrite() fputs() 读取 fread() 获取指定长度字符...() 重命名或移动 rename() 文件属性 file_exist() is_readable() is_writable() is_executable() filectime

    68120

    php开发工程师面试题知识点总结(二)--基础篇

    这也适用于 PHP 5.4 起的构造函数。在 PHP 5.4 之前的构造函数声明可以不一样的....,其值不会消失 ip处理函数 ip2long() long2ip() 时间日期处理函数 date() strtotime() mktime() time() microtime() date_default_timezone_set...fopen() 打开文件并指定模式 r/r+ 只读打开/读写打开,指针在文件开头 w/w+ 只写打开/读写打开,文件存在清空,不存在创建 a/a+ 写入追加写入/读写的追加写入,指针在文件末尾 x.../x+ 写入/读写打开,指针开头,文件存在返回false,不存在就直接创建 b 二进制打开 写入 fwrite() fputs() 读取 fread() 获取指定长度字符 fgets() 获取一行字符...)整个文件读取出来,并输出 远程访问 php.ini 中打开 allow_url_fopen 配置,http协议只能使用只读,ftp协议,只能只读或只写 目录操作 名称相关 basename() 文件基础名称

    63530

    PHP风险函数

    PHP函数非常多,但是使用不当造成危险。以下列出PHP中存在风险的函数,可以用作PHP代码安全审计!...命令执行: 函数 解释 exec 不输出但返回结果最后一行,第二个参数储存全部结果 passthru 输出不返回结果 system 返回并输出结果 shell_exec 返回但不输出结果 `` 反引号,...作用同shell_exec popen 执行命令返回资源号 proc_open 同popen,更高权限 pcntl_exec 执行程序 代码执行: 函数 解释 eval 执行代码 assert 判断表达式是否成立...线程ID getmyuid 获取当前脚本UID 文件操作: 函数 备注 fopen tmpfile bzopen gzopen SplFileObject chgrp chmod chown...filectime filegroup fileinode filemtime fileowner fileperms filesize filetype glob is_dir is_executable

    32730

    腾讯php面试题之 – PHP开发工程师笔试试卷

    ==false){ echo "不是整数"; }else{ echo "是整数"; } 3.PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能导致将汉字转换为乱码...,无法准确判断一个目录/文件是否可写,请写一个函数来判断目录/文件是否绝对可写 答:其中bug存在两个方面, 1、在windowns中,当文件只有只读属性时,is_writeable()函数返回false...答:我找不到答案 6.PHP处理上传文件信息数组中的文件类型$_FILES[‘type’]由客户端浏览器提供,有可能是黑客伪造的信息,请写一个函数来确保用户上传的图像文件类型真实可靠 答:用getimagesize...来判断上传图片的类型比$_FILES函数的type更可靠 同一个文件,使用不同的浏览器php返回的type类型是不一样的,由浏览器提供type类型的话, 就有可能被黑客利用向服务器提交一个伪装撑图片后缀的可执行文件...可以通过getimagesize()函数来判断上传的文件类型,如果是头像文件 返回这样的一个数组 Array( [0] => 331 [1] => 234 [2] =>

    1K10

    Thinkphp框架的项目规划总结和踩坑经验

    ,对于同时支持被其它控制器和Ajax操作的方法,使用 $isReturn=FALSE 可选参数来决定输出数据还是函数返回数据; 四、编程规范 1、文件、类、方法、函数命名规范参考Thinkphp官方规范...控制器命名的规则是 $+类名首字母小写+字母C(表示控制器),即使只使用其中的一个方法不要使用类中的方法名作为对象的名称。...//调试时是false的//部署时是true导致Linux下模板渲染文件名全部转换为小写字母而出错!!...这一串,即使不修改thinkphp的url模式,可以通过不带index.php的方式访问网页。   ...//调试时是false的//部署时是true导致Linux下模板渲染文件名全部转换为小写字母而出错!!

    2.5K20

    目录遍历漏洞

    /boot.ini%00.jpg,web应用程序使用API允许字符串中包含空字符,当实际获取文件名时,则有系统的API直接截断,从而解析为../../../boot.ini。   ...在UNIX系统中可以使用URL编码的换行符,比如:../../../etc/passwd%0a.jpg如果文件系统在获取含有换行符的文件名,截短为文件名。可以尝试%20,例如: ../../.....访问限定   Web应用程序可以使用chrooted环境访问包含被访问文件的目录,或者使用绝对路径+参数来控制访问目录,使其即使是越权或者跨越目录也是在指定的目录下。 3....Tomcat   对于Tomcat而言,管理员修改配置文件 conf目录下的web.xml,将 true 中的true改为false 重启tomcat...IIS   对IIS而言,如果不需要可执行的CGI,可以删除可执行虚拟目录或直接关闭目录浏览;如果确实需要可执行的虚拟目录,建议将可执行的虚拟目录单独放在一个分区。

    2.4K20

    什么是DLL劫持

    如果你可以找出没有绝对路径的可执行文件请求的DLL(触发此搜索过程),则可以将攻击代码的DLL放置在搜索路径的更高位置,以便在实际版本之前找到它,并且Windows毫不犹豫将攻击代码提供给应用程序。...\ syswow64 <-最低优先级,最后检查 这时候,可执行文件“ Foo.exe”请求加载“ bar.dll”,该文件恰好位于syswow64(D)子目录中。...这使您有机会将恶意版本放置在A目录,B目录或C目录中,并将其加载到可执行文件中。 如前所述,即使您可以用自己的版本替换DLL,即使绝对的完整路径也无法防止这种情况。...Microsoft Windows使用Windows文件保护机制来保护System32之类的系统路径,但是在企业解决方案中保护可执行文件免受DLL劫持的最佳方法是: 使用绝对路径而不是相对路径 如果您有个人签名...讲座涵盖了一些基础知识: https : //greysec.net/showthread.php?

    81640

    聊聊Yii2和ThinkPHP5的文件缓存

    true,存在则不做操作 madd 批量添加多个,返回成功插入数组 delete 删除缓存 flush 清空缓存所有数据 offsetExists ,exists别名 offsetGet ,get别名...Yii2缓存有gc机制,在每次写入缓存的时候以一定的概率删除过期缓存文件。ThinkPHP5 则是在读取缓存的时候,如果缓存过期则删除。...如果缓存保存的是多层级的文件夹,Yii2删除缓存文件夹,但是ThinkPHP5 不会删除。因此ThinkPHP5 需要开发者编写额外的脚本去定期删除缓存文件,避免空间占用。...PHP缓存对文件状态信息的检查结果。如果在一个脚本中多次检查同一个文件,只在最初会读取信息,其他都是从缓存中获取。...受影响的函数有:stat() lstat() file_exists() is_writable() is_readable() is_executable() is_file() is_dir() is_link

    1.3K20
    领券