hyperf-chat/app/Helper/StringHelper.php

63 lines
1.3 KiB
PHP
Raw Normal View History

2020-12-03 16:22:55 +08:00
<?php
declare(strict_types=1);
2020-12-26 21:33:40 +08:00
/**
*
* This is my open source code, please do not use it for commercial applications.
*
* For the full copyright and license information,
* please view the LICENSE file that was distributed with this source code
*
* @author Yuandong<837215079@qq.com>
* @link https://github.com/gzydong/hyperf-chat
*/
2020-12-03 16:22:55 +08:00
namespace App\Helper;
/**
* 字符串助手类
*
* Class StringHelper
2021-04-20 16:30:57 +08:00
*
2020-12-03 16:22:55 +08:00
* @package App\Helper
*/
class StringHelper
{
/**
* 将字符串转换成二进制
*
* @param string $str
2021-04-20 16:30:57 +08:00
*
2020-12-03 16:22:55 +08:00
* @return string
*/
public static function str2Bin(string $str): string
{
//列出每个字符
$arr = preg_split('/(?<!^)(?!$)/u', $str);
//unpack字符
foreach ($arr as &$v) {
$temp = unpack('H*', $v);
2021-04-20 16:30:57 +08:00
$v = base_convert($temp[1], 16, 2);
2020-12-03 16:22:55 +08:00
unset($temp);
}
return join(' ', $arr);
}
/**
* 将二进制转换成字符串
*
* @param string $str
2021-04-20 16:30:57 +08:00
*
2020-12-03 16:22:55 +08:00
* @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);
}
}