51 lines
998 B
PHP
51 lines
998 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Helper;
|
|
|
|
/**
|
|
* 字符串助手类
|
|
*
|
|
* Class StringHelper
|
|
* @package App\Helper
|
|
*/
|
|
class StringHelper
|
|
{
|
|
/**
|
|
* 将字符串转换成二进制
|
|
*
|
|
* @param string $str
|
|
* @return string
|
|
*/
|
|
public static function str2Bin(string $str): string
|
|
{
|
|
//列出每个字符
|
|
$arr = preg_split('/(?<!^)(?!$)/u', $str);
|
|
//unpack字符
|
|
foreach ($arr as &$v) {
|
|
$temp = unpack('H*', $v);
|
|
$v = base_convert($temp[1], 16, 2);
|
|
unset($temp);
|
|
}
|
|
|
|
return join(' ', $arr);
|
|
}
|
|
|
|
/**
|
|
* 将二进制转换成字符串
|
|
*
|
|
* @param string $str
|
|
* @return string
|
|
*/
|
|
public static function bin2Str(string $str): string
|
|
{
|
|
$arr = explode(' ', $str);
|
|
foreach ($arr as &$v) {
|
|
$v = pack('H' . strlen(base_convert($v, 2, 16)), base_convert($v, 2, 16));
|
|
}
|
|
|
|
return join('', $arr);
|
|
}
|
|
}
|