首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

php_apache2_操作系统之间的一些黑魔法

php // 测试环境 linux + apache2 + php // 没有开rewrite ,所以写 .htaccess 没用 // 没有用cgi ,所以写 .user.ini 也没有 /...我最开始的想法跟大多数师傅的想法一样 因为正则表达式中的点(.)不会匹配换行符(0x0a),所以可以在扩展名前面插入一个换行符,构造的文件名为233%0a.php, 这样就可以绕过正则,而且还是合法的文件名(linux...0x04 回到题目中 经过测试发现一个可以再windows和linux上都行得通的方法: filename=1.php/.&content=<?php phpinfo();?...而且奇怪的是无论是在windows上还是linux上,每次都只可以创建新文件,不能覆盖老文件。...start : len; } j = tsrm_realpath_r(path, start, i-1, ll, t, use_realpath, 1, NULL TSRMLS_CC); //

33330

如何正确发布PHP代码

再聊聊 realpath cache,它的作用是缓冲获取文件信息的 IO 操作,大多数时候它对我们而言是透明的,以至于很多人都不知道它的存在,需要注意的是 realpath cache 是进程级别的,也就是说...,每一个 php-fpm 进程都有自己独立的 realpath cache。...事实上之所以会出现这样的问题,主要是因为 opcode cache 是通过 realpath cache 获取文件信息,即便软链接已经指向了新位置,但是如果 realpath cache 里还保存着旧数据的话...DOCUMENT_ROOT $realpath_root; 有了 realpath_root,即便 DOCUMENT_ROOT 目录中含有软链接,nginx 也会把软链接指向的真正的路径发给 PHP,...在使用「ln -sfn」前后,如果使用 stat 查看新旧文件的 inode 的话,可能会发现它们拥有一样的 inode 值,看上去和我们的结论相悖,其实不然,实际上只是复用删除值而已(如果想验证,注意 Linux

4.1K40

php & apache2 &操作系统之间的一些黑魔法

php  // 测试环境 linux + apache2  + php // 没有开rewrite ,所以写 .htaccess 没用// 没有用cgi ,所以写 .user.ini 也没有 // 要求...我最开始的想法跟大多数师傅的想法一样 因为正则表达式中的点(.)不会匹配换行符(0x0a),所以可以在扩展名前面插入一个换行符,构造的文件名为233%0a.php,这样就可以绕过正则,而且还是合法的文件名(linux...0x04 回到题目中 经过测试发现一个可以再windows和linux上都行得通的方法: filename=1.php/.&content=<?php phpinfo();?...而且奇怪的是无论是在windows上还是linux上,每次都只可以创建新文件,不能覆盖老文件。...start : len;     }     j = tsrm_realpath_r(path, start, i-1, ll, t, use_realpath, 1, NULL TSRMLS_CC);

81350

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

realpath('./'); var_dump(realpath_cache_get()); // array(8) { // ["/Users/zhangyue/MyDoc/博客文章/dev-blog...()); // int(673) realpath_cache_get() 函数用于获取真实目录缓存的详情,我们需要先使用 realpath() 获得一个目录路径,然后就可以看到 realpath_cache_get...realpath_cache_size() 获取的是真实路径缓冲区的大小,也就是真实路径缓存区大小在内存中的使用量。...rename() 函数用于给文件改名,其实它就是类似于 Linux 系统中的 mv 命令。 is_file() 函数用于判断给定的文件是否是一个正常的文件。...具体的 umask 知识大家可以参考 Linux 中的相关内容。 配置文件信息读取 最后这两个函数是用于读取 PHP 类型的配置文件信息的,什么叫 PHP 类型的配置文件信息?

93710
领券