2013年12月27日 星期五
2013年12月17日 星期二
PHP 檔案操作
如何對檔案進行 唯一 的資料讀寫
fopen 開檔
flock LOCK_EX 鎖檔
fread filesize 讀入檔案
rewind 移動檔案 point
ftruncate 0 清空檔案
fwrite 寫入檔案
flock LOCK_UN 解鎖
fclose 關檔
程式範例
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月22日 星期二
2013年10月21日 星期一
利用 htaccess 保護網頁
利用 htaccess 保護網頁(目錄) 需進行登入,才有辦法檢視
這功能很常用,每次用都 google , 今天就醬它給它記錄下來
需求說明:
我要將 /var/www/phpMyadmin/ 此目錄設定需登入才有辦法瀏覽
在該目錄底下新增 .htaccess 檔案
貼上以下內容 ( 使用者名稱,以 shazi 為例 )
輸入密碼(2次)
完成!!
這功能很常用,每次用都 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日 星期日
2013年10月17日 星期四
2013年10月16日 星期三
2013年10月9日 星期三
檢查 PPPOE 是否連線正常
需求 & 目的:
在家裡架了一台主機,使用動態IP連線,利用NO-IP服務進行 Domain 連結,為了讓主機都可以隨時保持連線,不管是 AP關閉 or 主機重開,都可以自動連線。
在家裡架了一台主機,使用動態IP連線,利用NO-IP服務進行 Domain 連結,為了讓主機都可以隨時保持連線,不管是 AP關閉 or 主機重開,都可以自動連線。
2013年10月7日 星期一
2013年10月1日 星期二
NodeJS , return From call Function.
在 NodeJS , 因為是 事件驅動
所以在 流程上的控制比較無法像一般程式那麼直覺式的方式去執行
可以利用 callback 的方式,轉換成比較像是 一般程式 的執行方式去呼叫
所以在 流程上的控制比較無法像一般程式那麼直覺式的方式去執行
可以利用 callback 的方式,轉換成比較像是 一般程式 的執行方式去呼叫
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.
在 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 雙驚嘆號 ( 兩個驚嘆號 )
文章轉自此
! (驚嘆號)在JavaScript會先針對參數為 空(null)、零、空字串(Empty)、未定義(undefined) 視為 false 值,然後將其強制轉型為 布林值 Boolean
兩個驚嘆號,賜再將 false 轉成 true.
! (驚嘆號)在JavaScript會先針對參數為 空(null)、零、空字串(Empty)、未定義(undefined) 視為 false 值,然後將其強制轉型為 布林值 Boolean
兩個驚嘆號,賜再將 false 轉成 true.
2013年7月7日 星期日
給 JavaScript 的 Class 新增方法 ( .method vs .prototype )
今天閱讀JavaScript,看到一個,給 類別 新增方法(method)的方式
除了使用 prototype 的方式之外,也可以利用 Class.method('方法名稱' , function(){}};
除了使用 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日 星期日
2013年6月6日 星期四
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. ( 內部常數 Predefined Constants)
在撰寫程式,通常表示路徑,都會用到 斜線 or 反斜線
在 windows ,路徑為 D:\folder\sub_folder\ (反斜線)
在 linux 則為 /home/web/folder (斜線)
2013年5月28日 星期二
在 Ubuntu 系統利用 VirtualBox 安裝 CentOS 注意事項 ( 錯誤訊息之調整設定 )
在 Ubuntu 系統中,利用 VirtualBox 安裝 CentOS 5.8 ( i386 )
在啟動 VM 會出現以下兩個錯誤訊息
在啟動 VM 會出現以下兩個錯誤訊息
2013年5月23日 星期四
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解析度的顯示器上閱讀。
2013年5月21日 星期二
debug_print_backtrace | PHP
系統在開發,很常使用到 call function , 甚至會有 func call func , 再 call func ....
PHP提供一個很好 trace function caller 的函式 debug_print_backtrace
以下是來自官網的說明範例
PHP提供一個很好 trace function caller 的函式 debug_print_backtrace
以下是來自官網的說明範例
2013年5月19日 星期日
2013年5月18日 星期六
2013年5月17日 星期五
訂閱:
文章 (Atom)