php常用功能和笔记

php-resque php队列库基于redis

php-resque队列库
composer require chrisboulton/php-resque
Resque是Redis支持的库,用于创建后台作业,将这些作业放在一个或多个队列中,并在以后进行处理。

php快速检测文件编码类型

php -r "echo 'probably : ' . mb_detect_encoding(file_get_contents('filename'), 'UTF-8, ASCII, JIS, EUC-JP, SJIS,  GB18030, iso-8859-1') . PHP_EOL;"

php删除文档中的BOM标头

方法一、
//Remove UTF8 Bom
function remove_utf8_bom($text)
{
    $bom = pack('H*','EFBBBF');
    $text = preg_replace("/^$bom/", '', $text);
    return $text;
}
方法二、
// -------- read the file-content ----
$str = file_get_contents($source_file); 

// -------- remove the utf-8 BOM ----
$str = str_replace("\xEF\xBB\xBF",'',$str); 

// -------- get the Object from JSON ---- 
$obj = json_decode($str); 

方法三、
$str = preg_replace('/\x{FEFF}/u', '', $file);

方法四、
b'\xef\xbb\xbf'代表文字字符串“ \ xef \ xbb \ xbf”。 如果要检查BOM,则需要使用双引号,因此\x序列实际上被解释为字节:
"\xef\xbb\xbf"
查看具体的BOM内容xxd
$ curl http://ircb.in/jisti/ | xxd
0000000: efbb bfef bbbf efbb bfef bbbf efbb bfef  ................
0000010: bbbf efbb bf3c 2144 4f43 5459 5045 2068  .....<!DOCTYPE h
0000020: 746d 6c3e 0a3c 6874 6d6c 3e0a 3c68 6561  tml>.<html>.<hea
...
xxd是二进制查看命令,默认将2文件显示为16进制字符串表示形式。

获取文件开头BOM标识

<?php
$f = file_get_contents('ok.txt');
$m = substr($f, 0, 3);

//if (preg_match("/\xef\xbb\xbf/", $m)){
if (preg_match("/efbbbf/", $m)){
        echo "**包含utf8-bom**\n";
}
如果有,则输出   **包含utf8-bom**

本文链接:目录"--EOF--