## 調用(thinkphp)
~~~
use lib\Jpush;
~~~
#### 通知推送
~~~
$extras = [
'msg' => 'OK',
'table_num' =>"1",
'table_tme' => time(),
'table_price' => "0.01"
];
$result = jPush_send_notice([$device_id], "通知消息","通知消息" $extras);
echo($result);
/**
* 極光推送數據(發送通知消息)
* @param $device_id array 設備id
* @param $title string 標題
* @param $message string 消息內容
* @param $extras array 其他參數 ['type' => 1,'msg' => 'OK哦克'];
*/
function jPush_send_notice($device_id, $title, $message, $extras)
{
header("Content-type: text/html; charset=utf-8");
$appkeys = config('huiadmin.jpush.AppKey');
$masterSecret = config('huiadmin.jpush.MasterSecret');
$jpush = new jpush($masterSecret, $appkeys);
$message_type = 1;
$receiver = ['alias' => $device_id];//接收者
$messages = $jpush->pushMessage($title, $message, $receiver, $message_type, $extras);
return $messages;
}
~~~
#### 通知自定義推送
~~~
$device_id ="931bc0d84f20bbe9";
$extras = [
'type' => 4,
'msg' => 'OK'
];
jPush_send([$device_id], '自定義消息推送', '自定義消息推送', $extras);
/**
* 極光推送數據(發送自定義消息)
* @param $device_id array 設備id
* @param $title string 標題
* @param $message string 消息內容
* @param $extras array 其他參數 ['type' => 1,'msg' => 'OK哦克'];
* @code type: 1=餐盤數據;2=下單推送給廚師;3=中獎信息(1=中獎,2=未中獎);4=結賬后未清臺;5=iPad餐桌登陸推送;6=廚師點擊完成刷新用戶訂單
*/
function jPush_send($device_id, $title, $message, $extras)
{
header("Content-type: text/html; charset=utf-8");
$appkeys = "";
$masterSecret = "";
$jpush = new jpush($masterSecret, $appkeys);
$message_type = 0;
$receiver = ['alias' => $device_id];//接收者
$messages = $jpush->pushMessage($title, $message, $receiver, $message_type, $extras);
return $messages;
}
~~~
*****
## 類庫
~~~
<?php
/**
* Created by PhpStorm.
* User: 投實科技
* Date: 2020-10-10
* Time: 15:13:05
* Info: 極光推送
*/
namespace lib;
class Jpush
{
private $_masterSecret = '這里是master ';
private $_appkeys = '這里是key';
/**
* 構造函數
* @param string $username
* @param string $password
* @param string $appkeys
*/
function __construct($masterSecret = '', $appkeys = '')
{
$this->_masterSecret = $masterSecret;
$this->_appkeys = $appkeys;
}
/**
* 模擬post進行url請求
* @param string $url
* @param string $param
*/
function request_post($url = "", $param = "", $header = "")
{
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
$ch = curl_init();//初始化curl
curl_setopt($ch, CURLOPT_URL, $postUrl);//抓取指定網頁
curl_setopt($ch, CURLOPT_HEADER, 0);//設置header
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求結果為字符串且輸出到屏幕上
curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
// 增加 HTTP Header(頭)里的字段
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 終止從服務端進行驗證
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$data = curl_exec($ch);//運行curl
curl_close($ch);
return $data;
}
/* $receiver 接收者的信息
all 字符串 該產品下面的所有用戶. 對app_key下的所有用戶推送消息
tag(20個)Array標簽組(并集): tag=>array('昆明','北京','曲靖','上海');
tag_and(20個)Array標簽組(交集): tag_and=>array('廣州','女');
alias(1000)Array別名(并集): alias=>array('93d78b73611d886a74*****88497f501','606d05090896228f66ae10d1*****310');
registration_id(1000)注冊ID設備標識(并集): registration_id=>array('20effc071de0b45c1a**********2824746e1ff2001bd80308a467d800bed39e');
*/
//$content 推送的內容。
//$extras 附加字段
//$m_time 保存離線時間的秒數默認為一天(可不傳)單位為秒
//$message_type消息類型,0消息,1通知
public function pushMessage(
$title = '',
$message = '',
$receiver = 'all',
$message_type = 0,
$extras = array(),
$m_time = 86400,
$platform = 'all'
) {
$url = 'https://api.jpush.cn/v3/push';
$base64 = base64_encode("$this->_appkeys:$this->_masterSecret");
$header = array("Authorization:Basic $base64", "Content-Type:application/json");
$data = array();
$data['platform'] = $platform; //目標用戶終端手機的平臺類型android,ios,winphone
$data['audience'] = $receiver; //目標用戶
if ($message_type == 1) {
$data['notification'] = array(
//統一的模式--標準模式
"alert" => $message,
//安卓自定義
"android" => array(
"alert" => $message,
"title" => $title,
"builder_id" => 1,
"extras" => $extras
),
//ios的自定義
"ios" => array(
"alert" => $message,
"badge" => "1",
"sound" => "default",
// "extras"=>array("type"=>$m_type, "txt"=>$m_txt)
),
);
} else {
//蘋果自定義---為了彈出值方便調測
$data['message'] = array(
"title" => $title,
"msg_content" => $message,
"extras" => $extras
);
}
//附加選項
$data['options'] = array(
"sendno" => time(),
"time_to_live" => $m_time, //保存離線時間的秒數默認為一天
"apns_production" => 0, //指定 APNS 通知發送環境:0開發環境,1生產環境。
);
$param = json_encode($data);
$res = $this->request_post($url, $param, $header);
if ($res === false) {
return false;
}
$res_arr = json_decode($res, true);
if (isset($res_arr['error'])) {
$messageA = $res_arr['error']['message']; //錯誤信息
$error_code = $res_arr['error']['code']; //錯誤碼
switch ($error_code) {
case 200:
$message = '發送成功!';
break;
case 1000:
$message = '失敗(系統內部錯誤)';
break;
case 1001:
$message = '失敗(只支持 HTTP Post 方法,不支持 Get 方法)';
break;
case 1002:
$message = '失敗(缺少了必須的參數)';
break;
case 1003:
$message = '失敗(參數值不合法)';
break;
case 1004:
$message = '失敗(驗證失敗)';
break;
case 1005:
$message = '失敗(消息體太大)';
break;
case 1008:
$message = '失敗(appkey參數非法)';
break;
case 1020:
$message = '失敗(只支持 HTTPS 請求)';
break;
case 1030:
$message = '失敗(內部服務超時)';
break;
default:
$message = '失敗(返回其他狀態,目前不清楚額,請聯系開發人員!)';
break;
}
$message = $message."-【".$messageA."】";
$code = '201';
} else {
//return $res_arr;
$message = "發送成功!";
$code = '200';
}
return json_encode(['msg' => $message, 'code' => $code]);
}
}
~~~
- 一、php一些常用的校驗
- 1.1、校驗是否為空(null/空串)
- 1.2、校驗是否為純數字
- 1.3、校驗是否為純數字(正則)
- 1.4、檢驗手機號
- 1.5、校驗郵箱格式
- 1.6、檢查密碼長度是否符合規定
- 二、手機類型訪問判斷
- 2.1、判斷是否為手機訪問
- 2.2、判斷是否為微信訪問
- 2.3、判斷是否為Android|IOS訪問
- 2.4、檢查手機格式,中國手機不帶國家代碼,國際手機號格式為:國家代碼-手機號
- 2..5、獲取隨機UA
- 2.6、is_get_post
- 三、字符集文件轉換
- 3.1、utf8轉gbk
- 3.2、gbk轉utf8
- 3.3、繁體轉簡體
- 3.4、簡體轉繁體
- 3.5、unicode轉utf8
- 3.6、utf8轉unicode
- 3.7、Ascii轉拼音
- 3.8、gbk轉拼音
- 3.9、數組 utf8轉gbk
- 3.10、數組 gbk轉utf8
- 3.11、json 處理gbk轉碼utf-8問題( json_encode轉換數組,值為null)
- 3.12、Unicode解碼
- 3.13、【PHP】實現搜索引擎中把搜索結果命中的關鍵字標記紅色
- 3.14、字符串截取
- 3.15、去除字符串中的指定字符
- 四、文檔目錄操作
- 4.1、轉化 \ 為 /
- 4.2、創建目錄
- 4.3、拷貝目錄及下面所有文件
- 4.4、轉換目錄下面的所有文件編碼格式
- 4.5、列出目錄下所有文件
- 4.6、設置目錄下面的所有文件的訪問和修改時間
- 4.7、目錄列表
- 4.8、刪除目錄及目錄下面的所有文件
- 4.9、取得文件擴展
- 4.10、查詢字符是否存在于某字符串
- 4.11、獲取文件目錄列表
- 4.12、刪除一個路徑下的所有文件夾和文件的方法
- 4.13、文件下載
- 4.14、寫入文件日志
- 4.15、移動文件封裝方法
- 五、session與cookie
- 5.1、設置session
- 5.2、讀取session
- 5.3、清除session
- 六、CURL操作
- 6.1、發起get請求
- 6.2、發起post請求
- 6.3、curl獲取跳轉后的網址的url
- 6.4、curl判斷遠程圖片是否加防盜鏈
- 6.5、curl獲取301頁面的內容
- 6.6、curl判斷文件是否存在(404)
- 6.7、php的curl封裝類
- 七、日期、時間與字節轉換
- 7.1、轉換字節數為其他單位(Gb、Mb等)
- 7.2、時間轉換(將秒轉換為時間)
- 7.3、將秒轉換成 天-時分秒
- 7.4、時間轉換(將時分秒轉換為秒)
- 7.5、計算兩個時間相差的天
- 7.6、獲取文件大小并格式化
- 7.7、返回13位時間戳
- 7.8、返回與當前時間的差距,如1分鐘前,2小時前,5月前等
- 7.8、PHP中DateTime的常用方法
- 7.9、生日(身份證號)轉年齡
- 7.10、密碼加密方法
- 八、對象、數組、字符串、轉義等
- 8.1、將數組轉換為對象
- 8.2、將對象轉換為數組
- 8.3、將字符串轉換為數組
- 8.4、將數組轉換為字符串
- 8.5、將文本格式成適合js輸出的字符串
- 8.6、返回經addslashes(轉義)處理過的字符串或數組
- 8.7、返回經stripslashes(刪除反斜杠)處理過的字符串或數組
- 8.8、返回經htmlspecialchars(字符轉html)處理過的字符串或數組
- 8.9、安全過濾函數
- 8.10、xss過濾函數
- 8.11、過濾ASCII碼從0-28的控制字符
- 8.12、格式化文本域內容
- 8.13、將文本格式成適合js輸出的字符串
- 8.14、轉義 javascript 代碼標記
- 8.15、數組轉碼
- 8.16、php用逗號格式化數字
- 8.17、數組去重
- 8.18、字符串去重
- 8.19、數組排序
- 8.20、兼容低版本的array_column
- 8.21、把返回的數據集轉換成Tree
- 8.22、判斷字符串是否為已經序列化過
- 8.23、截取指定兩個字符之間字符串
- 九、加密擴展
- 9.1、簡單的字符串加密、解密函數
- 9.2、簡單的加密解密類【棄用】
- 9.3、簡單對稱加密算法2
- 9.4、常用對稱加密算法(DES/AES)類
- 9.5、3des加密解密類-三重數據加密算法【棄用】
- 9.6、PHP7.* DES的加密解密
- 9.7、加密解密函數
- 十、隨機數、獲取請求ip等
- 10.1、產生隨機字符串
- 10.2、獲取請求ip
- 10.3、生成一定范圍內的隨機數字
- 10.4、生成不重復的隨機數
- 10.5、生成一定數量的隨機數,并且不重復
- 10.6、生成32位隨機數
- 10.7、生成9位隨機數字(可以做qq用)
- 10.8、創建優惠券、會員卡號
- 10.9、php判斷是否梯子訪問
- 10.10 IP地區判斷
- 10.11獲取操作系統、瀏覽器信息
- 10.12、根據各種類型變量生成唯一標識符
- PHP 生成不重復唯一標識 session_create_id()
- 十一、其他
- 11.1、php對html頁面壓縮函數
- 11.2、構建層級(樹狀)數組、
- 11.3、獲取內容中的圖片
- 11.4、生成sql語句,如果傳入$in_cloumn 生成格式為 IN('a', 'b', 'c')
- 11.5、打印各種類型的數據,調試程序時使用。
- 11.6、URL重定向
- 11.7、替換html代碼里的所有圖片的url,新增url
- 11.8、去除html里的p標簽
- 11.9、去除字符串中所有html代碼(格式化代碼html)
- 11.10、將number_format的輸出轉換為php數字
- 11.11、使用Jquery插件jsonview來展示json數據
- 11.12、input()接收數據(get,post等)
- 11.13、return_json
- 11.14、圖片合成
- 11.15、將var_export 格式化為5.4數組
- 11.16、生成文件后綴圖片
- 11.17、跨域檢測
- 11.18、切分SQL文件成多個可以單獨執行的sql語句
- 11.19、XML編碼
- 11.20、分享URL壓縮
- 11.21、PHP抓取遠程圖片到本地保存
- 11.22、PHP網址縮短算法代碼(修復PHP7.0問題)
- 11.23、input xss clear
- 11.24、獲取遠程圖片顯示(遠程403)
- 11.24、xml轉數組以及數組轉xml
- 11.7、內容里批量替換圖片的url地址為自己的地址
- 十二、類庫
- 1、php 5.6.3PHP封裝的數據庫模型Model類完整示例【基于PDO】
- 2、Curl類庫
- 3、php PDO數據庫類庫
- 4、獲取網站title
- 5、極光推送類
- 6、php中文轉拼音類
- 7、php 提取HTML文章中的圖片地址類
- 8、php FTP操作類
- php獲取MAC地址
- 9、【PHP】使用phpoffice/phpexcel,導入導出數據
- 10、根據ip解析為地區-省市
- 11、PHP PUT方式上傳
- 12、Env環境變量類庫
- 13、圖片裁剪并緩存
- 14、翻譯類庫【有道、百度】
- 15、xml數據的創建與讀取
- 16、微信公眾號關鍵詞自動回復
- 17、功能強大的php文件上傳類