添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

这几天有一个功能,通过PHP读取文件的前四个字节并转换为16进制,并通过返回的16进制字符串,调用不同的命令对文件进行处理操作;当文件的数量超过1000之后,处理速度特别慢,php代码如下:

<?php
    $handle=fopen('test.txt','r');
    $head4=fread($handle,4);
    fclose($handle);
    $hex=bin2hex($head4);
?>

后来想到改用shell的方式处理,以为能很快解决的,在网上找了很多方法,都没有直接将ASCII码转换为十六进制的函数,后来采用管道命令截取方式,代码如下:

#读取文件的前4个字节,并获取16进制的值
od -N4 -t x1 test.txt|head -1|sed -e 's/0000000//g' -e 's/ //g'|tr -d '\n'

做了一下简单测试,跟php读取返回的值一样。效率上比使用php的效率要高很多