中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP常用小技巧有哪些

發布時間:2021-08-08 10:45:46 來源:億速云 閱讀:383 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“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常用小技巧有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

海盐县| 庄河市| 任丘市| 盐亭县| 织金县| 咸阳市| 葫芦岛市| 大庆市| 清流县| 思茅市| 府谷县| 临邑县| 荆门市| 枣强县| 自治县| 重庆市| 泰来县| 吐鲁番市| 琼海市| 泰安市| 和平区| 东乡县| 青铜峡市| 五大连池市| 古田县| 华阴市| 黎城县| 瑞金市| 舞钢市| 昌邑市| 郧西县| 溆浦县| 利川市| 龙口市| 分宜县| 奉新县| 商都县| 嘉定区| 教育| 红河县| 临邑县|