2013年12月27日 星期五

正規化表示式 note.


? 抓取最短符合 ( 非貪婪 )

. 配合 /s 可包含 換行

可查詢  正規化表示式 、 貪婪  關鍵字

2013年12月17日 星期二

PHP 檔案操作

如何對檔案進行 唯一 的資料讀寫

fopen  開檔
flock LOCK_EX 鎖檔
fread filesize  讀入檔案
rewind  移動檔案 point
ftruncate 0 清空檔案
fwrite   寫入檔案
flock LOCK_UN  解鎖
fclose  關檔

程式範例



$handle = fopen("file.txt","r+");

//Lock File, error if unable to lock
if(flock($handle, LOCK_EX)) {
    $count = fread($handle, filesize("file.txt"));    //Get Current Hit Count
    $count = $count + 1;    //Increment Hit Count by 1
    rewind($handle);    //Move file point
    ftruncate($handle, 0);    //Truncate the file to 0
    fwrite($handle, $count);    //Write the new Hit Count
    flock($handle, LOCK_UN);    //Unlock File
} else {
    echo "Could not Lock File!";
}

//Close Stream
fclose($handle);







2013年10月23日 星期三

心得

一些心得....


2013年10月22日 星期二

Linux 指令

剛剛同事分享一個 tips

!! 兩個驚嘆號,是重覆上一個指令

! 一個驚嘆號是 重覆上一個 相同 指令,解釋如下:

以下是我輸入指令的歷程


ls -l -h
ls -l
cat /etc/hosts
grep "xxx"
df -h

此時,我再輸入

!ls
則會執行 ls 最近的一次指令

就是 ls -l




[資料備份] 利用 PHP PharData 進打檔案打包並上傳至FTP

本來打算用簡單的 Shell Script 進行備份

且相關文章教學,也是很多....

But ....

出現了一個問題,在執行 ftp 連線,會停留在輸入帳、密階段

即使已經有設定帳、密還是一樣 ....

anyway ~

練習一下,用 PHP 撰寫備份程式吧!!


2013年10月21日 星期一

利用 htaccess 保護網頁

利用 htaccess 保護網頁(目錄) 需進行登入,才有辦法檢視

這功能很常用,每次用都 google , 今天就醬它給它記錄下來

需求說明:

我要將 /var/www/phpMyadmin/ 此目錄設定需登入才有辦法瀏覽

在該目錄底下新增 .htaccess 檔案


nano .htaccess

貼上以下內容 ( 使用者名稱,以 shazi 為例 )


AuthType Basic
AuthName "Restricted Access"
AuthUserFile /var/www/phpMyadmin/apasswords
Require user shazi
再進行建立 密碼檔 apasswords


htpasswd -c /var/www/phpMyadmin/apasswords shazi

輸入密碼(2次)

完成!!



2013年10月20日 星期日

淘寶網購買心得 ( 非教學文 )

最近想買 Raspberry Pi 的 攝影鏡頭
其實,台灣不管是露天還是拍賣都有在賣

但在最近淘寶網的廣告(全家便利商店取貨)實在打的很兇
不得不給它試一下....

2013年10月17日 星期四

Notepad++ 無法調整字型

Notepad++ 是一個很實用&占用資源又低的開發工具

今天在調整字型遇到一個問題,設定好之後,重開又還原了 (設定失效)


2013年10月16日 星期三

Linux SSH 登入限制

SSH Tunnel 算是公司很常用的功能....

最近有同事想試看看,所以也開了一個 SSH 的帳號

但又不想被登入亂搞...( 哈....我承認我想得比較多 )

後來,找到了這篇,還不錯!!


2013年10月9日 星期三

檢查 PPPOE 是否連線正常

需求 & 目的:
在家裡架了一台主機,使用動態IP連線,利用NO-IP服務進行 Domain 連結,為了讓主機都可以隨時保持連線,不管是 AP關閉 or 主機重開,都可以自動連線。


2013年10月7日 星期一

記錄 Client 端 IP

因為擔心 NO-IP 無法正常運作

所以,在開機後,送一個 HTTP REQUEST ( GET ) 到另一台主機

主要是為了取得開機後所產生的 IP

以下是 負責記錄 Client 傳送過來的 IP 位置


2013年10月1日 星期二

NodeJS , return From call Function.

在 NodeJS , 因為是 事件驅動

所以在 流程上的控制比較無法像一般程式那麼直覺式的方式去執行

可以利用 callback 的方式,轉換成比較像是 一般程式 的執行方式去呼叫

HTTP POST in NodeJS

使用 NodeJS 建立 HTTP POST 傳送

( PS : 範例中,是 讀取  js file )


async.forever

NodeJS Async套件中,其中一個功能筆記

在 Async 有一個方法 forever ( 以下是

forever(fn, callback)

Calls the asynchronous function 'fn' repeatedly, in series, indefinitely. If an error is passed to fn's callback then 'callback' is called with the error, otherwise it will never be called.


2013年9月30日 星期一

JavaScript Note.

記錄一下,剛剛 Study Code 的小小筆記

這是一段 NodeJS 的程式碼

JavaScript 雙驚嘆號 ( 兩個驚嘆號 )

文章轉自

! (驚嘆號)在JavaScript會先針對參數為 空(null)、零、空字串(Empty)、未定義(undefined) 視為 false 值,然後將其強制轉型為 布林值 Boolean

兩個驚嘆號,賜再將 false 轉成 true.


2013年7月7日 星期日

給 JavaScript 的 Class 新增方法 ( .method vs .prototype )

今天閱讀JavaScript,看到一個,給 類別 新增方法(method)的方式
除了使用 prototype 的方式之外,也可以利用 Class.method('方法名稱' , function(){}};

2013年6月28日 星期五

Javascript prototype String.format

讓JavaScript也有類似 sprintf 的功能



if (!String.prototype.format) {
 String.prototype.format = function() {
     var formatted = this;
     for (var i = 0; i < arguments.length; i++) {
         var regexp = new RegExp('\\{'+i+'\\}', 'gi');
         formatted = formatted.replace(regexp, arguments[i]);
     }
     return formatted;
 };
}



使用方式如下:


var _str;
_str = 'The {0} is dead. Don\'t code {0}. Code {1} that is open source!'.format('ASP', 'PHP');
alert(_str);

參考自此

2013年6月14日 星期五

html code 框架




<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link type='text/css' rel='stylesheet' href='style.css' />
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
    <span>Hello</span><span>World</span>
</body>
</html>

2013年6月9日 星期日

MySQL Limit (文章轉貼)

MySQL的limit工作原理就是先讀取N筆記錄,然後拋棄前N筆,讀M筆想要的
所以N越大,性能會越差

2013年6月6日 星期四

JavaScript Note. ( preventDefault )

在看別人的程式,有時候都會用到 preventDefault
今天就稍為做一下筆記

2013年6月3日 星期一

PHP Multi Process


1.1 產生子程序
1.1.1 產生一個子程序
在PHP裡沒有支援多執行緒編程 (multi-threaded programming) ,因此需要寫類似的功能就必須採取多程序編程 (multi-process programming) 的方式。一般在 unix-like 的作業系統下,要寫多程序程式一定會用到fork。在 PHP 裡也不例外。若要在 PHP 中建一個子程序,要叫用 pcntl_fork()函式。


2013年5月29日 星期三

PHP Note. ( array merge, array_merge_recursive )

在PHP程式中,要合併Array,雖然有提供 array_merge 函式

但結果好像不是我想要的,原來,使用 + 符號,就可以了

PHP Note. ( phpenv , clearstatcache )

phpenv

設定環境變數,例如:Oracle資料庫,要設定語系

PHP Note. ( 內部常數 Predefined Constants)

在撰寫程式,通常表示路徑,都會用到 斜線 or 反斜線

在 windows ,路徑為 D:\folder\sub_folder\ (反斜線)

在 linux 則為 /home/web/folder (斜線)

關於 載入 Class

關於 載入 Class 的進化史
自從程式寫作方式轉換至 Class 的開發方式
就慢慢的將各功能寫成 Class , 也都將各 Class 存成獨立的檔案
例: Corder.php , class.order.php 等檔案命名方式
隨著類別產生各自的檔案,也在程式執行時,載入該頁面所需要執行的 Class

2013年5月28日 星期二

在 Ubuntu 系統利用 VirtualBox 安裝 CentOS 注意事項 ( 錯誤訊息之調整設定 )

在 Ubuntu 系統中,利用 VirtualBox 安裝 CentOS 5.8 ( i386 )

在啟動 VM 會出現以下兩個錯誤訊息

2013年5月23日 星期四

將正規化轉換成圖型

正規化表示式 (Regular Expression) 真的很好用,但不常用,就容易忘記
更別說要去讀別人寫出來的正規化
如果能將正規化表式示轉換成圖片,閱讀起來,就容易多了

2013年5月22日 星期三

防止資料重覆寫入 Insert + where

在過去,要新增一筆不重覆的資料,我們會這麼做


$title ='www';
$sql = "Select * from tablename where title='$title'";
$query = mysql_query( $sql );
if( mysql_num_rows( $query ) )
{
  exit('資料已存在');
}
else
{
  $sql ="insert tablename values('$title')";
  mysql_query( $sql );
  exit('資料寫入成功');
}

教你理解複雜的C/C++指標宣告、變數宣告 (轉載)


教你理解複雜的C/C++指標宣告、變數宣告

介紹

曾經碰到過讓你迷惑不解、類似於int * (* (*fp1) (int) ) [10];這樣的變數聲明嗎?本文將由易到難,一步一步教會你如何理解這種複雜的C/C++聲明:我們將從每天都能碰到的較簡單的聲明入手,然後逐步加入 const修飾符和typedef,還有函數指標,最後介紹一個能夠讓你準確地理解任何C/C++聲明的「右左法則」。需要強調一下的是,複雜的C /C++聲明並不是好的編程風格;我這裡僅僅是教你如何去理解這些聲明。注意:為了保證能夠在同一行上顯示代碼和相關註釋,本文最好在至少 1024x768解析度的顯示器上閱讀。

補齊HTML Tag

最近同事在修正使用者輸入 HTML ,但有不完整的狀況,要將 HTML Tag 補齊

例如:

input : <font color="#f00">aaaa<b>aaaaaaaaaaa
output : <font color="#f00">aaaa<b>aaaaaaaaaaa</b></font>

2013年5月21日 星期二

JAVASCRIPT , CSS , PHP 判斷瀏覽器

JavaScript , CSS , PHP 判斷瀏覽器之作法,如下:


debug_print_backtrace | PHP

系統在開發,很常使用到 call function , 甚至會有 func call func , 再 call func ....
PHP提供一個很好 trace function caller 的函式 debug_print_backtrace

以下是來自官網的說明範例

2013年5月19日 星期日

Subline Text 2 筆記


Tips
‧可以自訂 snippet : intellisense 功能
‧可以將 tab 取代成 4 個空白

2013年5月18日 星期六

CentOS 5.x 升級 PHP 5.1 to 5.3



Upgrade PHP from 5.1 to 5.3

之前嘗試將 CentOS 5.x 版本的 PHP進行升級
都會不成功,原來,升級前,要先移除PHP套件
再進行升級,就成功了!!
簡易步驟如下:

CentOS yum 設定

cd /etc/yum.repos.d/
cp CentOS-Base.repo CentOS-Base.repo.bak
vi CentOS-Base.repo

2013年5月17日 星期五

.on | jQuery API

為什麼要特地寫這篇呢?因為以前我只針對 Selector 做 Bind Event


$(function() {
    $("#d1").on("click", function(event){
            // do something
        });
});

php 匿名函式呼叫?

在 JavaScript 有所謂的匿名函式,但在 php 是否也有呢?

看到一段滿特別的程式碼,call_user_func 與 switch (true) 的使用,如下:


Highlight.js 於 blogger 的使用

為了讓 Blog 可以漂亮的顯示程式碼 ( Hightlight 的功能)

過去都會使用 SyntaxHighlighter 的套件

不過,最近發現一個更簡易使用的套件,就是 Highlight.js