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

        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號
        主站蜘蛛池模板: 国产麻豆精品一区二区三区v视界| 精品一区二区三区在线成人| 亚洲爆乳精品无码一区二区三区| 亚洲精品免费在线观看| 亚洲精品宾馆在线精品酒店| 88久久精品无码一区二区毛片| 精品久久久久中文字幕日本| 四虎亚洲国产成人久久精品| 97久人人做人人妻人人玩精品 | 亚洲国产精品无码久久青草 | 久久国产精品一国产精品金尊| 欧美成人精品欧美一级乱黄码 | A级精品国产片在线观看| 亚洲欧美精品AAAAAA片| 日本精品一区二区久久久| 国产精品一区在线观看你懂的| 一区二区三区精品国产欧美| 国产精品一久久香蕉产线看| 国产精品高清一区二区三区| 久久99国产综合精品| 无码精品视频一区二区三区 | 国产精品久久久久久影院| 精品国产VA久久久久久久冰| 少妇人妻偷人精品免费视频| 亚洲欧美激情精品一区二区| 亚洲日韩欧美制服精品二区 | 日本精品一区二区久久久| 欧美日韩精品在线观看| 久久精品无码一区二区三区日韩| 国产三级精品久久| 狠狠精品干练久久久无码中文字幕 | 亚洲av无码国产精品夜色午夜| 亚洲愉拍99热成人精品热久久 | 精品久久久久久久久久中文字幕| 国产精品亚洲产品一区二区三区 | 亚洲日韩精品一区二区三区无码| 最新在线精品国自av| 无码人妻精品一区二区三区在线 | 亚洲国产精品无码中文字| 少妇精品无码一区二区三区 | 在线亚洲欧美中文精品|