Filesystem 函数允许您访问和操作文件系统。
Filesystem 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。
Filesystem 函数的行为受到 php.ini 中设置的影响。
Filesystem 配置选项:
| 名称 | 默认 | 描述 | 可改变 |
|---|---|---|---|
| allow_url_fopen | "1" | 允许 fopen()-type 函数使用 URL。(PHP 4.0.4 版以后可用) | PHP_INI_SYSTEM |
| user_agent | NULL | 定义 PHP 发送的用户代理。(PHP 4.3 版以后可用) | PHP_INI_ALL |
| default_socket_timeout | "60" | 设置基于 socket 流的默认的超时时间(秒)。(PHP 4.3 版以后可用) | PHP_INI_ALL |
| from | "" | 定义匿名 FTP 的密码(您的 email 地址)。 | PHP_INI_ALL |
| auto_detect_line_endings | "0" | 当设置为 "1" 时,PHP 将检查通过 fgets() 和 file() 取得的数据中的行结束符号是符合 Unix、MS-Dos 还是 Mac 的习惯。(PHP 4.3 版以后可用) | PHP_INI_ALL |
当在 Unix 平台上规定路径时,正斜杠 (/) 用作目录分隔符。而在 Windows 平台上,正斜杠 (/) 和反斜杠 (\) 均可使用。
| 函数 | 描述 |
|---|---|
| basename() | 返回路径中的文件名部分。 |
| chgrp() | 改变文件组。 |
| chmod() | 改变文件模式。 |
| chown() | 改变文件所有者。 |
| clearstatcache() | 清除文件状态缓存。 |
| copy() | 复制文件。 |
| delete() | 参见 unlink() 或 unset() |
| dirname() | 返回路径中的目录名称部分。 |
| disk_free_space() | 返回目录的可用空间。 |
| disk_total_space() | 返回一个目录的磁盘总容量。 |
| diskfreespace() | disk_free_space() 的别名。 |
| fclose() | 关闭打开的文件。 |
| feof() | 测试文件指针是否到了文件末尾。 |
| fflush() | 向打开的文件刷新缓冲输出。 |
| fgetc() | 从打开的文件中返回字符。 |
| fgetcsv() | 从打开的文件中解析一行,校验 CSV 字段。 |
| fgets() | 从打开的文件中返回一行。 |
| fgetss() | 从打开的文件中返回一行,并过滤掉 HTML 和 PHP 标签。 |
| file() | 把文件读入一个数组中。 |
| file_exists() | 检查文件或目录是否存在。 |
| file_get_contents() | 把文件读入字符串。 |
| file_put_contents() | 把字符串写入文件。 |
| fileatime() | 返回文件的上次访问时间。 |
| filectime() | 返回文件的上次修改时间。 |
| filegroup() | 返回文件的组 ID。 |
| fileinode() | 返回文件的 inode 编号。 |
| filemtime() | 返回文件内容的上次修改时间。 |
| fileowner() | 返回文件的用户 ID (所有者)。 |
| fileperms() | 返回文件的权限。 |
| filesize() | 返回文件大小。 |
| filetype() | 返回文件类型。 |
| flock() | 锁定或释放文件。 |
| fnmatch() | 根据指定的模式来匹配文件名或字符串。 |
| fopen() | 打开一个文件或 URL。 |
| fpassthru() | 从打开的文件中读数据,直到文件末尾(EOF),并向输出缓冲写结果。 |
| fputcsv() | 把行格式化为 CSV 并写入一个打开的文件中。 |
| fputs() | fwrite() 的别名。 |
| fread() | 读取打开的文件。 |
| fscanf() | 根据指定的格式对输入进行解析。 |
| fseek() | 在打开的文件中定位。 |
| fstat() | 返回关于一个打开的文件的信息。 |
| ftell() | 返回在打开文件中的当前位置。 |
| ftruncate() | 把打开文件截断到指定的长度。 |
| fwrite() | 写入打开的文件。 |
| glob() | 返回一个包含匹配指定模式的文件名/目录的数组。 |
| is_dir() | 判断文件是否是一个目录。 |
| is_executable() | 判断文件是否可执行。 |
| is_file() | 判断文件是否是常规的文件。 |
| is_link() | 判断文件是否是连接。 |
| is_readable() | 判断文件是否可读。 |
| is_uploaded_file() | 判断文件是否是通过 HTTP POST 上传的。 |
| is_writable() | 判断文件是否可写。 |
| is_writeable() | is_writable() 的别名。 |
| lchgrp() | 改变符号连接的组所有权。 |
| lchown() | 改变符号连接的用户所有权。 |
| link() | 创建一个硬连接。 |
| linkinfo() | 返回有关一个硬连接的信息。 |
| lstat() | 返回关于文件或符号连接的信息。 |
| mkdir() | 创建目录。 |
| move_uploaded_file() | 把上传的文件移动到新位置。 |
| parse_ini_file() | 解析一个配置文件。 |
| parse_ini_string() | 解析一个配置字符串。 |
| pathinfo() | 返回关于文件路径的信息。 |
| pclose() | 关闭由 popen() 打开的进程。 |
| popen() | 打开一个进程。 |
| readfile() | 读取一个文件,并写入到输出缓冲。 |
| readlink() | 返回符号连接的目标。 |
| realpath() | 返回绝对路径名。 |
| realpath_cache_get() | 返回高速缓存条目。 |
| realpath_cache_size() | 返回高速缓存大小。 |
| rename() | 重命名文件或目录。 |
| rewind() | 倒回文件指针的位置。 |
| rmdir() | 删除空的目录。 |
| set_file_buffer() | 设置已打开文件的缓冲大小。 |
| stat() | 返回关于文件的信息。 |
| symlink() | 创建符号连接。 |
| tempnam() | 创建唯一的临时文件。 |
| tmpfile() | 创建唯一的临时文件。 |
| touch() | 设置文件的访问和修改时间。 |
| umask() | 改变文件的文件权限。 |
| unlink() | 删除文件。 |
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
我正在尝试用ruby中的gsub函数替换字符串中的某些单词,但有时效果很好,在某些情况下会出现此错误?这种格式有什么问题吗NoMethodError(undefinedmethod`gsub!'fornil:NilClass):模型.rbclassTest"replacethisID1",WAY=>"replacethisID2andID3",DELTA=>"replacethisID4"}end另一个模型.rbclassCheck 最佳答案 啊,我找到了!gsub!是一个非常奇怪的方法。首先,它替换了字符串,所以它实际上修改了
我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin
如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只
说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时
我需要一个通过输入字符串进行计算的方法,像这样function="(a/b)*100"a=25b=50function.something>>50有什么方法吗? 最佳答案 您可以使用instance_eval:function="(a/b)*100"a=25.0b=50instance_evalfunction#=>50.0请注意,使用eval本质上是不安全的,尤其是当您使用外部输入时,因为它可能包含注入(inject)的恶意代码。另请注意,a设置为25.0而不是25,因为如果它是整数a/b将导致0(整数)。
我需要从json记录中获取一些值并像下面这样提取curr_json_doc['title']['genre'].map{|s|s['name']}.join(',')但对于某些记录,curr_json_doc['title']['genre']可以为空。所以我想对map和join()使用try函数。我试过如下curr_json_doc['title']['genre'].try(:map,{|s|s['name']}).try(:join,(','))但是没用。 最佳答案 你没有正确传递block。block被传递给参数括号外的方法
在这段Ruby代码中:ModuleMClassC当我尝试运行时出现“'M:Module'的未定义方法'helper'”错误c=M::C.new("world")c.work但直接从另一个类调用M::helper("world")工作正常。类不能调用在定义它们的同一模块中定义的模块函数吗?除了将类移出模块外,还有其他解决方法吗? 最佳答案 为了调用M::helper,你需要将它定义为defself.helper;结束为了进行比较,请查看以下修改后的代码段中的helper和helper2moduleMclassC
也许这听起来很荒谬,但我想知道这对Ruby是否可行?基本上我有一个功能...defadda,bc=a+breturncend我希望能够将“+”或其他运算符(例如“-”)传递给函数,这样它就类似于...defsuma,b,operatorc=aoperatorbreturncend这可能吗? 最佳答案 两种可能性:以方法/算子名作为符号:defsuma,b,operatora.send(operator,b)endsum42,23,:+或者更通用的解决方案:采取一个block:defsuma,byielda,bendsum42,23,
所以我正在研究RubyKoans,而且我遇到了一个我认为是ruby1.9.x特有的问题。deftest_calling_global_methods_without_parenthesesresult=my_global_method2,3assert_equal5,resultend我明白了:james@tristan:~/code/ruby_projects/ruby_koans$rake(in/home/james/code/ruby_projects/ruby_koans)cdkoans/home/james/.rvm/rubies/ruby-1.9.2-p180/bin/ru