您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“PHP常用小技巧有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“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;
以上是“PHP常用小技巧有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。