利用 array_unique()
範例:
輸出:
官方文件:
http://php.net/manual/zh/function.array-unique.php
[……]
youtube 現在分享網址有好多種,
可能是這樣:
可能是這樣:
https://www.youtube.com/watch?v=p_T3oNKjAT8
不確定User會填入哪一種分享網址的情況下,下面這方法可以解析出這些類型的 youtube id
<?php
/**
* Get Youtube video ID from URL
*
* @param string $url
* @return mixed Youtube video ID or FALSE if not found
*/
function getYoutubeIdFromUrl($url) {
$parts = parse_url($url);
if(isset($parts['query'])){
parse_str($parts['query'], $qs);
if(isset($qs['v'])){
return $qs['v'];
}else if(isset($qs['vi'])){
return $qs['vi'];
}
}
if(isset($parts['path'])){
$path = explode('/', trim($parts['path'], '/'));
return $path[count($path)-1];
}
return false;
}
// Test
$urls = array(
'http://youtube.com/v/dQw4w9WgXcQ?feature=youtube_gdata_player',
'http://youtube.com/vi/dQw4w9WgXcQ?feature=youtube_gdata_player',
'http://youtube.com/?v=dQw4w9WgXcQ&feature=youtube_gdata_player',
'http://www.youtube.com/watch?v=dQw4w9WgXcQ&feature=youtube_gdata_player',
'http://youtube.com/?vi=dQw4w9WgXcQ&feature=youtube_gdata_player',
'http://youtube.com/watch?v=dQw4w9WgXcQ&feature=youtube_gdata_player',
'http://youtube.com/watch?vi=dQw4w9WgXcQ&feature=youtube_gdata_player',
'http://youtu.be/dQw4w9WgXcQ?feature=youtube_gdata_player'
);
foreach($urls as $url){
echo $url . ' : ' . getYoutubeIdFromUrl($url) . "\n";
}[……]
Fatal error: session_start(): Failed to initialize storage module: user (path: )
開啟CodeIgniter設定檔,預設再 application/config/config.php
把:
改成:
改用 DB session ,必須先連接資料庫,起設定好資料庫連線資訊
開啟CodeIgniter設定檔,預設再 application/config/config.php
把
改成
[……]
使用 Google reCaptcha 驗證碼進行後端驗證,拋出 invalid-json 錯誤,分享解決這問題的方法:
開啟檢查 PHP.ini 設定,搜尋「allow_url_fopen」,若值不是 On 請改成 On 開啟它,如下:
allow_url_fopen = On
接著搜尋「extension=php_openssl.dll」,確認是否開啟,前方有分號「;」代表沒開啟
;extension=php_openssl.dll
將前方的分號「;」移除,如下:
extension=php_openssl.dll
重新啟動 SERVER
[……]
Warning: file_get_contents(): Unable to find the wrapper “https” – did you forget to enable it when you configured PHP?
需要開啟 php php_openssl 的這個 extension
開啟 php.ini,搜尋:「extension=php_openssl.dll」
;extension=php_openssl.dll
將前方的分號「;」移除
extension=php_openssl.dll
重新啟動 SERVER[……]
/**
* https://vector.cool
*/
Namespace VECTOR\COOL;
function test() {
echo "Hello world!\n";
}
VECTOR\COOL\test();/**
* https://vector.cool
*/
namespace VECTOR\COOL;
class HELLO{
static public function test() {
echo "Hello world!\n";
}
}
VECTOR\COOL\HELLO::test();<?php
/**
* https://vector.cool
*/
Namespace VECTOR\COOL;
function test() {
echo "Hello world!\n";
}
add_action('init','VECTOR\COOL\test');http://php.net/manual/en/language.namespaces.nsconstants.php[……]
使用 __NAMESPACE__ 取得當前文件的 Namespace
/**
* https://vector.cool
*/
Namespace VECTOR\COOL;
function test() {
echo "Hello world!\n";
}
call_user_func(__NAMESPACE__ .'\test');/**
* https://vector.cool
*/
Namespace VECTOR\COOL;
class Hello {
static public function test() {
echo "Hello world!\n";
}
}
call_user_func(__NAMESPACE__ .'\Hello::test'); // String
call_user_func(array(__NAMESPACE__ .'\Hello', 'test')); // Array/**
* https://vector.cool
*/
Namespace V123\PLUGIN\CFU;
add_action('init',__NAMESPACE__.'\create_initial_admin_menu');http://php.net/manual/en/language.namespaces.nsconstants.php
https://stackoverflow.com/questions/14682356/relative-namespaces-and-call-user-func[……]
開發PHP時,難免要修改PHP.ini,問題來了,PHP.ini在哪裡,我們可以透過一個簡單的方式找到 PHP.ini 的檔案路徑
建立一個PHP檔案,裡面就寫一行 phpinfo(),運行這個檔案,它會列出所有PHP相關資訊
<?php phpinfo();
PHP.ini 就在下方紅框處,這是Windows上的PHP,Linux上的PHP一樣可以這麼用
[……]
PHP開發者應該對 print_r() 不陌生,可以直接在瀏覽器中吐出Array中的結構,在Debug時邦很大的忙,但有一種情境是 SERVER 端被動接收 API 的回傳值,可能是一個POST,但我想了解這API回傳的值是否正確,於是寫了一個Log檔去紀錄,但Array直接寫入Log,會把Array強制轉型成字串,變成 “Array” 字串,還是無法知道Array裡面傳了什麼值,print_r()其實還有第二個參數,設定第二個參數,可以把Array 輸出的文字轉成字串,這樣我們就可以很容易地在Log中清楚地看見POST回傳值了。
範例:
$var = print_r($arr, true);
寫在Log忠誠這樣:
[2018-03-11 18:34:06]tset
[2018-03-11 18:48:39]Array
(
[CustomField1] =>
[CustomField2] =>
[CustomField3] =>
[CustomField4] =>
[MerchantID] => 2000132
[MerchantTradeNo] => 1520765300
[PaymentDate] => 2018/03/11 18:48:38
[PaymentType] => WebATM_BOT
[PaymentTypeChargeFee] => 5
[RtnCode] => 1
[RtnMsg] => 交易成功
[SimulatePaid] => 0
[StoreID] =>
[TradeAmt] => 2000
[TradeDate] => 2018/03/11 18:48:19
[TradeNo] => 1803111848192948
[CheckMacValue] => AF663A711138967263DD625549D84BF684343BEC7527A2E76759133FF93F6A87
)
[……]
上傳圖片遇到下面問題:
Fatal error: Call to undefined function exif_read_data()
官方文件 PHP4 以上就支援此 exif_read_data()
如果已符合版本需求還是會出現此錯誤,可以試試看下面的解決方法。
;extension=php_exif.dll
extension=php_exif.dll
[……]