2016年11月4日 星期五

[CentOS]安裝Laravel注意事項(SELinux)

安裝Laravel時須注意SELinux會擋掉寫入的權限,
故需另外開啟後才能正常進入頁面。
// 需為伺服器使用者的身份有寫入權限
CHOWN nginx:nginx storage

// 開啟SELinux資料夾讀寫權限
chcon -r -t httpd_sys_rw_content_t storage

 

2016年10月30日 星期日

[CentOS7] Restart PHP-FPM

今天為了開發Laravel,裝了一些套件

殊不知... 裝完之後... 重啟PHP-FPM失敗
systemctl restart php-fpm

原來只是PHP-FPM的名字比較有個性(!?)
[root@ip-QAQ ~]# systemctl | grep "fpm"
php70-php-fpm.service loaded active running The PHP FastCGI Process Manager

但我好懶 ... 複製也懶 ... 就設了這一句alias ...
 systemctl | grep "fpm" | awk '{print "systemctl restart " $1 | " bash "}'

 

2016年10月12日 星期三

[HTML5]自訂必填欄位訊息

某天看著長串的Validate的Javascript ...

但大部分都只是必填 ... 但 required 的訊息都是同一個 ...

有時候還真不太懂要填什麼好 ...

這時候就需要自訂一下必填的訊息了 ....

2016年9月26日 星期一

[PHP] 從陣列抓出Datetime格式

<?php

$data = array (
'2016-11-02 14:30:00 Mary is a girl.',
'Hello 2016-11-14 14:30:00Mary.',
'Mark 2016-11-02 14:30:00is a boy ',
'Hello Mark'
);

$matches = array ();
foreach ($data as $str)
if (preg_match ('/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/i', $str, $m))
$matches[] = $m[0];


var_dump($matches);

 

2016年5月10日 星期二

[Linux]使用GREP從文件中取出所有Email

當... 沒有在Email塞入資料庫前先做過濾時 ...

就可能需要用到這 ...
// 取出 test.csv 中符合 Email 格式的資料
的的grep -E -o“B [A-ZA-Z0-9 ._%+ - ] + @ [A-ZA-Z0-9 .-] + [A-ZA-Z] {2,6} B” test.csv

// 獨特
的的grep -E -o“B [A-ZA-Z0-9 ._%+ - ] + @ [A-ZA-Z0-9 .-] + [A-ZA-Z] {2,6} B” test.csv | 排序| uniq的的

 

2016年3月9日 星期三

[SQL]auto_increment

#-- 利用 LAST_INSERT_ID() 取得上一筆 AUTO_INCREMENT
#-- *注意* 此函數僅返回此次 Connection所Insert之AUTO_INCREMENT, 故如未Insert則為 0
INSERT INTO [DB_name] (uid, name, mobile_phone, email, cretat_ts) VALUES (NULL, "Glenn", "0912345678", CONCAT(LAST_INSERT_ID() + 1, "@dkstu.com"), UNIX_TIMESTAMP());

#-- 獲取指定表的 AUTO_INCREMENT
select AUTO_INCREMENT from INFORMATION_SCHEMA.TABLES where TABLE_NAME = [DB_name] ;

2016年3月2日 星期三

[PHP/HTML]避免頁面快取

 

HTML Meta Tag


<meta http-equiv="cache-control" content="no-cache">
//舊寫法,為了相容性添加。
<meta http-equiv="pragma" content="no-cache">
//設為立即過期。
<meta http-equiv="expires" content="0">

PHP


header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

以下為另一種方法, 以參數方式使其為新URL。


if (!is_numeric($_GET['_']) || $_GET['_'] < time()) {
$_GET['_'] = time();
header('location: http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']. '?' . http_build_query($_GET));
}

Smarty


<!-- 此方式可以避免瀏覽器快取(時效為一天) -->
http://blog.dkstu.com{$smarty.now|date_format:"%Y%m%d"}

 

 

2016年3月1日 星期二

[多語言]網頁轉址之[永久/暫時]轉址{Redirect}

PHP


<?php
header("HTTP/1.1 301 Moved Permanently"); // 不使用此行即為暫時轉址{302}
header("Location: http://host.domain.tld/path/to/");
?>

 

 

Client端無法使用永久轉址{301},以下皆為暫時轉址{302}。


HTML


<meta http-equiv=refresh content="0;url=http://dkstu.com/">

 

Javascript


<script language="JavaScript">
window.location.href = "http://dkstu.com/";
</script>

 

2016年2月17日 星期三

[jQuery] Read CSV File

[jQuery的]讀取CSV文件


[CSS]Loading animation

分享一些以CSS製作的 loading 動畫

cssload : 雖然樣式不多, 但皆可自行調整部分參數。
 spinkit :  樣式較為有特色,但修改需自行嘗試。

後續有用到會在更新在此文章

 

[JS] Foreach 使用方法

之前...


太少用到Javascript寫迴圈了 ...

原來 ... Javascript也有類似foreach的寫法 QAQ|||

當下真心覺得自己有點無知 ... 哈哈哈 ...