2017年10月16日 星期一

iOS上的Safri, Chrome離線閱讀功能比較

先說結論 我認為Safri 的離線閱讀 比較好用

因為 Safri 的抓取離線閱讀的按鍵數比較少而且抓取的正確性比較高

Safri 離線閱讀 方法看這邊
Chrome 離線閱讀 方法看這邊

Safri 離線閱讀注意事項

  1. 看自動下載是否有打開

  2. 務必要開啟飛航模式來確認是否真的可以離線閱讀了
  3. 注意離線內容是否跟你要的一樣,該登入的頁面記得先登入,才可以取得正確的資訊
  4. 有Mac的人可以透過Mac的Safri把網頁加入離線閱讀,會方便很多,但是要注意他有沒有自動同步
  5. 長按連結,也可以加入離線閱讀
  6. 不可以排序離線閱讀清單的順序,但可以搜尋
  7. 一直肯不同步的頁面,刪掉再加入一次比較快
Chrome 離線閱讀注意事項
  1. Chrome不會鳥你是否有登入,一律都抓無登入版的資訊,需要登入的頁面不能用chrome抓
  2. 可離線閱讀的頁面會用綠色勾勾顯示
  3. 離線閱讀頁面是像Safri的閱讀模式一樣,但是Safri的離線閱讀確是正常畫面 XD
  4. 長按連結也可加入離線閱讀(長按,再點一下),還比原來的方式方便(按三個點,再按↑,再按離線閱讀...哪個笨蛋想的UI)
  5. 無法從電腦的Chrome加入離線閱讀

2017年9月6日 星期三

解決某些網站無法捲動的問題

最近很多網站會用蓋板式的廣告,我不想看都會用adblock plus把他過濾掉,可是有時候會造成網站無法捲動,把以下指令加入書籤列,無法捲動的網站按一下此書籤就可以捲動囉

javascript:$('html,body').css('overflow',"auto")

2017年9月5日 星期二

PHP使用JOIN時不會按照順序排序的解決方法

剛剛解掉了真是世紀無敵難的一個bug...
原因是因為 我要讓某個array按照某個順序使用join印出來
但是我array的創造方式是
$a[1] = 'b';
$a[2] = 'c';
$a[0] = 'a';
使用join,怎麼用都是印出 b,c,a
後來使用print_r 才看出問題是在 array 的創造方式,
讓array實際長的是 1 > 2 > 0 的順序,
但是使用一般for迴圈又感覺不出來,
最後使用 ksort 排序過一次之後,再使用join問題就解決了...

2017年9月4日 星期一

MySQL 使用 IN 時,按照順序回傳資料

今天寫程式的時候發現有一個bug,仔細追下去才發現是 in 居然不會按照所給的條件順序來回傳內容,google了一下才知道要按照順序回傳還要下其他指令...

select * from table where id in ( 3, 5, 7, 2, 4, 1) order by field ( id , 3, 5, 7, 2, 4, 1)
後面那個id 是要用來排序的欄位,不可省略,這樣資料就會按照 3, 5, 7, 2, 4, 1 的順序來回傳了

2017年8月23日 星期三

解決ubuntu系列中文化產生的桌面問題

ubuntu系列如果安裝語言選擇中文的話,會有一個很討厭的問題,就是桌面、下載這幾個資料夾,也幫你翻成中文,所以在終端機模式要進到桌面,要打
cd /home/user/桌面
還要切換成中文輸入法...有夠麻煩,最簡單的方式,使用ln建立英文捷徑,就搞定囉,語法如下
cd ~
ln -s 下載 ./Download
ln -s 桌面 ./Desktop

之後就能用英文指令進入桌面等資料夾了
cd /home/user/Desktop

2017年8月4日 星期五

解決PHP出現 Notice: Undefined variable 的問題

原本PHP是不須宣告變數的,在5.0版左右(?),變成要預先宣告變數,不然會出現成 Notice: Undefined variable 這個Error

解決方式:

  1. 乖乖宣告變數,我就是懶得宣告才會出現這個警告的阿...
  2. php.ini 內的 error_reporting 改成 error_reporting = E_ALL & ~E_NOTICE
使用方法2就能一勞永逸~~~


2017年7月21日 星期五

Swift 3 學習心得

最近開始學swift,發現有些google到的指令是1.0 或 2.0 的,
自己紀錄一下swift 3的心得給自己看...
  • 變數用 var 宣告 常數 用let宣告
var a=5
let b=4
  • int轉string的最簡單方法 \(int)
print("Number is \(int)")
  • Array 宣告
var array = [String]()
  • function 要宣告回傳,傳入參數要宣告型別,例如
func hello( name: String) -> String {
    return "Hello " + name + "!"
}
  • 傳入參數要改內容要宣告
func hello( name: String) -> String {
    var name = Tom
    return "Hello " + name + "!"
}
  • 使用function時,也要宣告變數名稱
hello(name: "Lee")
  • 字串切割
string.components(separatedBy: " ")
  • array 長度
array.count
  • 想到再加...