1
vayn 2011-07-05 12:43:56 +08:00
is_string() 不行么
|
2
Sunyanzi 2011-07-05 13:43:39 +08:00
没办法 ... 高位判断的方式不适用于中文 ...
如果只包含英文数字和键盘上的符号 ... 可以用正则或者用函数取巧 ... 但是假如是 UNICODE 字符串 ... 那么没有任何简便的办法可以区分 ... |
3
dongsheng 2011-07-05 13:47:01 +08:00
如果二进制只是可执行文件的可以用unpack解出来看看是否是可执行文件的头
|
4
reus 2011-07-05 13:51:28 +08:00
二进制文件也可以看成是ASCII编码的文本,怎么判断呢?
|
5
reus 2011-07-05 13:53:35 +08:00
或者用finfo类函数看文件的mine_type..
|
6
dongsheng 2011-07-05 13:53:54 +08:00
@reus 二进制文件不能看成ASCII编码,偶尔会有几个字节会恰好在ASCII的范围内而已,可执行文件都有特殊的头,比如linux的可执行文件都有elf文件头。
|
8
darasion OP 解释一下,
读入变量的是 hadoop 上的文件的最后几行(因为文件规模很大,几百G,上T 的都有),文件类型不一定是什么。 现在主要是需要看下文件里边记录的都是啥。但有些不是文本的,就要判断一下。 因此引出了这个问题。 |
9
TheOnly92 2011-07-05 19:53:04 +08:00
用 preg_match 检查是否存有非-ASCII 字串?
|
10
Hyperion 2011-07-05 20:26:27 +08:00
汗, 判断文件类型只能识别文件头... 设计决定需求, 需求奇怪 设计必然奇葩...
|