PHP 使用+ 操作符,array_merge 函數,以及array_merge_recursive 函數進行合併數組的區別
PHP中array_merge函數和+操作符都可以實現數組合併的功能,但是兩者俱有一些差異點,如果在實際使用過程中,沒有很好的理解他們之間的差異點,就會造成重大的bug: 首先看一下array_merge()的官方功能介紹,array_merge()將一個或多個數組的單元合併起來,一個數組中的值附加在前一個…
PHP中array_merge函數和+操作符都可以實現數組合併的功能,但是兩者俱有一些差異點,如果在實際使用過程中,沒有很好的理解他們之間的差異點,就會造成重大的bug: 首先看一下array_merge()的官方功能介紹,array_merge()將一個或多個數組的單元合併起來,一個數組中的值附加在前一個…
升級到PHP 7.1之後,經常收到A non-numeric value encountered的warning信息。比如下面這段代碼: $a = ‘123a’; $b = ‘b456’; echo $a+$b; PHP 7.1新E_WARNING 這是PHP7.1 新增的waring 信息,官方的解釋是:…
如何把多維數組中的每個子數組合併成一個新數組$result,有兩個方法: $merged = call_user_func_array(‘array_merge’, $result); 如果是PHP版本在5.6以上,可以使用…操作符: $merged = array_merge(…$result);
詳細的區別請看PHP官方文檔PHPurlencode() 和PHPrawurlencode(),很長,仔細理解了一下,做下要點: 1. PHP中對於URL進行編碼,可以使用urlencode()或者rawurlencode(),二者的區別是urlencode()把空格編碼為’+’,而…
從PHP 7.0升級到PHP 7.1廢棄了一個在過去普遍應用的擴展(mcrypt),但是微信官方提供的消息加密解密算法中的核心部分中確實使用mcrypt的,Prpcryptclass的加密方法(encrypt)和解密方法(decrypt) ,怎麼改成openssl的函數呢? /** * 对明文进行加密 * …
我承認這個技巧真的out 了,但是使用之後發現真的很有效果!就當做一個PHP 技巧做下筆記! 使用場景:在一個PHP 函數中通過複雜的計算獲取到這個變量,然後這個函數會在頁面中多次被調用。 function get_some_var(){ $var = complex_calculation(); retu…
如果是JSON數據,使用json_decode這個PHP函數就能解碼,但是有些數據接口只提供了JSONP數據如何解碼呢? 下面提供了一個PHP 函數jsonp_decode ,讓你直接實現JSONP 解碼: function jsonp_decode($jsonp, $assoc = false) { if…
PHP 中二維關聯數組如何根據其中一個字段進行排序,下面的代碼將二維關聯數組$array 根據$orderby 字段進行排序: function wpjam_array_multisort($array, $orderby, $order = SORT_ASC, $sort_flags = SORT_NUM…
使用Memcahced進行緩存的時候,有個數據因為使用比較少,就像緩存的舊一些,把設置為一年,寫入緩存的時候返回true,但是使用該key去獲取的時候總是返回null,最後查手冊才發現,Memcahced過期時間不能超過30天。 關於Memcached 過期時間的詳細解釋: 過期時間是一個Unix 時間戳,…
PHP中call_user_func()函數和call_user_func_array()函數都是回調函數,在寫接口的時候經常會用到,但是他們有什麼區別呢? 它們的第一個參數都是被調用的回調函數,call_user_func()還可以有多個參數,它們都是回調函數的參數,call_user_func_arra…
什麼是控製字符 控製字符(Control Character),或者說非打印字符,出現於特定的信息文本中,表示某一控制功能的字符,如控制符:LF(換行)、CR(回車)、FF(換頁)、 DEL(刪除)、BS(退格)、BEL(振鈴)等;通訊專用字符:SOH(文頭)、EOT(文尾)、ACK(確認)等。 具體控製字…
PHP的json_decode函數不知道是有bug,還是考慮太少,常常會發生解析不出數據的情況,使用json_last_error_msg()函數大部分情況下可以獲得下面的錯誤: Control character error, possibly incorrectly encoded 但是Google了一…
下面兩種PHP 方法都可以獲取Linux 服務器的uptime: <?php $uptime = trim(shell_exec(‘uptime’)); // output is 04:47:32 up 187 days, 5:03, 1 user, load average: 0.55, 0.55,…
PHP cURL 的超時設置有兩個CURLOPT_CONNECTTIMEOUT 和CURLOPT_TIMEOUT,他們的區別是: CURLOPT_CONNECTTIMEOUT用來告訴PHP在成功連接服務器前等待多久(連接成功之後就會開始緩衝輸出),這個參數是為了應對目標服務器的過載,下線,或者崩潰等可能狀況…
PHP 7 已經取消了$HTTP_RAW_POST_DATA,請用php://input 代替。 HTML <form> 標籤的enctype 屬性 首先來了解什麼是<form> 標籤的enctype 屬性,enctype 屬性規定了在發送到服務器之前應該如何對錶單數據進行編碼,有三…