1、生成获取随机字符串

 public function createNonceStr()
    {
        // 密码字符集,可任意添加你需要的字符
        $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        $pass = "";
        for ($i = 0; $i < 16; $i++) {
            // 这里提供两种字符获取方式
            // 第一种是使用 substr 截取$chars中的任意一位字符;
            // 第二种是取字符数组 $chars 的任意元素
            $pass .= $chars[mt_rand(0, strlen($chars) - 1)];
        }
        return $pass;
    }

2、字符串排序并进行拼接

   public function sortMap($map)
    {
        ksort($map);
        $data = [];
        foreach ($map as $key => $val) {
            $data[] = $key . '=' . $val;
        }
        return implode('&', $data);
    }

3、对于加密情况下,sign签名的拼接

	public function ToUrlParams($urlObj)
	{
		$buff = "";
		foreach ($urlObj as $k => $v)
		{
			if($k != "sign"){
				$buff .= $k . "=" . $v . "&";
			}
		}
		
		$buff = trim($buff, "&");
		return $buff;
	}

4、sign 的md5加密

public function sign($params,$key){
        $new_sign = $params."&key=".$key;
        $md5_sign = md5($new_sign);
        return $md5_sign;
    }

5、数组转换成xml格式的字符串

public function array2xml($arr, $level = 1)
    {
        $s = $level == 1 ? "<xml>" : '';
        foreach ($arr as $tagname => $value) {
            if (is_numeric($tagname)) {
                $tagname = $value['TagName'];
                unset($value['TagName']);
            }
            if (!is_array($value)) {
                $s .= "<{$tagname}>" . (!is_numeric($value) ? '<![CDATA[' : '') . $value . (!is_numeric($value) ? ']]>' : '') . "</{$tagname}>";
            } else {
                $s .= "<{$tagname}>" . $this->array2xml($value, $level + 1) . "</{$tagname}>";
            }
        }
        $s = preg_replace("/([\x01-\x08\x0b-\x0c\x0e-\x1f])+/", ' ', $s);
        return $level == 1 ? $s . "</xml>" : $s;
    }

6、生成随机字符串可以用来生成不重复的订单号

function random_str($length){
    $str = null;
    // 保证不会有重复订单号存在
    while(true) {
        $strPol = "ABCDEFGHJKMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz";//大小写字母以及数字
        $max = strlen($strPol)-1;
        for($i=0;$i<$length;$i++){
            $str.=$strPol[rand(0,$max)];
        }
        // 随机数
        $order_sn_count = M('你的表名')->where([
            "order_sn"=>$str
        ])->count();
        if($order_sn_count == 0)
            break;
    }
    return $str;
}