發表文章

目前顯示的是 2017的文章

PHP snippet 每N個資料使用tag包起來

/** * 這是一個會用ul把輸出資料包起來並且是依照每$defaultLineRow個資料包一個ul **/ $count = 0; $defaultLineRow = 5; foreach ($List as $array) { if ($count !== 0 && $count % $defaultLineRow === 0) { echo "</ul>"; } echo $array['data'] ; if ($count % $defaultLineRow === 0){ echo "<ul>"; } $count++; } echo "</ul>";

PHP 修改網頁編碼

header("content-Type: text/html; charset=UTF-8");

從MS Office中複製到的特殊字元

從office復製文字出來的時候,如果這個文字是要拿來做比對的,要小心office可能會把一些隱藏的字元(格式之類的)也復製過去導至判斷失敗。 x{200b} "%E2%80%8B" 神奇字元

PHP 讓json\_encode不要把東西轉成\uXXXX

<?php function json_encode_ex($value) { if (version_compare(PHP_VERSION, '5.4.0', '<')) { $str = json_encode($value); $str = preg_replace_callback("#\\\u([0-9a-f]{4})#i", "replace_unicode_escape_sequence", $str); $str = stripslashes($str); return $str; } else { return json_encode($value, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); } } function replace_unicode_escape_sequence($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); } echo json_encode_ex("中文字!@#$%^&*()"); echo "\n"; echo json_encode("中文字!@#$%^&*()");

JQuery 關於on的委派

// 對現有的element綁定click事件 $( "#dataTable tbody tr" ).on( "click", function() { // none // 對現有的element綁定click事件,並且對tbody中動態產生的tr也綁定 $( "#dataTable tbody" ).on( "click", "tr", function() { // delegate

PHP 檢查是否為關聯陣列

/** * 檢查陣列是否為關聯陣列 * @param array $arr 被檢查的陣列 * @return boolean */ function isAssoc(array $arr) { if (array() === $arr) { return false }; return array_keys($arr) !== range(0, count($arr) - 1); }

Html JS .submit() 失效的原因

參考 stoimen’s web log

Mac 中常壓字母跑出他字元的問題

這是Mac 預設的,如果你預期是像Windows不斷地重複輸入的話,打開終端機並且試試以下指令 defaults write -g ApplePressAndHoldEnabled -bool false

PHP parse_str 遇到的問題

問題 parse_str 在解析+時的問題會解析成 ,但依據RFC 3986規範不應該這樣,應解析為+。 狀況 解析 QueryString 後拿到的值去做加密驗證時一直失敗。 解決 此方法無法處理含有陣列的QueryString // 等我有哪天無聊再來弄吧!! 改進了一個function達成。 從PHP 官方的討論中找出程式片段並改進 function parseQueryString($str) { $op = array(); $pairs = explode('&', $str); foreach ($pairs as $pair) { list($k, $v) = array_map('rawurldecode', explode('=', $pair)); $op[$k] = $v; } return $op; } 因為rawurldecode不會將+換成 總結與心得 找查許久之後才發現parse_str在解析QueryString會對其值做urldecode(),而、PHP對+做urldecode()時會轉換成 ,但是依據RFC 3986規範應解析成+於是使用rawurldecode()代替。 下次再做加解密時若有用到 parse_str 或是 urlencode/urldecode 時要注意來源或目的的url加密格式(主要差別在於+是轉換成 還是 )。 補充 取代http_build_query // 也是用urlencode function buildQueryString(array $arr) { $op = array(); foreach ($arr as $key => $val) { list($k, $v) = array_map('rawurlencode', array($key, $val)); array_push($op, "{$k}={$v}"); } return implode('&', $op); }

強迫 Git分支 Reset 到另一個分支的方法

git branch -f nimo master

mobile Safari 連結撃點無效問題

Safari 會判斷html標籤上面是不是有 cursor:pointer; 的屬性,所以在你的tag上加上css => cursor:pointer;

PHP Curl 送Xml的方法

在curl參數header中加入傳送類型 curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));

SQL 索引這件事

A + B + C 照順序吃由左到右。 單獨搜尋A吃。 搜尋A + B也吃。 搜尋A + B + C也吃。 搜尋B不吃,搜尋B + C也不吃。 要放在WHERE後面才吃的到,中間隔東西就吃不到 group一定要全中才吃。

[git] 解決igonre失效的問題

原因 失效有可能是因為之前有commit過,導至git把檔案加到快取中,所以清除快取就會正常了。 解法 git rm -r --cached . git add . git commit -m '.gitignore is now working'

Markdown small note

使用html標籤 在標籤上下兩行要有空白行 EX: markdown text <tag> test 123 </tag> markdown text 換行這件事情 MarkDown有很多自己的換行規則,如果要強迫換行(也就是 <br /> )的話就在行末加兩個以上的空白字元。 引言 > 引言之中可以再用引言 >> ,也可以使用其他的MarkDown語法(像是 # )。 引言結束之後一定要有一行空白表示引言結束。 清單 *``-``+``1. 清單開始之前一定要有一行空白表示清單開始。 清單結束之後一定要有一行空白表示清單結束。 清單式允許段落的,但是必須在下個段落的最前方加入 space 或是 Tab Ex: * test1 test2 test1 test2 * test test1 test2 test1 test2 test 清單中用引言 *``Tab``> 。 清單中顯示程式碼 *``Tab``Tab Code...。 逸出 反斜線可以防止Markdown對你輸入的符號做判斷,假如你就是只想顯示 # 那就輸入 \# 吧。 程式碼 程式碼開始之前一定要有一行空白表示程式碼開始。 `Tab`Code ... `Tab` Code.. `Tab`Code End ... 也可以使用下面的方式 ```js function xd() { } ``` 連結 單行 [text](href) [text](href "title") 參考 #id不分大小寫 [id]: href "title" [text][id] 預設參考 [google]: href "title" [google][] 單純連結 <url or mail> 圖片 單行 ![alt text](href) ![alt text](href "title") 參考#id不分大小寫 [id]: href "title" [alt text][id] 速記 單行 -``= :分隔線 #``## ... ###### : <h1>``<h2> ... <h6> *t

twentyfifteen-child

/* 歡迎使用自訂 CSS! 若要瞭解自訂 CSS 的運作方式,請參閱 http://wp.me/PEmnE-Bt */ code { border: 1px solid transparent; font-size: .7em; padding: .3em; border-radius: 5px; background: rgba(153,153,153,0.84); color: #000000; }

[引用] Markdown 语法和 MWeb 写作使用说明

圖片
Markdown 的设计哲学 Markdown 的目標是實現「易讀易寫」。 不過最需要強調的便是它的可讀性。一份使用 Markdown 格式撰寫的文件應該可以直接以純文字發佈,並且看dddd起來不會像是由許多標籤或是格式指令所構成。 Markdown 的語法有個主要的目的:用來作為一種網路內容的 寫作 用語言。

PHP filter_input 驗証輸入,過濾輸入。

說明 當在做API或是一些需要接收表單資料的時候,總會需要確定發送端有沒有把值送過來,送過來的值有沒有正確。 這是一個php內建的函式,可以過濾或驗証輸入端變數的型態。 函式 mixed filter_input ( int $type , string $variable_name [, int $filter = FILTER_DEFAULT [, mixed $options ]] ) $type => 類型 INPUT_GET 從$_GET拿值 INPUT_POST 從$_POST拿值 更多請參考 $variable_name => 變數名 $filter => 過濾或驗証的方式 過濾類型 更多請參考 驗証類型 FILTER_VALIDATE_BOOLEAN 驗証是否為boolean值 ("1", "true", "on" and "yes" 為 true,其他為 false) 更多請參考 參考 php.net