$test_arr = array(array(“aa”), array(“bb”), array(“cc”));
‘二維陣列<br/>’.print_r($test_arr).'<br/>’;
$new_arr = call_user_func_array(‘array_merge’, $test_arr);
‘一維陣列<br/>’.print_r($new_arr);[……]
標籤: php
PHP get youtube id
$url = https://www.youtube.com/watch?v=qzYTwIJrSKM&feature=relate;
parse_str( parse_url( $url, PHP_URL_QUERY ), $param_arr );
echo $param_arr[‘v’]
// output : qzYTwIJrSKM[……]
PHP PHPMailer無法透過Gmail發信,在帳號密碼正確的情況下
我打算用PHPMailer透過Gmail來發信,
該Google帳密可以登入Gmail,證明帳密是沒錯的,
但還是一直拋出SMTP Error: Could not authenticate.的錯誤訊息,
非常悶,搞好久,最後發現應該是密碼強度問題,
我用下方的「亂碼、密碼產生器」改到第五次才成功,
終於成功了 ,呼~搞半天,由此可證:
網頁能登入Gmail不代表該帳密能透過外部的SMTP來發Gmail信,
好像由外部的SMTP來發信的密碼強度有一定規則,
應該是要超強,才有辦法用PHP透過Gmail SMTP來發信
Gmail說明 – 用戶端不接受我的使用者名稱和密碼
https://support.google.com/mail/answer/14257
亂碼、密碼產生器http://lab.sp88.com.tw/genpass/
[……]
PHP SQL 篩選時間
需要用日期來篩選指定日期區間的資料,剛好看到艾倫郭寫的這一篇,用了BETWEEN我覺得還蠻好用的,此篇文章也寫了好幾種方式,十分受用~
若日期欄位有包含時間, 由於時間可能值為 2008/1/15 23:59:59.50 如果您想找 2008/1/15 這一天裡的所有記錄(不拘時間), 卻將篩選條件寫成
SELECT …. FROM xxx WHERE xxx BETWEEN ‘2008/1/15’ AND ‘2008/1/16’ –>會連 2008/1/16 的記錄也被找到
SELECT …. FROM xxx WHERE xxx >= ‘2008/1/15’ AND xxx<= ‘2008/1/15 23:59:59’ –>若記錄值是2008/1/15 23:59:59.50 ,會找不到
本文出自
http://www.allenkuo.com/EBook5/view.aspx?TreeNodeID=13&id=374[……]
.htaccess 限制允許ip存取指定目錄
# 限制ip 放在指定目錄裡
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 114.32.147.146, 119.77.220.104
</Limit>
把上面這堆字放到.htaccess檔案中,
放到要限制僅允許ip可存取的目錄下就可以了[……]
PHP 版本判斷
if (version_compare(phpversion(), ‘5.3.10’, ‘<‘)) {
//版本不足
}
http://php.net/manual/zh/function.phpversion.php[……]
PHP imagettftext(): Could not find/open font 解決方法
新的主機PHP版本換成5.5.9版本
原本可用的驗証碼圖驗程式跑出 E_WARNING 的 error reporting如下
imagettftext(): Could not find/open font
無法開啟字型檔,導致圖片無法正常顯示,解法如下:
在imagettftext()前加入putenv(‘GDFONTPATH=’ . realpath(‘.’));
putenv(‘GDFONTPATH=’ . realpath(‘.’));
imagettftext( … );
搞定!!
[……]
PHP 版本判斷
PHP 解決 Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
解決方法一:
停用PHP顯示錯誤訊息
這絕對不是個好方法,我個人是不推薦使用,雖然這方法一勞永逸,但在開發PHP時,你將會知道錯誤訊息有多麼美好,Debug時才不會像無頭蒼蠅般,除非程式已經在一個很穩定的階段,不然非必要,不要關閉全部錯誤訊息,還是留給程式可以去設定是否顯示錯誤訊息的彈性。
以下介紹幾種PHP停用錯誤訊息的方法:
在PHP文件中加入,停用PHP錯誤訊息
如果還是出現錯誤訊息,請試下列方法
在.htaccess檔案中加入下面這一行 ( Apache專用 )
如果還是出現錯誤訊息,請試下列方法
在 PHP.ini 中找到 display_errors 這一行,沒這一行則添加,將值改為off。
解決方法二:
PHP排除特定錯誤層級
如果短期間沒打算繼續升級的話,還是可以在PHP5.5 使用 mysqli_connect() ,但停用所有錯誤訊息好像又太極端,下面這方法可以設定錯誤訊息級別,隱藏某些特定的錯誤級別,選擇排除顯示某指定錯誤級別,排除的錯誤級別將不會顯示在錯誤訊息上,排除E_DEPRECATED,mysql_connect()就可以繼續撐拉。
以下例子顯示所有錯誤,除了下列這幾個錯誤級別:
E_DEPRECATED棄用E_NOTICE注意E_WARNING警告E_STRICT嚴格
解決方法三:
mysql_connect 改用 mysqli_connect()
這是最正規的方式拉,也是最推薦的,就是乖乖升級吧,雖然升級的過程中會有一段陣痛,有點痛,以下提供很簡單的範例。
mysqli_connect() 範例如下
mysqli_connect() 建表SQL如下
[……]
PHP Deprecated: Function set_magic_quotes_runtime() is deprecated 解決方法
set_magic_quotes_runtime()於 PHP5.3後棄用
在 PHP.net 官方文件中有提到,set_magic_quotes_runtime()於PHP5.3已經棄用,雖然不會造成Fatal error而中斷程式,但會發送E_DEPRECATED的過時警告
Deprecated: Function set_magic_quotes_runtime() is deprecated
替代方案:
set_magic_quotes_runtime(0);
意思同上,以下列方法替代棄用的set_magic_quotes_runtime()
ini_set("magic_quotes_runtime", 0);
PHP 5.4起,使用此函數會拋出Fatal error,終止程式運行
Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime()
相容性:
把舊版本程式有使用到
set_magic_quotes_runtime(0);
都改為就可以了
ini_set("magic_quotes_runtime", 0);
@set_magic_quotes_runtime(0);
參考資料:
[……]