首页 > 试题广场 >

如果你的脚本无法正确识别一个存储于另一个平台上的文件的行结尾

[单选题]

如果你的脚本无法正确识别一个存储于另一个平台上的文件的行结尾,你该怎么办?

  • 改变auto_detect_line_ending的设置
  • 用正则表达式侦测行的最后一个字母
  • 用fpos()
  • 用ftok()
推荐
选A。该题考察的是PHP文件系统函数Filesystem,该函数允许使用者访问和操作文件系统
  • auto_detect_line_endings默认"0",当设置为 "1" 时,PHP 将检查通过 fgets() 和 file() 取得的数据中的行结束符号是符合 Unix、MS-Dos 还是 Mac 不同平台的习惯。(PHP 4.3 版以后可用)
编辑于 2019-05-05 10:29:04 回复(0)

1 auto_detect_line_endings 

当设为 On 时,PHP 将检查通过 fgets() 和 file() 取得的数据中的行结束符号是符合 Unix,MS-DOS,还是 Macintosh 的习惯。

这使得 PHP 可以和 Macintosh 系统交互操作,但是默认值是 Off,因为在检测第一行的 EOL 习惯时会有很小的性能损失,而且在 Unix 系统下使用回车符号作为项目分隔符的人们会遭遇向下不兼容的行为。


2 ftok

关于ftok函数,先不去了解它的作用来先说说为什么要用它,共享内存,消息队列,信号量它们三个都是找一个中间介质,来进行通信的,这种介质多的是。就是怎么区分出来,就像唯一一个身份证来区分人一样。你随便来一个就行,就是因为这。只要唯一就行,就想起来了文件的设备编号和节点,它是唯一的,但是直接用它来作识别好像不太好,不过可以用它来产生一个号。ftok()就出场了。ftok函数具体形式如下:

key_t ftok(const char *pathname, int proj_id);

    其中参数fname是指定的文件名,这个文件必须是存在的而且可以访问的。id是子序号,它是一个8bit的整数。即范围是0~255。当函数执行成功,则会返回key_t键值,否则返回-1。
--------------------- 
作者:satellite13 
来源:CSDN 
原文:https://blog.csdn.net/u013485792/article/details/50764224 
版权声明:本文为博主原创文章,转载请附上博文链接!

3 fpos

fpos 未找到对应的方法介绍

编辑于 2019-07-16 19:33:34 回复(0)
A
发表于 2018-06-29 09:12:08 回复(0)
a
发表于 2018-03-06 19:36:45 回复(0)
A
发表于 2018-01-17 07:36:50 回复(0)
A. 讲道理JS里面为什么这么多PHP
发表于 2017-07-04 10:04:44 回复(3)