php 字符串函数总结
字符串函数
根据用户id生成唯一的分享码
/**
* 根据用户id生成唯一的分享码
* @param $user_id
* @return string
* eq:
* A000001
*/
private function getRecommendCode($user_id)
{
$chr = chr(($user_id % 26) + 65);
return $chr . str_pad($user_id, 6, '0', STR_PAD_LEFT);
}
获取汉字首字母大写
/**
* 获取汉字大写字母 此方法并不完美
* @param $str
* @return string
*/
function getObtainInitials($str)
{
if (empty($str)) {
return '';
}
$fchar = ord($str{0});
if ($fchar >= ord('A') && $fchar <= ord('z'))
return strtoupper($str{0});
$s1 = iconv('UTF-8', 'gb2312', $str);
$s2 = iconv('gb2312', 'UTF-8', $s1);
$s = $s2 == $str ? $s1 : $str;
$asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
if ($asc >= -20319 && $asc <= -20284) {
return 'A';
}
if ($asc >= -20283 && $asc <= -19776) {
return 'B';
}
if ($asc >= -19775 && $asc <= -19219) {
return 'C';
}
if ($asc >= -19218 && $asc <= -18711) {
return 'D';
}
if ($asc >= -18710 && $asc <= -18527) {
return 'E';
}
if ($asc >= -18526 && $asc <= -18240) {
return 'F';
}
if ($asc >= -18239 && $asc <= -17923) {
return 'G';
}
if ($asc >= -17922 && $asc <= -17418) {
return 'H';
}
if ($asc >= -17417 && $asc <= -16475) {
return 'J';
}
if ($asc >= -16474 && $asc <= -16213) {
return 'K';
}
if ($asc >= -16212 && $asc <= -15641) {
return 'L';
}
if ($asc >= -15640 && $asc <= -15166) {
return 'M';
}
if ($asc >= -15165 && $asc <= -14923) {
return 'N';
}
if ($asc >= -14922 && $asc <= -14915) {
return 'O';
}
if ($asc >= -14914 && $asc <= -14631) {
return 'P';
}
if ($asc >= -14630 && $asc <= -14150) {
return 'Q';
}
if ($asc >= -14149 && $asc <= -14091) {
return 'R';
}
if ($asc >= -14090 && $asc <= -13319) {
return 'S';
}
if ($asc >= -13318 && $asc <= -12839) {
return 'T';
}
if ($asc >= -12838 && $asc <= -12557) {
return 'W';
}
if ($asc >= -12556 && $asc <= -11848) {
return 'X';
}
if ($asc >= -11847 && $asc <= -11056) {
return 'Y';
}
if ($asc >= -11055 && $asc <= -10247) {
return 'Z';
}
return '#';
}
中文截取无乱码
方法1:mb_substr();
方法2:以下代码就是
/**
* 中文截取无乱码
* @param string $str
* @param int $start
* @param int $length
* @return string
* eq:
* $str = "中国人都爱php";
* echo substr_utf8($str, 5, 2);
*/
function substr_utf8($str, $start, $length = null)
{
return join("", array_slice(preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $start, $length));
}
/**
* 计算字符串的长度
* @param $str
* @return int
*/
function strlen_utf8($str)
{
return count(preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY));
}
清除多余的空格
/**
* 清除多余的空格
* @param $str
* @return mixed
*/
function trimall($str)
{
$qian = array(" ", " ", "\t", "\n", "\r");
$hou = array("", "", "", "", "");
return str_replace($qian, $hou, $str);
}
分解数字
/**
* 分解数字
* @param $num
* @return array|If
*/
function explainnum($num)
{
return str_split(sprintf('%05s', $num));
}
反转字符串
strrev($string); //反转字符串
function str_reverse($str)
{
$len = strlen($str);
$newstr = '';
for ($i = $len; $i >= 0; $i--) {
$newstr .= $str[$i];
}
return $newstr;
}
echo str_reverse('abcdefg');