2012年12月30日 星期日
2012年12月25日 星期二
2012年12月21日 星期五
2012年12月20日 星期四
2012年12月17日 星期一
2012年12月16日 星期日
Javascript 表單字串檢查
測試字串是否符合正規表示:
/**
* Check string
* @date 2012/08/13
* @by Ron Lee
*/
//letters and numbers and underscore
function validLiteral(INPUT) {
var pattern = /^(\w+)$/; // a-zA-Z0-9_
var result=pattern.test(INPUT);
return result;
}
//numbers
function validNum(INPUT) {
var pattern = /^(\d+)$/; // 0-9
var result = pattern.test(INPUT);
return result;
}
//account
function validAccount(INPUT) {
var pattern = /^[a-zA-Z]+([-_\.]\w+)*$/;
var result=pattern.test(INPUT);
return result;
}
//password
function validPassword(INPUT) {
var pattern = /^([^\'|\"]+)$/; // quote is not allowed
var result=pattern.test(INPUT);
return result;
}
function validEmail(INPUT) {
var pattern = /^(\w+)([-\.\w]*)@([-\w]+)(\.[-\w]+)+$/i;
var result = pattern.test(INPUT);
return result;
}
//phone number
function validPhone(INPUT) {
var numExp = /([\d-]+)/; // phone number: numbers and hyphens: 12-3456-789
var result = pattern.test(INPUT);
return result;
}
//date
function validDate(year, month, day) {
var dateStr = (year+'/'+month+'/'+day).replace(/\b(\d)\b/g, '0$1');
if (!dateStr) return false;
if (!dateStr.match(/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/)) return false;
var dateObj = new Date(dateStr);
var get_dateStr = dateObj.getFullYear()+'/'+(dateObj.getMonth()+1)+'/'+dateObj.getDate();
get_dateStr = get_dateStr.replace(/\b(\d)\b/g, '0$1');
//document.write(dateStr+'<BR>'+get_dateStr+'<BR>');
return dateStr==get_dateStr;
}
function addTimeZero(dateString){
return document.write(dateString.replace(/\b(\d)\b/g, '0$1'));
}
//file name in url
function getUrlFilename(INPUT) {
var url = window.location.toString();
var result= url.split(/(\\|\/)/g).pop();
return result;
}
2012年12月15日 星期六
2012年12月9日 星期日
PHPMailer
PHPMailer 不知道發生了什麼事,現在網站的下載連結都是錯。點擊 download,不管是哪一個:
PHPMailer for PHP4
PHPMailer for PHP5/6
PHPMailer-FE (Form2Email)
PHPMailer-ML
PHPMailer-BMH
全部都會連到PHP4 的舊版 。不過首頁倒是提供一個連結到 code.google.com 的網站,在這裡可以下載新版 PHPMailer 。目前是 5.2.2
Updated for PHPMailer v5.0.0 (官網,函數說明)
其它參考:
PHPMailer介紹與使用 (派克空間)
實作PHPMailer郵件函式庫 (雖然是 2007 年的文章,但距今2012,差別不大)
利用 phpmailer 透過 gmail 寄信 (使用 465 port, openssl )
PHPMailer tutorial (AskApache 的教學,英文)
PHPMailer for PHP4
PHPMailer for PHP5/6
PHPMailer-FE (Form2Email)
PHPMailer-ML
PHPMailer-BMH
全部都會連到PHP4 的舊版 。不過首頁倒是提供一個連結到 code.google.com 的網站,在這裡可以下載新版 PHPMailer 。目前是 5.2.2
Updated for PHPMailer v5.0.0 (官網,函數說明)
其它參考:
PHPMailer介紹與使用 (派克空間)
實作PHPMailer郵件函式庫 (雖然是 2007 年的文章,但距今2012,差別不大)
利用 phpmailer 透過 gmail 寄信 (使用 465 port, openssl )
PHPMailer tutorial (AskApache 的教學,英文)
2012年12月8日 星期六
2012年11月13日 星期二
2012年11月12日 星期一
2012年11月8日 星期四
2012年10月24日 星期三
2012年10月20日 星期六
PHP去除指定的html標籤
創建 test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文件</title>
</head>
<body>
aaa
<strong>strong</strong>
bbb
<em>em</em>
ccc
<script type="text/javascript" src="/script1.js"></script>
<script type="text/javascript" src="/script2.js">/* inside script, same line */</script>
ccc
<script type="text/JavaScript">
/* inside script, change line */
</script>
ddd
</body>
</html>
php 程式碼
<?php
$filename = "test.html";
$handle = fopen("$filename","r");
$Data = fread($handle, filesize($filename));
$newData = strip_only_tags($Data, 'script', 0);
fclose($handle );
print_r($newData);
function strip_only_tags($source, $tag, $stripContent=FALSE){
//不成對的標籤
$nonPair = array('img', 'br');
if(in_array($tag, $nonPair)){
$pattern = '#(<'.$tag.'(.*)>)#';
$str = preg_replace($pattern, '', $str);
continue;
}
$newData = '';
$restData = $source;
while(1){
//找出起始標籤
$pattern = '#<'.$tag.'[^>]*>#';
$isMatch = preg_match($pattern, $restData, $matches);
if($isMatch){
$posStart = strpos($restData, $matches[0]);
$len = strlen($matches[0]);
$posEnd = $posStart + $len;
$newData .= substr($restData, 0, $posStart);
$restData = substr($restData, $posEnd);
//找出結尾標籤,並計算長度
$pattern = '#</.*'.$tag.'[^>]*>#';
preg_match($pattern, $restData, $matches);
$endTag = $matches[0];
$posStart = strpos($restData, $endTag);
$len = strlen($endTag);
$posEnd = $posStart + $len;
if($stripContent==1){
$newData .= substr($restData, 0, $posStart);
}
$restData = substr($restData, $posEnd);
}else{
$newData .= $restData;
break;
}
}
return $newData;
}
?>
結果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文件</title>
</head>
<body>
aaa
<strong>strong</strong>
bbb
<em>em</em>
ccc
ccc
ddd
</body>
</html>
2012年9月25日 星期二
BIOS, ACPI 2.0
ACPI 2.0 Support
「Please note that for Microsoft Windows to run in ACPI mode, it needs to be installed with ACPI enabled in the BIOS. If you switch from ACPI to non-ACPI mode, or vice versa, Microsoft Windows will fail to boot. You need to reinstall Microsoft Windows everytime you switch modes.」
ACPI 2.0 support: Enable or Disable?
2012年9月23日 星期日
2012年9月11日 星期二
微軟授權:隨機版, 盒裝版,大量授權,MSDN
隨機版
跟著電腦主機同生死。電腦故障報廢之後,隨機版軟體必須一起報廢,不能再使用。尤其以主機板為電腦主機裡面的靈魂,換了主機板就等於換了一台電腦。不過微軟還是有稍微通融,因為我曾經把 A 電腦的隨機版 XP 拿到 B 電腦裝,還是可以通過啟動驗證。聽說有次數限制。
弗達軟體商品區-Office授權說明
Q:一套Office 可以裝在幾台電腦上?
A:一般來說,隨機版跟大量授權一套軟體只可以裝在一台電腦上。
但盒裝版用戶得於授權裝置之唯一主要使用者所使用的可攜式裝置上,安裝另一份軟體拷貝。
(這裡沒有說是2010,2007或2003, 所以只要是盒裝版都可以裝PC+NB?)
盒裝版
可以移轉。
大量授權
簡單講就是一個序號可以裝很多台。
MSDN
MSDN 版的 Windows 提供測試用。它跟 隨機版、盒裝版、大量授權版不算是相異的概念,它不是這三種之外的第四種,而是包含各種版本的授權模式。
像我們公司有訂 MSDN OS,一期兩年,第一期聽說 3萬多元,之後續訂是 2萬4千元。微軟經銷商會寄來"大量授權"的紙本文件 (Microsoft Open License Agreement),上面包含各種 Windows 的序號,Windows XP, Windows Vista, Windows 7, Windows 2003, Windows 2008... 。每種作業系統都只有一個序號,客服人員說每個序號約可以啟動 10 台電腦。另外,MSDN 網站上面有更多序號,不過這裡查到的序號都是零售版。這裡也有各式安裝光碟的映象檔,包含大量授權版本。我印象中曾經拿 MSDN 下載的零售版來安裝,然後輸入公司盒裝版的正版序號,可以通過驗證。微軟網站也有說明,MSDN 光碟跟一般正式版本沒有差別。不會少了什麼功能。
授權摘要:
◎一套只授權給單一的個人使用,而不是一個團隊。但是這個人可以安裝任意數目的電腦。
◎啟用數量仍有限制,一個序號大約是10台電腦,反正只要裝起來可以通過驗證,你裝幾台都是合法,因為這是授權給個人。不過如果裝太多台真的會提示"啟動次數超過"。
◎除了一開始大量授權的序號,也可以去 MSDN 網站查詢一般零售版(盒裝版?隨機版?)的序號來用。
◎MSDN 是用來做測試、開發、設計、展示用途。以任何其它方式使用,不涵蓋在授權範圍內。 (例如工程師用來收發信、打報告、編輯文件就不屬於 MSDN 授權範圍。)
微軟官方說明:
MSDN 訂閱軟體使用權利
大量授權管理
其它網路文章:
Windows XP 各版本的区别
如何看懂 Microsoft Open License Agreement 授權協議書 (看了還是不懂……)
Microsoft 大量授權介紹:企業最佳的授權選擇策略
[發問]vista非還原光碟重灌oem序號問題
「線上啟用卻出現軟體授權服務報告指出產品金鑰無效」
我有正版的win7序號,可以去下載一片win7光碟來安裝嗎?
「電腦上貼的序號是微軟給廠商出貨用的序號,不適用市場所上販售的」
2012年8月23日 星期四
2012年8月14日 星期二
2012年7月17日 星期二
PHP, .NET, Java ??
最近心血來潮,想看看目前各家程式語言的趨勢如何,看到這篇文章:PHP和ASP.NET学哪个好?哪个是未来的趋势? 。這是2009年的討論串,有個樓主把 .net 捧上天,並附上他更早之前寫的幾篇連結,說的我好想放棄 php 直接跳槽去學 .net 。不過話說回來,之前某篇文章對 php 的評語下的很好,大意是:「php就像膠水一樣,可以很方便的把各種功能黏合在一起。」
用自己身邊實際上的例子:要發電子報的話,在 google 上面打 php+電子報,馬上就找到 PHPList 這個完全免費的發報系統。如果會用 CiviCRM 裡面的 CiviMail 的話,可以發現它功能也很齊全,不論是排程發送還是點閱追蹤。但是如果在 google 上面打 .net+電子報,真的找不到可以拿來套用的。需要論壇的話,php 隨便找也一堆,Discuz, phpBB。CMS 系統的話,Joomla, Drupal, Xoops...等等。需要什麼東西,只要把套件裝好,版面圖案改一改,立即可用! .net 所謂的開發速度快,應該是對經營網站承包的軟體公司而言。但是對很多中小企業來說,最想要的應該是盡量壓低價格。比如說,之前耳聞某公司請人家評估網站改版,隨隨便便就要七、八十萬,甚至還有人開到一百七十二萬,看到報價單差點昏倒。那公司不如請內部人員兼著寫,用 php 把舊程式改一改寫一寫,薪水加個三千好了,一年才多3萬6,多划算。當然也許細致度有差,但是主要的功能都有出來,其實夠用就好。
PHP 的好處就是,簡單的功能易學易上手,難一點的東西有免費的套件幫你搞定,安裝起來只需要解解 bug 。所以 PHP 還是有市場的!!可以接很多外包的小案子。
2012年7月16日 星期一
2012年7月13日 星期五
程式碼上色範例 SyntaxHighlighter
要顯示的程式碼效果:
<script type="text/javascript">=======================================================
function getValue()
{
var i=0;
i=i+1;
alert(i);
}
test
test
test
</script>
方法:
//下面這段是要顯示的內容
<script type="text/javascript">
function getValue()
{
var i=0;
i=i+1;
alert(i);
}
test
test
test
</script>
//顯示的內容結束
參考文章:
讓文章的程式碼顯示行號
2012年7月11日 星期三
2012年7月10日 星期二
2012年7月9日 星期一
PHP, preg_replace_callback
範例一
============================================================
範例二
其它參考:
preg_replace_callback()调用类中的回调函数
2012年6月27日 星期三
十大謊言
2012年6月23日 星期六
2012年5月25日 星期五
SEO - SEO notes
SEO Tutorial – Title Optimization
SEO優化:Google在意的Meta中繼標記
中繼標記 (Google 網站管理員工具)
網站標題和說明 (google官網)
Google 早就不使用 keywords tag ?
Google does not use the keywords meta tag in web ranking
Google: Stop Suing Over The Meta Keywords Tag, We Don’t Use It
Yahoo 也不用 keywaords tag ?
Yahoo Search No Longer Uses Meta Keywords Tag
但是這裡說,其實在"某些情況"下,Yahoo 還是會使用 keywords.
所以,keywords 還是有一點點用,只是用處不大?
2012年5月19日 星期六
2012年4月30日 星期一
2012年4月18日 星期三
2012年3月9日 星期五
2012年3月4日 星期日
2012年3月2日 星期五
2012年3月1日 星期四
2012年2月16日 星期四
2012年2月15日 星期三
2012年2月9日 星期四
2012年2月7日 星期二
2012年2月5日 星期日
2012年2月1日 星期三
2012年1月22日 星期日
2012年1月6日 星期五
訂閱:
文章 (Atom)