站長資訊網
        最全最豐富的資訊網站

        20+個值得收藏的PHP常用小技巧(分享)

        本篇文章給大家分享一些PHP實際開發中常用的技巧和方法,以讓大家增加摸魚的時間,快來收藏學習吧!

        20+個值得收藏的PHP常用小技巧(分享)

        1、解決跨域問題

        public function __construct() {     parent::__construct();     header('Access-Control-Allow-Origin:*');    //跨域 }

        2、json_encode 中文不轉碼

        die( json_encode( $result,JSON_UNESCAPED_UNICODE ) );

        3、二維數組排序

        $users = array(     array('name' => 'xiao1', 'age' => 20),     array('name' => 'xiao2', 'age' => 18),     array('name' => 'xiao3', 'age' => 22) );   /*按照年齡升序*/ //要將age提取出來存儲到一維數組里,然后按照age升序排列 $ages= array_column($users, 'age'); array_multisort($ages, SORT_ASC, $users);   /*先按照年齡升序,再按照姓名降序*/ $ages= array_column($users, 'age'); $names = array_column($users, 'name'); array_multisort($ages, SORT_ASC, $names, SORT_DESC, $users);

        4、如果Linux服務器上php.ini關閉了錯誤提示,導致結果406,500。打印錯誤信息。

        ini_set("display_errors", "On"); error_reporting(E_ALL | E_STRICT);

        5、list 的使用

        //list使用 public function test(){     list($name, $sex) = $this->getInfo();     echo "姓名:{$name},性別:{$sex}"; }   public function getInfo(){     return ['張三', '男']; }   //輸出:姓名:張三,性別:男

        6、函數 array_column()的使用

        $array = [     ['id'=>'99', 'name'=>'九十九'],     ['id'=>'88', 'name'=>'八十八'],     ['id'=>'77', 'name'=>'七十七'], ]; $arr1 = array_column($array, 'name');    //輸出:array (0 => '九十九',1 => '八十八',2 => '七十七',) $arr2 = array_column($array, 'name', 'id');  //輸出:array (  99 => '九十九',  88 => '八十八',  77 => '七十七',)
        • array_column() 與 array_combine() 搭配使用

        $ids = array_column($array, 'id'); $arrayCombine = array_combine($ids, $array); /*$arrayCombine 輸出:  array (       99 => array ( 'id' => '99', 'name' => '九十九', ),       88 => array ( 'id' => '88', 'name' => '八十八', ),       77 => array ( 'id' => '77', 'name' => '七十七', ),   )*/

        7、一維數組去重,刪除0,null,索引重置

        $array = array(0,1,0,2,null,1,3,4,null,0); $array = array_values(array_unique(array_diff($array, [0, null])));	//去除0,null;去重 var_export($array);   /*輸出: array (   0 => 1,   1 => 2,   2 => 3,   3 => 4, ) */

        8、把秒轉為時分秒

        • 把秒數轉為時分秒,gmstrftime函數,不過該函數僅限于24小時內的秒數轉換。
        $r = gmstrftime('%H:%M:%S',(3600*23)+123); var_export($r); //輸出: '23:02:03'

        9、接口返回

        • 接口正常返回 1 ,異常返回 -1 。如果數據為空,是1;-1是參數異常或者邏輯錯誤。

        10、四舍五入保留2位小數。

        round($x, 2);

        11、隱藏手機號中間4位。

        $num = "13711111111"; $str = substr_replace($num,'****',3,4);

        12、換行變量 PHP_EOL

        使用場景:一個小小的換行,其實在不同的平臺有著不同的實現。

        本來在unix世界換行就用/n來代替,但是windows為了體現他的不同,就用/r/n,更有意思的是在mac中用/r。

        PHP_EOL就是php中已經定義好的變量,代表php的換行符。

        這個變量會根據平臺而變,在windows下會是/r/n,在linux下是/n,在mac下是/r。

        13、PHP判斷數組 鍵 是否存在 isset(),array_key_exists(),empty()

        $array = ['a'=>'我是第一個', 'b'=>'我是第二個', 'c'=>'我是第三個', 'f' => null]; if(isset($array['a'])) {     echo 'a存在 '; } else {     echo 'a不存在 '; }  if(array_key_exists('d', $array)) {     echo 'd存在 '; } else {     echo 'd不存在 '; }  if (empty($array['f'])) {     echo 'f不存在'; } else {     echo 'f存在,且不為 null,0,"0",false'; }   //a存在 d不存在 f不存在

        14、引入js的文件,帶參數?_=1553829159194

        有時候有些地址后面有個這樣的參數 ?_=1553829159194

        • http://***/index/index?_=1553829159194
        • 在url后面加一個timestamp時間戳,保證每次的url都是變化的,這樣就不會讀取瀏覽器緩存了。

        15、接口測試工具

        • 接口測試工具推薦 postman

        16、如果最后一個字是“區”,就刪除。

        $distName = '南山區'; $lastChar = mb_substr($distName, -1); if($lastChar=='區'){     $lastChar = mb_substr($distName, 0, -1); } echo $lastChar;

        17、假設頁面內容如下:

        • 后臺返回的數據結構:
        {"eat":["大米","小麥"],"drink":["水","茶"]}
        • 不太好,這樣還要前端對應到相關字段,eat吃的;drink是喝的。

        • 最好這樣返回:

        [{"name":"吃的","list":["大米","小麥"]},{"name":"喝的","list":["水","茶"]}]

        18、創建0777目錄,mkdir,chmod配合使用

        • 用mkdir創建在windows沒問題,但是在linux使用mkdir創建文件夾會出現沒有最大權限0777的情況;所以要再使用chmod函數,(chmod函數針對linux創建文件夾權限不足的情況)
        //若目錄不存在則創建目錄 $filePath = '../file/20900101'; if(@!file_exists($filePath)){     mkdir($filePath, 0777, true);     chmod($filePath, 0777); }

        19、foreach中引用賦值

        • 代碼
        $temp = [             [ 'id' => 1, 'name' => 'name1', 'age' => 'age1', 'time' => 'time1' ],             [ 'id' => 2, 'name' => 'name2', 'age' => 'age2', 'time' => 'time2' ]         ];  # 清空原數據 $data = $temp; foreach ($data as &$value){     $value = []; } echo '<pre>'; print_r($data);  # 重置原數據 $data = $temp; foreach ($data as &$value){     $value = [         'hobby' => 1     ]; } print_r($data);  # 追加原數據 $data = $temp; foreach ($data as &$value){     $value['hobby'] = 1; } print_r($data);
        • 打印
        Array (     [0] => Array         (         )      [1] => Array         (         )  ) Array (     [0] => Array         (             [hobby] => 1         )      [1] => Array         (             [hobby] => 1         )  ) Array (     [0] => Array         (             [id] => 1             [name] => name1             [age] => age1             [time] => time1             [hobby] => 1         )      [1] => Array         (             [id] => 2             [name] => name2             [age] => age2             [time] => time2             [hobby] => 1         )  )

        20、url生成器

        public function test() { 	$url = self::getUrl('http://www.test.com', ['id' => 3, 'other' => '好的']); 	echo $url . '<br>';     //打印:http://www.test.com?id=3&other=%E5%A5%BD%E7%9A%84 	echo urldecode($url);   //打印:http://www.test.com?id=3&other=好的 }  public function getUrl($apiUrl, $param = []){     $param = http_build_query($param);     return $apiUrl . '?' . $param; }

        21、寫接口空數組返回對象形式

        • $data為空時強轉為 object類型后,json_encode的值是{}不強轉的話則是==[]==,是否需要強轉看實際情況
        $data = $data ? $data : (object)$data;

        原文地址:https://juejin.cn/post/6973956902094897189(不定時更新)

        作者:有上進心的東伯雪鷹

        推薦學習:《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲精品高清无码视频| 国产精品偷伦视频观看免费| 久久夜色精品国产欧美乱| 国产99视频精品免费视频76| 久久综合久久自在自线精品自| 国产精品美女久久久久av爽| avtt天堂网久久精品| 无码少妇精品一区二区免费动态| 精品多毛少妇人妻AV免费久久| 久久福利青草精品资源站| 国产欧美日韩精品丝袜高跟鞋| 亚洲精品国偷自产在线| 久久九九久精品国产免费直播| 欧美精品一区二区三区在线| …久久精品99久久香蕉国产| 久久精品国产亚洲AV电影| 亚洲性日韩精品一区二区三区| 老司机午夜网站国内精品久久久久久久久| 午夜精品美女写真福利| 精品国产网红福利在线观看| 99久久婷婷免费国产综合精品| 特级精品毛片免费观看| 中文字幕精品无码久久久久久3D日动漫| 久久久久亚洲精品中文字幕| 精品亚洲一区二区三区在线播放| 国产精品美女WWW爽爽爽视频| 99久久99久久精品国产片| 午夜精品福利视频| 日本一区二区三区精品中文字幕| 精品少妇一区二区三区视频| 国产一区二区精品久久| 精品久久久久久中文字幕| 精品久久一区二区| 久久久九九有精品国产| 中文精品久久久久国产网址| 91精品视频观看| 99精品国产一区二区| 国产精品 91 第一页| 精品国偷自产在线视频| 国产内地精品毛片视频| 精品亚洲成α人无码成α在线观看|