<?php
namespace ticky\helper;
class str {
const single = 1; const double = 2; const back = 3; const comma = 4;
public static function cut($str, $length, $fix = '...') {
$str = $str ? trim($str) : '';
if (!$str) {
return $str;
}
$subStr = mb_substr($str, 0, $length, 'UTF-8');
if ($length > 0 && mb_strlen($str, 'UTF-8') > $length) {
return $subStr . $fix;
} else {
return $str;
}
}
public static function random($length = 4, $type = 0) {
switch ($type) {
case 1 :
$salt = array_merge(range('A', 'Z'), range('a', 'z'));
break;
case 2 :
$salt = range(0, 9);
break;
default:
$salt = array_merge(range('A', 'Z'), range('a', 'z'), range(0, 9));
break;
}
$count = count($salt);
$hash = '';
for ($i = 0; $i < $length; $i++) {
$hash .= $salt[mt_rand(0, $count - 1)];
}
return $hash;
}
public static function nl2br($str) {
return str_replace(array("\r\n", "\r", "\n"), "<br/>", $str);
}
public static function quote($str, $type = 1) {
switch ($type) {
case 1:
$str = '\'' . $str . '\'';
break;
case 2:
$str = '"' . $str . '"';
break;
case 3:
$str = '`' . $str . '`';
break;
case 4:
$str = ',' . $str . ',';
break;
}
return $str;
}
public static function underline2camel($str, $type = 'lower') {
$array = explode('_', $str);
$result = '';
foreach ($array as $value) {
$result .= ucfirst($value);
}
if ($type == 'upper') {
return ucfirst($result);
} elseif ($type == 'lower') {
return lcfirst($result);
}
}
public static function camel2underline($str) {
$array = array();
for ($i = 0; $i < strlen($str); $i++) {
if ($str[$i] == strtolower($str[$i])) {
$array[] = $str[$i];
} else {
if ($i > 0) {
$array[] = '_';
}
$array[] = strtolower($str[$i]);
}
}
$result = implode('', $array);
return $result;
}
public static function clearBom($str) {
if ($str && ord($str[0]) == 239 && ord($str[1]) == 187 && ord($str[2]) == 191) {
$str = substr($str, 3);
}
return $str;
}
public static function pinyin($str) {
return $str;
}
}