站內搜尋

Saturday, October 22, 2022

[其他] 在 Microsoft store 刷卡買錯遊戲 如何快速申請退款

 剛剛在 Microsoft store 刷卡了遊戲,發現買錯了,想要退刷,但進入微軟的產品訂購紀錄頁面後,找不到申請退款的連結,非常不方便...

其實微軟有提供線上申請退款的頁面,只是沒有放在訂購紀錄頁面上,而且只有英文,就是下面的連結,進入該網頁後如果已經是登入狀態,會自動出現已經購買的遊戲,所以只要勾選想退款的遊戲,然後選一下退款的理由,送出後就會馬上收到退款申請已受理的Email通知信,完全不用聯絡客服,非常迅速方便。


https://support.xbox.com/en-US/help/subscriptions-billing/buy-games-apps/refund-orders

Friday, October 21, 2022

[JavaScript] 字串替換 replace() 如何全部替換 (IE瀏覽器也適用)

 var date = '2022-10-21';

date1 = date.replace("-", "");

alert(date1);  //會得到 202210-21

//如果我們希望得到 20221021 會使用 replaceAll 來替代 replace 但IE瀏覽器不支援此語法 請使用下面方式

date2 = date.replace(/-/g, "");

alert(date2);  //就會得到 20221021 很簡單吧

Friday, August 5, 2022

[PHP] 用程式檢查文字檔編碼是否為 "UTF-8 碼 (檔首有BOM)"

UTF-8 的文檔分為 "檔首有BOM" 及 "檔首無BOM" 兩種,如果遇到程式讀取使用者上傳的文檔,明明用記事本打開第一碼是A(舉例),但用程式讀內容抓到的第一碼卻不是A,可能這個檔案就是檔首含BOM的文件,檢查方式很簡單,如下....

Thursday, April 28, 2022

[MYSQL] 最簡單的單筆資料備份語法

表A的某筆資料(例如:id=5) 要變動前,希望能先備份到表B,語法如下:

INSERT INTO table_b SELECT * FROM table_a WHERE table_a.id = '5'

Monday, February 21, 2022

[PHP] IE瀏覽器下載特殊附檔名檔案時(如 .nlbl檔) 會自動變成.zip檔

簡單的下載連結 <a href="abc.nlbl">NiceLabel檔案下載</a> 

Chrome、Firefox 都可以正常下載,但 IE 下載時會自動改成 a.zip,可用下面的程式碼來設定 header,如下:

<PHP的部分>

if ($_GET['type'] == 'nlbl' && $_GET['file']) {

  header('Content-Type: application/octet-stream');

  header('Content-Disposition:attachment; filename = '.$_GET['file']);

  readfile($_GET['file']);

}


<HTML的部分>

<a href="?type=nlbl&file=abc.nlbl">NiceLabel檔案下載</a>

Tuesday, October 5, 2021

[PHP] 簡單DIY一支監測網站是否掛掉(hang或down)的程式 (配合cronjob或工作排程)

網站有時會因為各種原因掛掉(或半死不活網頁一直轉圈圈),因為server主機或服務還活著,有些網管監控軟體無法立即反映出問題,我們可以簡單寫一支小程式去監測網站的回應時間...

Monday, August 9, 2021

[PHP] 陣列的排序函式

效果 昇冪 降冪 使用者定義的順序
依值排序,然後重新指定從0開始的索引 sort() rsort() usort()
依值排序 asort() arsort() uasort()
依鍵排序 ksort() krsort() uksort()


備註:上面的排序法已經可以解決大部分的問題,PHP還有提供另一種非常符合人性的自然排序法,有分大小寫的natsort()與不分大小寫的natcasesort()兩種,如下:
$arr = array("temp15.txt","Temp10.txt","temp1.txt","Temp22.txt","temp2.txt"); sort($arr); //基礎排序 無法正確排序帶文字的數字 eg. 1.jpg 10.jpg 2.jpg print_r($arr); natsort($arr); //自然排序 有區分大小寫 print_r($arr); natcasesort($arr); //自然排序 不區分大小寫 print_r($arr);

Sunday, August 1, 2021

[PHP] 匿名函式(又稱閉包closure) 引用外部變數時,使用 global 與 use 的差異

以 usort() 來舉例,使用匿名函式的寫法如下... $array = array(200, 300, 100); usort($array, function($a, $b) { return $a > $b; }); print_r($array); //Array ( [0] => 100 [1] => 200 [2] => 300 ) 如果我們想用一個變數($bln)去決定升冪或降冪,寫法可以有以下兩種...
使用 global : $array = array(200, 300, 100); $bln = 1; usort($array, function($a, $b) { global $bln; if ($bln) { return $a < $b; } else { return $a > $b; } }); print_r($array); //Array ( [0] => 300 [1] => 200 [2] => 100 ) 使用 use : $array = array(200, 300, 100); $bln = 1; usort($array, function($a, $b) use($bln) { if ($bln) { return $a < $b; } else { return $a > $b; } }); print_r($array); //Array ( [0] => 300 [1] => 200 [2] => 100 ) 用 global 與 use 結果是相同的,但如果我們多包一層function的時候... $array = array(200, 300, 100); $bln = 1; function mysort($array) { $bln = 0; usort($array, function($a, $b) use($bln) { if ($bln) { return $a < $b; } else { return $a > $b; } }); return $array; } $array = mysort($array); print_r($array); //Array ( [0] => 100 [1] => 200 [2] => 300 ) $array = array(200, 300, 100); $bln = 1; function mysort($array) { $bln = 0; usort($array, function($a, $b) { global $bln; if ($bln) { return $a < $b; } else { return $a > $b; } }); return $array; } $array = mysort($array); print_r($array); //Array ( [0] => 300 [1] => 200 [2] => 100 ) 結論:可以看到 use 是使用所在範圍內有效的變數,而 global 則一定是使用全域變數。

Saturday, July 24, 2021

[PHP] exit()的用法 以及 與die()的差異

exit、exit()與exit(0)都可以讓程序結束,如果希望程序結束時印出字串,可以使用exit('Error'),至於die()就是exit()一模一樣的別名函式,常於連線資料庫時使用。 $con = mysql_connect("localhost","mysql_user","mysql_pwd"); if (!$con) { die('Could not connect: ' . mysql_error()); //等同 exit('Could...'); }

Friday, July 23, 2021

[PHP] if 的三種寫法

第一種 if (10 > 0) echo 'Yes'; //只能有一行 超過會報錯 else echo 'No'; 第二種 if (10 > 0) { echo 'Yes'; echo '...'; //可以有多行 } else { echo 'No'; echo '....'; } 第三種 if (10 > 0) : echo 'Yes'; echo '...'; else : echo 'No'; echo '...'; endif; 註1: 建議使用第二種寫法。

註2: 第三種寫法與第二種基本上相同,常見於HTML混寫時使用(例如:laravel的blade樣版)。
switch、while、for、foreach...也有類似的替代寫法 switch ($a) : case 'A': echo 'AAA'; break; endswitch; while ($i < 10) : $i++; echo $i; endwhile; for ($i = 0; $i < 10; $i++) : echo $i; endfor; foreach ($arr as $v) : echo $v; endforeach;