<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1673695837520208564</id><updated>2024-09-26T11:15:28.601-07:00</updated><category term="Web"/><category term="Android"/><category term="PHP"/><category term="JAVA"/><category term="JavaScript"/><category term="Google Play"/><title type='text'>Harland&#39;s Appland</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-4775046062896884777</id><published>2012-09-19T01:29:00.000-07:00</published><updated>2012-09-19T01:29:33.743-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP 取得DB欄位資訊</title><content type='html'>&lt;pre class=&quot;brush: php&quot;&gt;
//$table:表格名稱 return欄位名稱陣列
function getFieldName($table)
{
 $result = mysql_query(&quot;SELECT * FROM $table&quot;);

 for($i = 0; $i &lt; mysql_num_fields($result); $i++)
 {
  $meta = mysql_fetch_field($result);

  $fieldNameArray[] = $meta-&gt;name;

  //name：欄位名稱 
  //table：欄位所屬的資料表名稱
  //max_length：欄位的最大長度
  //not_null：欄位是否不可是null 是1否0
  //primary_key：欄位是否為主鍵 是1否0
  //numeric：欄位是否為數值 是1否0
  //type：欄位的資料型態
 }
  
 return $fieldNameArray;
}
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/4775046062896884777/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/09/php-db.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/4775046062896884777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/4775046062896884777'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/09/php-db.html' title='PHP 取得DB欄位資訊'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-2583105916872010401</id><published>2012-09-19T01:27:00.003-07:00</published><updated>2012-09-19T01:39:16.616-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP 取得DB資料使用JSON回給client</title><content type='html'>
PHP 取得DB資料使用JSON回給client&lt;br&gt;
並且讓數字不加引號&lt;br&gt;

&lt;pre class=&quot;brush: php&quot;&gt;
$sth = mysql_query(&quot;SELECT ...&quot;);

$rows = array();

while($r = mysql_fetch_assoc($sth))
{
    while($elm=each($r))
    {
        if(is_numeric($r[$elm[&quot;key&quot;]])){
                    $r[$elm[&quot;key&quot;]]=intval($r[$elm[&quot;key&quot;]]);
        }
    }
    $rows[] = $r;
}  

&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/2583105916872010401/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/09/php-dbjsonclient.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/2583105916872010401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/2583105916872010401'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/09/php-dbjsonclient.html' title='PHP 取得DB資料使用JSON回給client'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-681677279008932650</id><published>2012-09-03T00:42:00.000-07:00</published><updated>2012-09-03T00:42:32.984-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP 取得隨機數</title><content type='html'>&lt;pre class=&quot;brush: php&quot;&gt;
//取隨機數
//第一步:初始化種子 
$seedarray = microtime(); 
$seedstr = split(&quot; &quot;,$seedarray,5); 
$seed = $seedstr[0]*10000;

//第二步:使用種子初始化隨機數發生器 
srand($seed);

//第三步:生成指定範圍內的隨機數 
$random = rand(1,10);

&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/681677279008932650/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/09/php.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/681677279008932650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/681677279008932650'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/09/php.html' title='PHP 取得隨機數'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-3397972132429978110</id><published>2012-08-14T01:18:00.000-07:00</published><updated>2012-08-14T01:18:33.283-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP 確保每次進入頁面都會reload的小技巧</title><content type='html'>經常有頁面流程A-&gt;B-&gt;A的情況，最後A的頁面不會更新，提供一個從國外論壇找到的小技巧：&lt;br&gt;

在A頁面的開頭加入PHP程式碼&lt;br&gt;&lt;br&gt;


&lt;pre class=&quot;brush: php&quot;&gt;
// 確保每次網頁進來都會reload
header(&quot;Cache-Control: no-cache, must-revalidate&quot;); // HTTP/1.1
header(&quot;Expires: Mon, 26 Jul 1997 05:00:00 GMT&quot;); // Date in the past
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/3397972132429978110/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/08/php-reload.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/3397972132429978110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/3397972132429978110'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/08/php-reload.html' title='PHP 確保每次進入頁面都會reload的小技巧'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-8766872451618035661</id><published>2012-08-07T02:49:00.000-07:00</published><updated>2012-08-07T02:49:35.651-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP HTML character encod</title><content type='html'>直接貼範例&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
$mystring = mb_convert_encoding($mystring, &#39;HTML-ENTITIES&#39;, &#39;UTF-8&#39;);
&lt;/pre&gt;

&lt;a href=&quot;http://www.nationalfinder.com/html/char-grp.htm&quot;&gt;HTML Character Codes List&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/8766872451618035661/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/08/php-html-character-encod.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/8766872451618035661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/8766872451618035661'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/08/php-html-character-encod.html' title='PHP HTML character encod'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-8473773293529700407</id><published>2012-07-31T01:56:00.000-07:00</published><updated>2012-07-31T01:56:59.115-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP 訪客計數器(不使用exec與DB)</title><content type='html'>因客戶需求所以google一下訪客計數器，結果找到Wilson Peng大大的code。&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
//---------------------------
// 訪客計數器函數 MyCounter()
// Author: Wilson Peng
//        Copyright (C) 1999
//---------------------------
function MyCounter() {
  $counterFile=&quot;/tmp&quot;.$GLOBALS[&quot;PHP_SELF&quot;];
  if (!file_exists($counterFile)) {
    if (!file_exists(dirname($counterFile))) {
      mkdir(dirname($counterFile), 0700);
    }
    exec(&quot;echo 0 &gt; $counterFile&quot;);
  }
  $fp = fopen($counterFile,&quot;rw&quot;);
  $num = fgets($fp,5);
  $num += 1;
  print &quot;$num&quot;;
  echo $counterFile;
  exec(&quot;rm -rf $counterFile&quot;);
  exec(&quot;echo $num &gt; $counterFile&quot;);
}
&lt;/pre&gt;
&lt;br&gt;
不過遇到兩個問題，一是exec權限不足，一是$GLOBALS[&quot;PHP_SELF&quot;]無法取得路徑。&lt;br&gt;
一個一個處理吧：&lt;br&gt;
exec是用來新增與刪除檔案，所以用fwrite跟unlink取代&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
  exec(&quot;rm -rf $counterFile&quot;);
  exec(&quot;echo $num &gt; $counterFile&quot;);
&lt;/pre&gt;
改成&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
  //刪舊檔
  unlink($counterFile);
  //開新檔存新值
  $fh = fopen($counterFile, &quot;w&quot;);
  fwrite($fh, $num);
  fclose($fh);
&lt;/pre&gt;
&lt;br&gt;&lt;br&gt;
$GLOBALS[&quot;PHP_SELF&quot;]是為了針對不同頁面產生不同檔名的counter文件，&lt;br&gt;
這邊用getenv(&#39;REQUEST_URI&#39;)配合str_replace()來取得目前網頁的檔名，並加上副檔名。&lt;br&gt;
所以將
&lt;pre class=&quot;brush: php&quot;&gt;
$counterFile=&quot;/tmp&quot;.$GLOBALS[&quot;PHP_SELF&quot;];
&lt;/pre&gt;
改成&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
  //用網頁檔名加.count當計數文件檔名
  $counterFile = &quot;./counter/&quot;.str_replace(&quot;/harland/NewZealand/&quot;, &quot;&quot;, getenv(&#39;REQUEST_URI&#39;)).&quot;.counter&quot;;
&lt;/pre&gt;
&lt;br&gt;&lt;br&gt;
最後整個function調整後的成果，不使用exec與DB的訪客計數器如下：&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
//---------------------------
// 訪客計數器函數 MyCounter()
// Author: Wilson Peng
// Revise: Harland Chou (2012)
//        Copyright (C) 1999
//---------------------------
function MyCounter() 
{
  //用網頁檔名加.count當計數文件檔名
  $counterFile = &quot;./counter/&quot;.str_replace(&quot;/harland/NewZealand/&quot;, &quot;&quot;, getenv(&#39;REQUEST_URI&#39;)).&quot;.counter&quot;;

  if (!file_exists($counterFile)) 
  {

    if (!file_exists(dirname($counterFile))) 
    {

      mkdir(dirname($counterFile), 0700);
    }
    
      //開新檔存新值
    $fh = fopen($counterFile, &quot;w&quot;);
    fwrite($fh, &quot;0&quot;);
    fclose($fh);

  }
  
  $fp = fopen($counterFile,&quot;rw&quot;);
  $num = fgets($fp,5);
  $num += 1;
  print &quot;$num&quot;;
  //echo $counterFile;

  //刪舊檔
  unlink($counterFile);       //刪原檔
  //開新檔存新值
  $fh = fopen($counterFile, &quot;w&quot;);
  fwrite($fh, $num);
  fclose($fh);

}
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/8473773293529700407/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/php-execdb.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/8473773293529700407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/8473773293529700407'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/php-execdb.html' title='PHP 訪客計數器(不使用exec與DB)'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-817978761988851877</id><published>2012-07-31T00:28:00.000-07:00</published><updated>2012-07-31T00:28:30.870-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP 隱藏function Warning</title><content type='html'>&lt;pre class=&quot;brush: php&quot;&gt;
 //檢查檔案時間
 $filetime = filemtime($filename);
&lt;/pre&gt;
&lt;br&gt;
此函式會回傳檔案建立時間，但是檔案不存在時（也許尚未被建立）會印出Warning如下&lt;br&gt;
Warning: filemtime() [function.filemtime]: stat failed for ./cache/Route.aspxColumnproviderId1100DataFormatjson.html in
&lt;br&gt;&lt;br&gt;
若不想讓使用者看到則可在function名稱前加@來隱藏Warning訊息&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
 //檢查檔案時間
 $filetime = @filemtime($filename);
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/817978761988851877/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/php-function-warning.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/817978761988851877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/817978761988851877'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/php-function-warning.html' title='PHP 隱藏function Warning'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-744893964641431933</id><published>2012-07-31T00:21:00.000-07:00</published><updated>2012-07-31T00:21:27.977-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP Delete all files in folder</title><content type='html'>一次清空目錄下所有檔案&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
////////////////////////////////////////////////////////////
//$dir要刪除的目錄，$DeleteMe是否連目錄本身也要刪掉
/*
 $log = &#39;/home/logs/2011&#39;;
 SureRemoveDir($log , true); // 第二個參數: true 連 2011 目錄也刪除
*/
////////////////////////////////////////////////////////////
function SureRemoveDir($dir, $DeleteMe) 
{

    if(!$dh = @opendir($dir)) 
     return;

    while(false !== ($obj = readdir($dh))) 
    {
     if($obj==&#39;.&#39; || $obj==&#39;..&#39;) 
      continue;

   $temp = $dir.$obj;
      echo &quot;刪除 &quot;.$temp.&quot;&lt;br&gt;&quot;;   
   $conut++;

     if(!@unlink($dir.&#39;/&#39;.$obj))
      SureRemoveDir($dir.&#39;/&#39;.$obj, true);

    }

    echo &quot;已刪除&quot;.$conut.&quot;個檔案！&quot;;

    if ($DeleteMe)
    {
        closedir($dh);
        @rmdir($dir);

        echo &quot;已刪除目錄！&quot;;
    }
}
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/744893964641431933/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/php-delete-all-files-in-folder.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/744893964641431933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/744893964641431933'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/php-delete-all-files-in-folder.html' title='PHP Delete all files in folder'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-1484146037243280425</id><published>2012-07-30T23:37:00.000-07:00</published><updated>2012-07-30T23:37:44.419-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP 去除字串中特殊字元或符號</title><content type='html'>有時需要對字串作特殊處理，像是在處理檔名時去要去除特殊符號。&lt;br&gt;
提供一簡單的function來方處理。&lt;br&gt;&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
////////////////////////////////////////////////////////////
//$targetString要處理的字串，要移除的符號陣列$symbolArray
//使用範例
/*
 $temp = &quot;adn?cklmc?=kkal;m!c&quot;;
 $sArray = array(&quot;?&quot;, &quot;!&quot;, &quot;=&quot;);
 replaceSepcialSymbol($temp, $sArray);

 echo $temp;
*/
////////////////////////////////////////////////////////////
function replaceSepcialSymbol(&amp;$targetString, $symbolArray)
{
 foreach ($symbolArray as $value)
  $targetString = str_replace($value, &quot;&quot;, $targetString);
}
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/1484146037243280425/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/php.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/1484146037243280425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/1484146037243280425'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/php.html' title='PHP 去除字串中特殊字元或符號'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-924597051812931302</id><published>2012-07-30T22:54:00.000-07:00</published><updated>2012-07-30T22:55:54.022-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP GET URL截斷問題處理</title><content type='html'>範例&lt;br&gt;
http://api.taipeibus.kasper.com.tw/?url=http://imp.5284.com.tw:3621/TaipeiBusService/Route.aspx?Column=providerId,1100&amp;DataFormat=json&lt;br&gt;&lt;br&gt;
原本期待可以使用$_GET[&quot;url&quot;]取得&lt;br&gt;
http://imp.5284.com.tw:3621/TaipeiBusService/Route.aspx?Column=providerId,1100&amp;DataFormat=json&lt;br&gt;
但其實只能得到&lt;br&gt;
http://imp.5284.com.tw:3621/TaipeiBusService/Route.aspx?Column=providerId,1100&lt;br&gt;
在&quot;&amp;&quot;之後會被截斷&lt;br&gt;&lt;br&gt;

可以改用
&lt;pre class=&quot;brush: php&quot;&gt;
$query_url = str_replace(&quot;url=&quot;, &quot;&quot;, $_SERVER[&#39;QUERY_STRING&#39;];
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/924597051812931302/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/php-get-url.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/924597051812931302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/924597051812931302'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/php-get-url.html' title='PHP GET URL截斷問題處理'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-9032888014072767233</id><published>2012-07-27T01:30:00.001-07:00</published><updated>2012-07-30T22:55:46.055-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP echo 中文亂碼處理</title><content type='html'>用php直接echo &quot;中文&quot;; 在瀏覽器上會看到亂碼，在開頭加入header即可解決。
&lt;br&gt;&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
&amp;lt;?php
    header(&amp;quot;Content-Type:text/html; charset=utf-8&amp;quot;);
?&amp;gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/9032888014072767233/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/php-echo.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/9032888014072767233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/9032888014072767233'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/php-echo.html' title='PHP echo 中文亂碼處理'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-4593865126471336502</id><published>2012-07-26T02:25:00.000-07:00</published><updated>2012-07-26T02:26:11.404-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP cache demo</title><content type='html'>1.收到要求&lt;br&gt;
2.檢查要求檔案是否過期&lt;br&gt;
3.重新要新的或將cache給client&lt;br&gt;&lt;br&gt;

&lt;pre class=&quot;brush: php&quot;&gt;
&amp;lt;?php 

////////////////////////////
//將從http(或其他)讀來的檔案
//使用範例
//       http://api.taipeibus.kasper.com.tw/?url=http://tw.yahoo.com/
//   http://api.taipeibus.kasper.com.tw/?url=http://imp.5284.com.tw:3621/TaipeiBusService/Route.aspx?DataFormat=json
////////////////////////////

function outputHttpResult($url)//您想抓取的網址
{
 //檔案名稱
 $filename = &amp;quot;./cache/&amp;quot;.str_replace(&amp;quot;http://imp.5284.com.tw:3621/TaipeiBusService/&amp;quot;, &amp;quot;&amp;quot;, $url).&amp;quot;.html&amp;quot;;

 //檢查檔案時間
 $filetime = filemtime($filename);

 if($filetime == 0)
 {
  //無此檔案 要新的
  getApiResultAndSave($url);

 }
 else
 {
  //檔案是否過期
  if((mktime() - $filetime) &amp;gt;= 30)
  {
   //超過30秒 要新的
   getApiResultAndSave($url);
  }
  else
  {
   //還沒超過30秒 給cache的檔案
   readCacheFileAndEcho($filename);
  }
 }

}

//取得http資源存檔並回給client
function getApiResultAndSave($url)
{
 //檔案名稱
 $filename = &amp;quot;./cache/&amp;quot;.str_replace(&amp;quot;http://imp.5284.com.tw:3621/TaipeiBusService/&amp;quot;, &amp;quot;&amp;quot;, $url).&amp;quot;.html&amp;quot;;

 $buffer = file($url); //將網址讀入buffer變數
 
 for($i = 0; $i &amp;lt; sizeof($buffer); $i++) //將每段文字讀出來,以換行為單位,sizeof會傳回共有幾筆
 {
  echo $buffer[$i]; //全部印出來
 }


 // 要寫入的內容
 for($i = 0; $i &amp;lt; sizeof($buffer); $i++) //將每段文字讀出來,以換行為單位,sizeof會傳回共有幾筆
 {
  $word .= $buffer[$i]; //全部接起來
 }

 //$word = $buffer;

 $fh = fopen($filename, &amp;quot;w&amp;quot;);
 fwrite($fh, $word);
 fclose($fh);
}

//讀出舊的檔案並回給client
function readCacheFileAndEcho($filename)
{
 $fh = @fopen($filename,&amp;quot;r&amp;quot;) or die(&amp;quot;READ FILE ERROR!&amp;quot;);

 if($fh)
 {
     while(!feof($fh)) 
     {
         echo fgets($fh);
     }
 }

 fclose($fh);
}

?&amp;gt;

&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/4593865126471336502/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/php-cache-demo.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/4593865126471336502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/4593865126471336502'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/php-cache-demo.html' title='PHP cache demo'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-3187869247964592776</id><published>2012-07-24T20:47:00.000-07:00</published><updated>2012-07-26T02:16:02.180-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP include html demo</title><content type='html'>this is used to manager website&#39;s main menu.&lt;br&gt;
or some repeated html code.&lt;br&gt;

Here is an example.&lt;br&gt;
share_main_menu.html for reusing.&lt;br&gt;
&lt;pre class=&quot;brush: html&quot;&gt;
  &amp;lt;a href=&amp;quot;admin_news.php&amp;quot;&amp;gt;管理最新消息&amp;lt;/a&amp;gt; |
  &amp;lt;a href=&amp;quot;admin_case.php&amp;quot;&amp;gt;管理成功案例&amp;lt;/a&amp;gt; |
  &amp;lt;a href=&amp;quot;admin_contact.php&amp;quot;&amp;gt;管理聯絡我們&amp;lt;/a&amp;gt; |
  &amp;lt;a href=&amp;quot;admin_quest.php&amp;quot;&amp;gt;管理案件&amp;lt;/a&amp;gt; |
  &amp;lt;a href=&amp;quot;admin_reserve.php&amp;quot;&amp;gt;管理備料&amp;lt;/a&amp;gt; |
  &amp;lt;a href=&amp;quot;?logout=true&amp;quot;&amp;gt;登出系統&amp;lt;/a&amp;gt;
  &amp;lt;hr size=&amp;quot;1&amp;quot; /&amp;gt;
&lt;/pre&gt;
&lt;br&gt;
when you went to use...&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
&lt;?php include(&quot;share_main_menu.html&quot;);?&gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/3187869247964592776/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/php-include-html-demo.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/3187869247964592776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/3187869247964592776'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/php-include-html-demo.html' title='PHP include html demo'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-9197609634392269586</id><published>2012-07-23T02:07:00.000-07:00</published><updated>2012-07-23T02:07:49.918-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP get monthly serial number</title><content type='html'>PHP版本的自動生成有規則的訂單號(或編號)&lt;br&gt;
生成的格式是：200908010001 前面幾位為當前的日期，後面五位為系統自增長類型的編號原理：&lt;br&gt;
1.獲取當前日期格式化值&lt;br&gt;
2.讀取文件,上次編號的值+1最為當前此次編號的值(記錄以文件的形式存儲，下月會接著這個編號)&lt;br&gt;&lt;br&gt;

&lt;pre class=&quot;brush: php&quot;&gt;
&amp;lt;?php

class FileEveryDaySerialNumber 
{
 private $filename;    //檔名
 private $separate;    //系統分隔符號
 private $width;       //自動增長部分的個數

 public function __construct($width, $filename, $separate) 
 {
  $this-&amp;gt;width = $width;
  $this-&amp;gt;filename = $filename;
  $this-&amp;gt;separate = $separate;
 }

 public function getOrUpdateNumber($current, $start) 
 {

  $record = IOUtil::read_content($this-&amp;gt;filename);
  $arr = explode($this-&amp;gt;separate, $record);
  if($current == $arr[0])
  { 
   //如果是同一天,則繼續增長
   $arr[1]++;
   IOUtil::write_content(&amp;quot;$arr[0],$arr[1]&amp;quot;, $this-&amp;gt;filename); //將新值存入文件中

   return &amp;quot;$arr[0]&amp;quot;.str_pad($arr[1],$this-&amp;gt;width,0,STR_PAD_LEFT);

  }
  else
  { 
   //如果兩個日期不一樣則重新從起始值開始
   $arr[0] = $current;
   $arr[1] = $start;
   IOUtil::write_content(&amp;quot;$arr[0],$arr[1]&amp;quot;, $this-&amp;gt;filename); //將新值存入文件中

   return &amp;quot;$arr[0]&amp;quot;.str_pad($arr[1],$this-&amp;gt;width,0,STR_PAD_LEFT);
  }

 }
}

class IOUtil
{

 public static function read_content($filename)
 {

  $handle = fopen($filename,&amp;quot;r&amp;quot;);
  $content = fread($handle,filesize($filename));

  return $content;
 }

 public static function write_content($content, $filename)
 {

  $handle = fopen($filename,&amp;quot;w&amp;quot;);
  fseek($handle,0);
  fwrite($handle, $content);

  return $content;
 }

}


?&amp;gt;
&lt;/pre&gt;
參數含義分別是日期後自增長數的位數, 存儲的文件名稱, 日期與自增長數的分割數&lt;br&gt;
注意：網站目錄下需有EveryDaySerialNumber.dat否則會發生錯誤&lt;br&gt;
&lt;br&gt;
使用範例(一)&lt;br&gt;

&lt;pre class=&quot;brush: php&quot;&gt;
 $obj = new FileEveryDaySerialNumber(4,&quot;EveryDaySerialNumber.dat&quot;,&quot;,&quot;);   
 $current_date = date(&quot;Ymd&quot;);
 echo $obj-&gt;getOrUpdateNumber($current_date,1);
&lt;/pre&gt;

輸出結果：
201207230001
&lt;br&gt;&lt;br&gt;&lt;br&gt;
使用範例(二)&lt;br&gt;

&lt;pre class=&quot;brush: php&quot;&gt;
 $obj = new FileEveryDaySerialNumber(3,&quot;EveryDaySerialNumber.dat&quot;,&quot;,&quot;);   
 $current_date = date(&quot;ym&quot;);
 echo $obj-&gt;getOrUpdateNumber($current_date,1);
&lt;/pre&gt;

輸出結果：
1207001</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/9197609634392269586/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/php-get-monthly-serial-number.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/9197609634392269586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/9197609634392269586'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/php-get-monthly-serial-number.html' title='PHP get monthly serial number'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-5042548904829981917</id><published>2012-07-20T00:27:00.000-07:00</published><updated>2012-07-20T00:28:05.463-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="PHP"/><category scheme="http://www.blogger.com/atom/ns#" term="Web"/><title type='text'>PHP get system date</title><content type='html'>Demo html&lt;br&gt;&lt;br&gt;
&lt;pre class=&quot;brush: php&quot;&gt;
 $ts = mktime();
 echo date(&quot;Y-m-d H:i:s&quot;,$ts);
&lt;/pre&gt;
&lt;br&gt;

out put is 2012-07-20 15:16:20&lt;br&gt;&lt;br&gt;

All formate key word list :&lt;br&gt;&lt;br&gt;

Y - 幾年，以4位數表示，例如：&quot; 1999&quot;&lt;br&gt;
y - 幾年，以2位數表示，例如：&quot;99&quot;&lt;br&gt;
a - &quot;am&quot; 或 &quot;pm&quot;&lt;br&gt;
A - &quot;AM&quot; 或 &quot;PM&quot;&lt;br&gt;
B - 網際網路時間樣本&lt;br&gt;&lt;br&gt;
d - 幾日，例如：&quot; 01&quot; 到 &quot; 31&quot;&lt;br&gt;
D - 幾日，以3個英文字表示，例如：&quot; Fri &quot;&lt;br&gt;
F - 幾月，以英文全名表示，例如：&quot; January &quot;&lt;br&gt;
g - 小時，12小時制不足2位數不補0，例如：&quot; 1&quot; 到 &quot; 12 &quot;&lt;br&gt;
G - 小時，24小時制不足2位數不補0，例如：&quot; 0 &quot; 到 &quot; 23 &quot;&lt;br&gt;&lt;br&gt;
h - 小時，12小時制，例如：&quot; 01&quot; 到 &quot; 12 &quot;&lt;br&gt;
H - 小時，24小時制，例如：&quot; 00 &quot; 到 &quot; 23 &quot;&lt;br&gt;
i - 幾分，例如：&quot; 00 &quot; 到 &quot; 59 &quot;&lt;br&gt;
I (大寫的 i) - &quot;1&quot; if Daylight Savings Time, &quot;0&quot; otherwise.&lt;br&gt;
j - 幾日，不足2位數不補0，例如：&quot; 1&quot; 到 &quot; 31&quot;&lt;br&gt;&lt;br&gt;
l (小寫的 &#39;L&#39;) - 幾日，以英文全名表示，例如：&quot;Friday&quot;&lt;br&gt;
L - 布林值，判斷是否為閏年，例如：&quot; 0&quot; 或 &quot; 1&quot;&lt;br&gt;
m - 幾月，例如：&quot; 01&quot; 到 &quot; 12&quot;&lt;br&gt;
M - 幾月，以3個英文字表示，例如：&quot;Jan&quot;&lt;br&gt;
n - 幾月，不足2位數不補0，例如：&quot; 1&quot; 到 &quot;12&quot;&lt;br&gt;&lt;br&gt;
s - 幾秒，例如：&quot; 01&quot; 到 &quot; 59&quot;&lt;br&gt;
S - 以英文後2個字表示，例如：&quot;th&quot;，&quot;nd&quot;&lt;br&gt;
t - 當月的天數，例如：&quot; 28&quot; 到 &quot; 31&quot;&lt;br&gt;
T - 這個機器的時間區域設定，例如 ：&quot;MDT&quot;&lt;br&gt;
U - 總秒數&lt;br&gt;&lt;br&gt;
w - 以數字表示星期幾，例如：&quot; 0&quot; 到 &quot; 6&quot;&lt;br&gt;
z - 一年中的第幾天，例如：&quot; 0&quot; 到 &quot; 365&quot;&lt;br&gt;
Z - 在短時間內時間區域補償(timezone offset) ，例如：&quot;-43200&quot; to &quot;43200&quot;&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/5042548904829981917/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/php-get-system-date.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/5042548904829981917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/5042548904829981917'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/php-get-system-date.html' title='PHP get system date'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-9046986039323449878</id><published>2012-07-17T00:37:00.002-07:00</published><updated>2012-07-17T00:38:04.630-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Making ListView Scrolling Smooth</title><content type='html'>1.不要在UI Thread中作太吃重的工作&lt;br&gt;
2.若要存取儲存裝置、讀取網路資料、執行SQL時建議建立Thread去執行&lt;br&gt;
3.使用AsyncTask 官方範例如下&lt;br&gt;&lt;br&gt;

&lt;pre class=&quot;brush: java&quot;&gt;
// Using an AsyncTask to load the slow images in a background thread
new AsyncTask&amp;lt;ViewHolder, Void, Bitmap&amp;gt;() {
    private ViewHolder v;

    @Override
    protected Bitmap doInBackground(ViewHolder... params) {
        v = params[0];
        return mFakeImageLoader.getImage();
    }

    @Override
    protected void onPostExecute(Bitmap result) {
        super.onPostExecute(result);
        if (v.position == position) {
            // If this item hasn&amp;#39;t been recycled already, hide the
            // progress and set and show the image
            v.progress.setVisibility(View.GONE);
            v.icon.setVisibility(View.VISIBLE);
            v.icon.setImageBitmap(result);
        }
    }
}.execute(holder);
&lt;/pre&gt;

4.Hold View Objects in a View Holder&lt;br&gt;&lt;br&gt;

&lt;pre class=&quot;brush: java&quot;&gt;
static class ViewHolder {
  TextView text;
  TextView timestamp;
  ImageView icon;
  ProgressBar progress;
  int position;
}
&lt;/pre&gt;

5.keep View&lt;br&gt;&lt;br&gt;
&lt;pre class=&quot;brush: java&quot;&gt;
ViewHolder holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.listitem_image);
holder.text = (TextView) convertView.findViewById(R.id.listitem_text);
holder.timestamp = (TextView) convertView.findViewById(R.id.listitem_timestamp);
holder.progress = (ProgressBar) convertView.findViewById(R.id.progress_spinner);
convertView.setTag(holder);
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/9046986039323449878/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/making-listview-scrolling-smooth.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/9046986039323449878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/9046986039323449878'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/making-listview-scrolling-smooth.html' title='Making ListView Scrolling Smooth'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-5891462752845872658</id><published>2012-07-09T20:21:00.000-07:00</published><updated>2012-07-09T20:21:16.673-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><title type='text'>JavaScript check form Demo</title><content type='html'>There is two way to check form with JavaScript.
&lt;br&gt;
but here choses one them to demo.
&lt;br&gt;
&lt;br&gt;
1. prepare JavaScript function
&lt;pre class=&quot;brush: javascript&quot;&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;
function checkForm()
{

 if(document.formaddNews.m_name.value==&amp;quot;&amp;quot;)
 {
  alert(&amp;quot;PLZ enter name!&amp;quot;);
  document.formaddNews.m_name.focus();
  return false;
 }
 if(document.formaddNews.m_content.value==&amp;quot;&amp;quot;)
 {
  alert(&amp;quot;PLZ enter product content!&amp;quot;);
  document.formaddNews.m_content.focus();
  return false;
 }
 if(document.formaddNews.m_type.value==&amp;quot;&amp;quot;)
 {
  alert(&amp;quot;PLZ enter product type!&amp;quot;);
  document.formaddNews.m_type.focus();
  return false;
 }

 return confirm(&amp;#39;R U sure?&amp;#39;);
}
&lt;/pre&gt;

&lt;br&gt;

2.HTML
&lt;pre class=&quot;brush: html&quot;&gt;
&amp;lt;form action=&amp;quot;&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot; method=&amp;quot;POST&amp;quot; name=&amp;quot;formaddNews&amp;quot; id=&amp;quot;formaddNews&amp;quot; onSubmit=&amp;quot;return checkForm();&amp;quot;&amp;gt;

&amp;lt;input type=&amp;quot;submit&amp;quot; name=&amp;quot;Submit2&amp;quot; value=&amp;quot;add&amp;quot;&amp;gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/5891462752845872658/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/javascript-check-form-demo.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/5891462752845872658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/5891462752845872658'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/javascript-check-form-demo.html' title='JavaScript check form Demo'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-3603398368154526128</id><published>2012-07-07T20:03:00.000-07:00</published><updated>2012-07-09T20:21:26.691-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android overridePendingTransition animation</title><content type='html'>幫activity加入換場效果～&lt;BR&gt;

&lt;pre class=&quot;brush: java&quot;&gt;
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.post_detail);
        
        //version should upper than 5
        int version = Integer.valueOf(android.os.Build.VERSION.SDK);
        if(version &gt;= 5) 
        {
         //use your animation XML
         //overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
         
         //overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
         overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
        }
    }
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/3603398368154526128/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/android-overridependingtransition.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/3603398368154526128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/3603398368154526128'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/android-overridependingtransition.html' title='Android overridePendingTransition animation'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-1856341749944695010</id><published>2012-07-07T01:52:00.003-07:00</published><updated>2012-07-09T20:21:40.416-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="JAVA"/><title type='text'>幫eclipse加上自動提示(Intellisense)程式碼功能</title><content type='html'>做法如下：
&lt;br&gt;
Windows -&gt; Preferences -&gt; Java -&gt; Editor -&gt; Content Assist
&lt;br&gt;
在Auto activation triggers for Java 中輸入 .abcdefghijklmnopqrstuvwxyz(,
&lt;br&gt;
（預設只有 . 才會檢查提示）
&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/1856341749944695010/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/eclipseintellisense.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/1856341749944695010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/1856341749944695010'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/eclipseintellisense.html' title='幫eclipse加上自動提示(Intellisense)程式碼功能'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-1813452223308860063</id><published>2012-07-05T21:10:00.000-07:00</published><updated>2012-07-05T21:10:21.879-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android modify View&#39;s properties in Code</title><content type='html'>we sometimes need to change View&#39;s properties in Code.
&lt;br&gt;
try this demo code.
&lt;br&gt;
&lt;pre class=&quot;brush: java&quot;&gt;
//change color
colorBtn.setTextColor(0xFF000000);

//change text size
sizeBtn.setTextSize(14);

//change gravity
gravityBtn.setGravity(android.view.Gravity.BOTTOM);
&lt;/pre&gt;
&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/1813452223308860063/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/android-modify-views-properties-in-code.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/1813452223308860063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/1813452223308860063'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/android-modify-views-properties-in-code.html' title='Android modify View&#39;s properties in Code'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-5655824999130354507</id><published>2012-07-05T19:37:00.001-07:00</published><updated>2012-07-05T21:10:21.903-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android Button onClick Control</title><content type='html'>Simple onClick control
&lt;br&gt;
In XML
&lt;br&gt;
&lt;pre class=&quot;brush: xml&quot;&gt;
    &amp;lt;Button
        android:id=&amp;quot;@+id/btn_color&amp;quot;
        android:layout_width=&amp;quot;80dp&amp;quot;
        android:layout_height=&amp;quot;match_parent&amp;quot;
        android:onClick=&amp;quot;onClick&amp;quot;
        android:gravity=&amp;quot;center&amp;quot;
        android:text=&amp;quot;BLACK&amp;quot;
        android:textColor=&amp;quot;#FF000000&amp;quot; /&amp;gt;

    &amp;lt;Button
        android:id=&amp;quot;@+id/btn_size&amp;quot;
        android:layout_width=&amp;quot;80dp&amp;quot;
        android:layout_height=&amp;quot;match_parent&amp;quot;
        android:onClick=&amp;quot;onClick&amp;quot;
        android:text=&amp;quot;small&amp;quot;
        android:gravity=&amp;quot;center&amp;quot;
        android:textSize=&amp;quot;8sp&amp;quot; /&amp;gt;

    &amp;lt;Button
        android:id=&amp;quot;@+id/ok&amp;quot;
        android:layout_width=&amp;quot;match_parent&amp;quot;
        android:layout_height=&amp;quot;match_parent&amp;quot;
        android:onClick=&amp;quot;onClick&amp;quot;
        android:gravity=&amp;quot;center&amp;quot;
        android:text=&amp;quot;OK&amp;quot;
        /&amp;gt;
&lt;/pre&gt;
&lt;br&gt;
In Android Code
&lt;br&gt;
&lt;pre class=&quot;brush: java&quot;&gt;
 public void onClick(View view) 
    {
  switch (view.getId()) 
  {
   case R.id.ok:
   {
    //do something...
   }
   break;
   case R.id.btn_color:
   {
    
   }
   break;
   case R.id.btn_size:
   {
    
   }
   default:
   break;
  }
    }
&lt;/pre&gt;
&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/5655824999130354507/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/android-button-onclick-control.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/5655824999130354507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/5655824999130354507'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/android-button-onclick-control.html' title='Android Button onClick Control'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-7317833130915632107</id><published>2012-07-03T20:32:00.000-07:00</published><updated>2012-07-04T00:15:25.579-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Play"/><title type='text'>Crystal ToDo 透明待辦</title><content type='html'>軟體名稱&lt;br /&gt;
Crystal ToDo 透明待辦&lt;br /&gt;
&lt;br /&gt;
功能簡介&lt;br /&gt;
可以將待辦事項條列在桌面上&lt;br /&gt;
&lt;br /&gt;
特色&lt;br /&gt;
程式檔案小不佔空間，無多餘複雜功能，透明背景不會遮住您心愛的桌布。&lt;br /&gt;
&lt;br /&gt;
Google Play QRCode&lt;br&gt;
&lt;img src=&quot;http://qr.kaywa.com/img.php?s=8&amp;d=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dharland.maruko.todolite&quot; alt=&quot;QRCode&quot;/&gt;

&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU0JwP_nb-dc4yQyTsQQ3xhi_WLFu6Zy85vFRUjvwW4fxuSIzgnM_EwfxXGYY_YBHZrF-Z07yxJnxLhaPzGuXsY99R-6aMKJ5nPFset82RmJPyMCceOGh6qo5sAiYGhA2lxxG6lfvyuBny/s1600/screenshot_2012-06-09_1551.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU0JwP_nb-dc4yQyTsQQ3xhi_WLFu6Zy85vFRUjvwW4fxuSIzgnM_EwfxXGYY_YBHZrF-Z07yxJnxLhaPzGuXsY99R-6aMKJ5nPFset82RmJPyMCceOGh6qo5sAiYGhA2lxxG6lfvyuBny/s320/screenshot_2012-06-09_1551.png&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimKm9dgxz4su-B6tlZNr-CqXA-yYw1l1isEP_6eWwNb1dUHDHZ_RiHqdC3RK7tSs5Fiw0akssINKfDsrNoitmCdopxbkCbM2jRap-eHOrhGwvqf9tEk8XvBql6AZLwE3eewGri89g4NhK1/s1600/screenshot_2012-06-09_1550.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimKm9dgxz4su-B6tlZNr-CqXA-yYw1l1isEP_6eWwNb1dUHDHZ_RiHqdC3RK7tSs5Fiw0akssINKfDsrNoitmCdopxbkCbM2jRap-eHOrhGwvqf9tEk8XvBql6AZLwE3eewGri89g4NhK1/s320/screenshot_2012-06-09_1550.png&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguux0EyxetZiGM3g1EAeZFaTsolcWIoIQc_rTZtrPX536qYr1DQnwxZqaQrNOcuBSu4AuX_Yb9jJlVoKNtW_hU0rhb52xdapcq9DotT7Ki6PoYTMDmkFcXvLR2oDSwyB9ZfOhsFHGq_k-u/s1600/screenshot_2012-06-09_1549.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguux0EyxetZiGM3g1EAeZFaTsolcWIoIQc_rTZtrPX536qYr1DQnwxZqaQrNOcuBSu4AuX_Yb9jJlVoKNtW_hU0rhb52xdapcq9DotT7Ki6PoYTMDmkFcXvLR2oDSwyB9ZfOhsFHGq_k-u/s320/screenshot_2012-06-09_1549.png&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/7317833130915632107/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/crystal-todo.html#comment-form' title='7 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/7317833130915632107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/7317833130915632107'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/crystal-todo.html' title='Crystal ToDo 透明待辦'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU0JwP_nb-dc4yQyTsQQ3xhi_WLFu6Zy85vFRUjvwW4fxuSIzgnM_EwfxXGYY_YBHZrF-Z07yxJnxLhaPzGuXsY99R-6aMKJ5nPFset82RmJPyMCceOGh6qo5sAiYGhA2lxxG6lfvyuBny/s72-c/screenshot_2012-06-09_1551.png" height="72" width="72"/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-6882975877496177515</id><published>2012-07-03T02:36:00.000-07:00</published><updated>2012-07-03T20:32:50.590-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><category scheme="http://www.blogger.com/atom/ns#" term="JAVA"/><title type='text'>Android get date</title><content type='html'>Android中取得時間日期的方式跟java是用一樣的方式

&lt;pre class=&quot;brush: java&quot;&gt;
 private void setDateTextView() 
 {
        TitleView = (TextView)findViewById(R.id.titleText); 
        
        Calendar rightNow = Calendar.getInstance();
        String[] months = {&amp;quot;1月&amp;quot;, &amp;quot;2月&amp;quot;, &amp;quot;3月&amp;quot;, &amp;quot;4月&amp;quot;,
                &amp;quot;5月&amp;quot;, &amp;quot;6月&amp;quot;, &amp;quot;7月&amp;quot;, &amp;quot;8月&amp;quot;,
                &amp;quot;9月&amp;quot;, &amp;quot;10月&amp;quot;, &amp;quot;11月&amp;quot;, &amp;quot;12月&amp;quot;};
        
        TitleView.setText(months[rightNow.get(Calendar.MONTH)] + rightNow.get(Calendar.DATE) + &amp;quot;日&amp;quot; + &amp;quot;\n&amp;quot;
        + rightNow.get(Calendar.HOUR) + &amp;quot;：&amp;quot; + rightNow.get(Calendar.MINUTE));   
  
 }
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/6882975877496177515/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/android-get-date.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/6882975877496177515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/6882975877496177515'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/android-get-date.html' title='Android get date'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-7595385903263543156</id><published>2012-07-03T02:08:00.001-07:00</published><updated>2012-07-03T02:09:14.533-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android read and parse .csv</title><content type='html'>在Android上簡易的const data建立與讀取方式&lt;br&gt;
一、使用google文件的試算表建立資料表格&lt;br&gt;
二、將檔案下載為csv檔&lt;br&gt;
三、將檔案放到Android方案中的assets目錄&lt;br&gt;
四、使用Android的InputStream讀入csv檔&lt;br&gt;
五、使用BufferedReader來parse&lt;br&gt;
&lt;br&gt;

&lt;pre class=&quot;brush: java&quot;&gt;
       try 
        {
   InputStream is = getResources().getAssets().open(&amp;quot;score.csv&amp;quot;);
   BufferedReader reader = new BufferedReader(new InputStreamReader(is));
      try 
      {
          String line;
          while ((line = reader.readLine()) != null) 
          {
               String[] RowData = line.split(&amp;quot;,&amp;quot;);
               Log.e(&amp;quot;TAG&amp;quot;, RowData[0]);
               Log.e(&amp;quot;TAG&amp;quot;, RowData[1]);
               Log.e(&amp;quot;TAG&amp;quot;, RowData[2]);
              // do something with &amp;quot;data&amp;quot; and &amp;quot;value&amp;quot;
          }
      }
      catch (IOException ex) 
      {
          // handle exception
      }
      finally 
      {
          try 
          {
              is.close();
          }
          catch (IOException e) 
          {
              // handle exception
          }
      }
  } 
        catch (IOException e) 
        {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }  
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/7595385903263543156/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/android-read-and-parse-csv.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/7595385903263543156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/7595385903263543156'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/android-read-and-parse-csv.html' title='Android read and parse .csv'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1673695837520208564.post-6044802777043921028</id><published>2012-07-02T05:49:00.001-07:00</published><updated>2012-07-03T02:09:14.526-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Create a QR code reader on Android</title><content type='html'>想在Android 上開發QR Code相關功能的可以參考zxing
&lt;br&gt;

&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/zxing/wiki/GettingStarted&quot;&gt;LINK&lt;/a&gt;
&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://app-land.blogspot.com/feeds/6044802777043921028/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://app-land.blogspot.com/2012/07/create-qr-code-reader-on-android.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/6044802777043921028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1673695837520208564/posts/default/6044802777043921028'/><link rel='alternate' type='text/html' href='http://app-land.blogspot.com/2012/07/create-qr-code-reader-on-android.html' title='Create a QR code reader on Android'/><author><name>Harland</name><uri>http://www.blogger.com/profile/10705905083810949604</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>