php 公用方法,php公共方法集合

function v($msg)

{

echo '

';

var_dump($msg);

exit;

}

function Pe($msg)

{

if (is_array($msg)) {

if (count($msg) < 2) {

echo json_encode($msg, JSON_UNESCAPED_UNICODE);

} else {

foreach ($msg as $key => $value) {

if (is_array($value)) {

$msg[$key] = json_encode($value, JSON_UNESCAPED_UNICODE);

}

}

echo implode(' *** ', $msg);

}

} else {

echo $msg;

}

echo '
';

}

/**

* 缩略图

* @param type $imagePath

*/

function PimageSL($imagePath, $xx = 100, $yy = 100)

{

$filePath = base_path() . "/public";

$rootPath = $filePath . $imagePath;

if (file_exists($rootPath) && $imagePath) {

$s_image = $imagePath . "_w{$xx}_h{$yy}.jpg";

if (!file_exists($filePath . $s_image)) {

//获取图片信息

list($imgw, $imgh, $imgt, $attr) = getimagesize($rootPath);

if ($imgw && $imgh) {

if ($imgw > 0 && $imgh > 0) {

//计算缩小的比例,目标最长边缩至150

$percent = $imgw > $imgh ? ($xx / $imgw) : ($yy / $imgh); //以最长边作为缩放参考

if ($percent < 1) {

//计算缩略图的新尺寸

$new_width = floor($imgw * $percent);

$new_height = floor($imgh * $percent);

} else {

//如果原图尺寸小于 150x150 直接输出原图尺寸

$new_width = $imgw;

$new_height = $imgh;

}

$thumb = imagecreatetruecolor($new_width, $new_height);

//读取图片

switch ($imgt) {

//判断格式,图像类型,但缩略图输出的都是jpg..参考下文

case 1:

$orgimg = imagecreatefromgif($rootPath);

break;

case 2:

$orgimg = imagecreatefromjpeg($rootPath);

break;

case 3:

$orgimg = imagecreatefrompng($rootPath);

break;

}

//imagecopyresampled(缩略图片资源, 源图片资源, dx, dy, sx,sy, 新图像宽度, 新图像高度, 源图像宽度, 源图像高度);

imagecopyresampled($thumb, $orgimg, 0, 0, 0, 0, $new_width, $new_height, $imgw, $imgh); //缩放核心函数

imagejpeg($thumb, $filePath . $s_image, 90); //输出图像

//销毁资源

imagedestroy($thumb);

imagedestroy($orgimg);

}

}

}

return $s_image;

} else {

return $imagePath;

}

}

/**

* 图片缩放

* @param type $imagePath

* @param type $width

* @param type $height

* @param type $pz

*/

function PimageCut($imagePath, $width = 100, $height = 100, $pz = 90)

{

//系统根目录

$filePath = base_path() . "/public";

$oldImagePath = $filePath . $imagePath;

if (file_exists($oldImagePath) && $imagePath) {

//图片新名字

$newImageName = "{$imagePath}_{$width}_{$height}.jpg";

//图片新的根路径

$newFilePath = $filePath . $newImageName;

if (!file_exists($newFilePath)) {

//获取图片信息

list($imgW, $imgH, $imgType, $attr) = getimagesize($oldImagePath);

if ($imgW && $imgH) {

//读取图片

switch ($imgType) {

//判断格式,图像类型,但缩略图输出的都是jpg..参考下文

case 1:

$oldImageObj = imagecreatefromgif($oldImagePath);

break;

case 2:

$oldImageObj = imagecreatefromjpeg($oldImagePath);

break;

case 3:

$oldImageObj = imagecreatefrompng($oldImagePath);

break;

}

//计算缩小的比例,目标最长边缩至150

$percent = $imgW > $imgH ? ($width / $imgW) : ($height / $imgH); //以最长边作为缩放参考

if ($percent < 1) {

//计算缩略图的新尺寸

$new_width = floor($imgW * $percent);

$new_height = floor($imgH * $percent);

$newImageObj = imagecreatetruecolor($new_width, $new_height);

//imagecopyresampled(缩略图片资源, 源图片资源, dx, dy, sx,sy, 新图像宽度, 新图像高度, 源图像宽度, 源图像高度);

imagecopyresampled($newImageObj, $oldImageObj, 0, 0, 0, 0, $new_width, $new_height, $imgW, $imgH); //缩放核心函数

imagedestroy($oldImageObj);

$start_x = $new_width > $width ? (($new_width - $width) / 2) : 0;

$start_y = $new_width > $width ? (($new_height - $height) / 2) : 0;

} else {

$newImageObj = $oldImageObj;

$start_x = $imgW > $width ? (($imgW - $width) / 2) : 0;

$start_y = $imgH > $width ? (($imgH - $height) / 2) : 0;

}

$imageCutObj = imagecreatetruecolor($width, $height);

imagecopy($imageCutObj, $newImageObj, $start_x, $start_y, 0, 0, $width, $height);

//保存图像

imagejpeg($imageCutObj, $newFilePath, $pz);

//销毁资源

imagedestroy($newImageObj);

imagedestroy($imageCutObj);

}

}

echo $newImageName;

} else {

echo $imagePath;

}

}

/**

* 发布时间方案确认

* @param type $param

* @return string

*/

function PtimeCode($param, $type = 0)

{

if ($type == 1) {

$param = strtotime($param);

}

$now_time = time();

if ($now_time - $param < 60 * 3) {

$putTime = '刚刚';

} else if ($now_time - $param < 60 * 60) {

$putTime = ceil(($now_time - $param) / 60) . '分钟前';

} else if ($now_time - $param < 60 * 60 * 24) {

$putTime = ceil(($now_time - $param) / 60 / 60) . '小时前';

} else if ($now_time - $param < 60 * 60 * 24 * 7) {

$putTime = ceil(($now_time - $param) / 60 / 60 / 24) . '天前';

} else {

// $putTime = ceil(($now_time - $param) / 60 / 60 / 24 / 30) . '月前';

$putTime = date('Y-m-d', $param);

}

return $putTime;

}

/**

* ******************

* 1、写入内容到文件,追加内容到文件

* 2、打开并读取文件内容

* *******************

*/

function saveLog($msg, $case = 'default')

{

$path = base_path() . "/storage/mylogs/{$case}/";

if (!is_dir($path)) {

mkdir($path, 0777, true);

}

$filename = $path . date('Ymd') . '.txt';

$content = date("Y-m-d H:i:s") . " ==> " . $msg . "\r\n\r\n";

file_put_contents($filename, $content, FILE_APPEND);

}

/**

* 公用的方法 返回json数据,进行信息的提示

* @param $code 状态码

* @param string $message 提示信息

* @param array $data 返回数据

* 1

*/

function showMsg($code, $message = '', $data = array())

{

$result = array(

'code' => $code,

'msg' => $message,

'data' => $data,

);

exit(json_encode($result));

}

//加密函数

function lockToken($txt = '', $key = 'bfyj')

{

if ($txt) {

$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";

$nh = rand(0, 64);

$ch = $chars[$nh];

$mdKey = md5($key . $ch);

$mdKey = substr($mdKey, $nh % 8, $nh % 8 + 7);

$txt = base64_encode($txt);

$tmp = '';

$i = 0;

$j = 0;

$k = 0;

for ($i = 0; $i < strlen($txt); $i++) {

$k = $k == strlen($mdKey) ? 0 : $k;

$j = ($nh + strpos($chars, $txt[$i]) + ord($mdKey[$k++])) % 64;

$tmp .= $chars[$j];

}

return urlencode($ch . $tmp);

} else {

return false;

}

}

//解密函数

function unlockToken($txt = '', $key = 'bfyj')

{

if ($txt) {

$txt = urldecode($txt);

$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";

$ch = $txt[0];

$nh = strpos($chars, $ch);

$mdKey = md5($key . $ch);

$mdKey = substr($mdKey, $nh % 8, $nh % 8 + 7);

$txt = substr($txt, 1);

$tmp = '';

$i = 0;

$j = 0;

$k = 0;

for ($i = 0; $i < strlen($txt); $i++) {

$k = $k == strlen($mdKey) ? 0 : $k;

$j = strpos($chars, $txt[$i]) - $nh - ord($mdKey[$k++]);

while ($j < 0) {

$j += 64;

}

$tmp .= $chars[$j];

}

return base64_decode($tmp);

} else {

return false;

}

}

/**

* @Author Afree

* @DateTime 2018-04-18

* @copyright [获取设计订单号]

* @license [license]

* @version [version]

* @param [type] $user_id [description]

* @return [type] [description]

*/

function pbGetOrderSN($user_id)

{

$user_uid = 10000000 + $user_id;

$nowTime = time();

$date = date('Ymd', $nowTime);

$timestr = substr($nowTime, -4);

$rand = rand(10, 99);

$userstr = substr($user_uid, -4);

return $date . $timestr . $rand . $userstr;

}

/**

* @Author Afree

* @DateTime 2018-04-18

* @copyright [获取工厂传单订单号]

* @license [license]

* @version [version]

* @param [type] $user_id [description]

* @return [type] [description]

*/

function pbGetFactorySN($user_id)

{

$user_uid = 10000000 + $user_id;

$nowTime = time();

$date = date('Ymd', $nowTime);

$rand = rand(10, 99);

$timestr = substr($nowTime, -2);

$userstr = substr($user_uid, -2);

return $date . $userstr . $timestr . $rand;

}

/**

* 酷家乐api curl组合

* @param $url

* @param array $data

* @return mixed

* 模拟发送get 和 post 请求

*/

function pbKapiCurlAsk($url, $data = '', $type = "GET")

{

set_time_limit(0); //执行时间无限

ini_set('memory_limit', '-1'); //内存无限

$ch = curl_init();

curl_setopt($ch, CURLOPT_TIMEOUT, 600);

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_HEADER, 0);

$type = strtolower($type);

switch ($type) {

case 'post':

$header = array(

// 'Content-Type: text/plain;charset=utf-8',

'Content-Type: application/json;charset=utf-8',

"X-AjaxPro-Method:ShowList",

);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

//post请求配置

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

break;

case 'text':

$header = array(

'Content-Type: text/plain;charset=utf-8',

// 'Content-Type: application/json;charset=utf-8',

"X-AjaxPro-Method:ShowList",

);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

//post请求配置

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

break;

default:

$header = array(

'Content-Type: text/plain;charset=utf-8',

);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

break;

}

$result = curl_exec($ch);

curl_close($ch);

return json_decode($result, true);

}

/**

* 清空文件夹函数和清空文件夹后删除空文件夹函数的处理

* @param type $path

*/

function pbDelDirFile($path)

{

//如果是目录则继续

if (is_dir($path)) {

//扫描一个文件夹内的所有文件夹和文件并返回数组

$p = scandir($path);

foreach ($p as $val) {

//排除目录中的.和..

if ($val != "." && $val != "..") {

//如果是目录则递归子目录,继续操作

if (is_dir($path . $val)) {

//子目录中操作删除文件夹和文件

pbDelDirFile($path . $val . '/');

//目录清空后删除空文件夹

@rmdir($path . $val . '/');

} else {

//如果是文件直接删除

unlink($path . $val);

}

}

}

}

}

/**

* 获取文章摘要

* @param type $data

* @param type $cut

* @param type $str

* @return type

*/

function PcutArticle($data, $cut = 140, $str = "....")

{

$data = strip_tags($data); //去除html标记

$pattern = "/&[a-zA-Z]+;/"; //去除特殊符号

$data = preg_replace($pattern, '', $data);

if (!is_numeric($cut)) {

return $data;

}

if ($cut > 0) {

$data = mb_strimwidth($data, 0, $cut, $str);

}

return $data;

}

/**

* 作用:将xml转为array

*/

function PxmlToArray($xml)

{

//将XML转为array

libxml_disable_entity_loader(true);

$values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);

return $values;

}

/**

* 作用:array转xml

*/

function ParrayToXml($arr)

{

$xml = "";

foreach ($arr as $key => $val) {

if (is_numeric($val)) {

$xml .= "" . $val . "" . $key . ">";

} else {

$xml .= "" . $key . ">";

}

}

$xml .= "";

return $xml;

}

/**

* 随机生成安全符号 登录校验

* @param int $length

* @return string

*/

function pbGetRandStr($length = 4)

{

// 密码字符集,可任意添加你需要的字符

$chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',

'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',

't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D',

'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',

'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',

'0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

// 在 $chars 中随机取 $length 个数组元素键名

$keys = array_rand($chars, $length);

$password = '';

for ($i = 0; $i < $length; $i++) {

// 将 $length 个数组元素连接成字符串

$password .= $chars[$keys[$i]];

}

return $password;

}

/**

* 过滤接收数据

* @param [array] $data [数据]

* @param [boole] $unset [是否删除空值]

* @return [array] [description]

*/

function dataFilterNull($data, $unset = false)

{

foreach ($data as $key => &$val) {

if (is_array($val)) {

$val = array_filter($val);

} else {

# 值为空,是否删除空值

if ($val == null && !$unset) {

return false;

} elseif ($val == null && $unset) {

unset($data[$key]);

}

}

}

return $data;

}

/**

* 根据字段重新组合数组(二维)

* @param type $array 二维数组

* @param type $field 字段

* @return type

*/

function pdFieldRegroupArr($array, $field)

{

$list = $temp = array();

if (!empty($array)) {

# 提取字段

foreach ($array as $v) {

$v = $v[$field];

$temp[] = $v;

}

# 去除重复字段

$temp = array_unique($temp);

// 组合

foreach ($temp as $k => $v) {

foreach ($array as $kk => $vv) {

// var_dump($vv['date'], $v);

if ($vv['date'] == $v) {

$list[$v][] = $vv;

}

}

}

}

return $list;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值