PHP simplexml to Array XML 轉 Array

引用網址
https://gist.github.com/tfnet/2037443

PHP 使用 simplexml_load_string() 解析 XML 資料,
要一直 $node->children() 一個節點一個節點的取,這樣用實在很麻煩,
如果能一次把 XML 結構資料轉成 Array 在讀裡面的資料就非常好用了,
網路查了一下看到神人分享的function,完全用原本的XML結構打造成Array,非常好用,
該網址提供的程式碼較適用於Class中,我做了一點小小的修改,
原版本請連文章上方引用網址,修改後版本請於文章下方 Download

<?php
/**
 * Converts a simpleXML element into an array. Preserves attributes.<br/>
 * You can choose to get your elements either flattened, or stored in a custom
 * index that you define.<br/>
 * For example, for a given element
 * <code>
 * <field name=”someName” type=”someType”/>
 * </code>
 * <br>
 * if you choose to flatten attributes, you would get:
 * <code>
 * $array[‘field’][‘name’] = ‘someName’;
 * $array[‘field’][‘type’] = ‘someType’;
 * </code>
 * If you choose not to flatten, you get:
 * <code>
 * $array[‘field’][‘@attributes’][‘name’] = ‘someName’;
 * </code>
 * <br>__________________________________________________________<br>
 * Repeating fields are stored in indexed arrays. so for a markup such as:
 * <code>
 * <parent>
 *     <child>a</child>
 *     <child>b</child>
 *     <child>c</child>
 * …
 * </code>
 * you array would be:
 * <code>
 * $array[‘parent’][‘child’][0] = ‘a’;
 * $array[‘parent’][‘child’][1] = ‘b’;
 * …And so on.
 * </code>
 * @param simpleXMLElement    $xml            the XML to convert
 * @param boolean|string    $attributesKey    if you pass TRUE, all values will be
 *                                            stored under an ‘@attributes’ index.
 *                                            Note that you can also pass a string
 *                                            to change the default index.<br/>
 *                                            defaults to null.
 * @param boolean|string    $childrenKey    if you pass TRUE, all values will be
 *                                            stored under an ‘@children’ index.
 *                                            Note that you can also pass a string
 *                                            to change the default index.<br/>
 *                                            defaults to null.
 * @param boolean|string    $valueKey        if you pass TRUE, all values will be
 *                                            stored under an ‘@values’ index. Note
 *                                            that you can also pass a string to
 *                                            change the default index.<br/>
 *                                            defaults to null.
 *
 * @return array the resulting array.
 */
function simpleXMLToArray($xml,$attributesKey=NULL,$childrenKey=NULL,$valueKey=NULL)
{

if($childrenKey && !is_string($childrenKey)){
$childrenKey = ‘@children’;
}
if($attributesKey && !is_string($attributesKey)){
$attributesKey = ‘@attributes’;
}
if($valueKey && !is_string($valueKey)){
$valueKey = ‘@values’;
}

$return = array();
$name = $xml->getName();
$_value = trim((string)$xml);
if(!strlen($_value)){
$_value = null;
};

if($_value!==null){
if($valueKey){
$return[$valueKey] = $_value;
}
else{$return = $_value;
}
}

$children = array();
$first = true;
foreach($xml->children() as $elementName =&g[……]

閱讀更多

Chrome – Postman – 測試 API 的好工具

轉自:林品翔 (tonilin)

http://blog.roachking.net/blog/2012/11/07/postman-restful-client/

POSTMAN in Google APP Store

因為工作的關係,常常寫一些 API 供 APP 使用。
以前傻傻的,每次測試的時候都會自己刻一個 HTML 的表單,一個一個填入 input ,接著送出。 後來覺得這樣太慢了,就用 JavaScript 寫了一個程式來送, 可是效率都沒有很好,尤其是需要反覆測試更改條件的時候。

之後在同事的推薦下用了 Burpsuite ,而這套軟體確實是可以做到沒錯,但是讓人有一種「殺雞焉用牛刀」的感覺。 因此又陸續找了幾個模擬 HTTP requests 的工具,卻都不甚理想。最近終於找到一套滿意的,也就是今天要介紹的 Postman。

Postman 是一個 Chrome 的 Extension,安裝以後可以在分頁欄裡面看到 Postman 的 Icon:

Postman 的主要功能

模擬各種 HTTP requests:從常用的 GET、POST 到 RESTful 的 PUT 、 DELETE …等等。 甚至還可以送出檔案、送出額外的 header。

Collection 功能:Collection 是 requests的集合,在做完單一個測試的時候, 你可以把這次的 request 存到特定的 Collection 裡面,如此一來,下次要測試的時候,就不需要重新輸入。
養成習慣以後,網站 API 的每個方法都寫好存進去,以後在開發的時候,就可以迅速得看到結果。 而 Collection 還可以 Import 或是 Share 出來,讓團隊裡面的其他人,可以一起使用你建立起來的 Collection。

整理過後的回傳結果:一般在用其他工具來測試的時候,回傳的東西通常都是純文字的 raw, 但如果是 JSON ,就是塞成一整行的 JSON。這會造成閱讀時的障礙 ,而 Postman 可以針對回傳資料的格式自動美化。 JSON、 XML 或是 HTML 都會整理成人類可以閱讀的型態。

設定環境:Postman 可以自由新增 Environment,一般我們可能會有多種環境, development 、 staging 或 local, 而這幾種環境的 request URL 也各不相同。新增 Environment,可以讓我們設定一些環境變數,使得切換環境測試的時候, 不用重寫 request。

小測試

我們丟一個 Request 到 Google Geocoding API ,讓大家看看實際的執行結果:

可以 一目瞭然地看到,送出什麼要求、得到什麼回應, 而 JSON 也整理好,且上好了顏色。
小結

自從用了 Postman 很滿意以後,也陸續推薦給其他同事,現在整個公司都在用 Postman 了!

如果你的專案也常常在處理 request,而且苦無測試工具,你可以試試 Postman。

[……]

閱讀更多

13種 網站測速

轉自:http://0123456789.tw/?p=1334

cputheo

前一陣子換了新主機之後,對於網站的連接載入速度還算滿意,r就這麼使用了半個月之後,突然有一天我連不上本站http://0123456789.tw/,我查看了管理的後臺,才發現可能是因為CPU limit過高?才使伺服器開啟了CPU節流閥(cpu throtting),而使網站被停用了1800秒?就是30分鐘,而這個改變是前一周我的伺服器供應商bluehost有說要更新,之後就多出了CPU throtting這個選項,原本以為是好的功能,確變成時常把我主機關閉的主因,然而納悶的是我的網站也才沒超過10人同時上站為何會這樣呢?不爽中…= =
好了廢話說完,本篇要介紹的是13個可以檢測你的網站速度的網站,傳說人們忍耐網頁載入的極限是7秒,若在七秒內你的網站沒有開啟完畢,大概要進入你的網站的人就掰掰你了,我不常上無名小站因為在他還沒賣給YAHOO之前的那陣子整個龜速到不行,而久而久之就沒習慣上去了,因為真得太龜了,即便是現在,還是有很多人的側邊攔掛了太多有的沒的外掛widget讀取還沒完我就沒耐心等下去了,而人類要養成一個習慣要66天,我養成的習慣是不上無名小站,呵,所以站在使用者立場或者網站SEO優化的立場來說,如果下列網站都將你的網站載入速度測出超過七秒的話,你就要好好思考如何減輕你的網站讀取的東西,例如一些外掛,或者圖片的數量,我再想是因為計算0123456789的首頁有很多縮圖,導致在讀取時會增加CPU的負荷,再觀察看看,若還是這樣可能就要考慮更換佈景主題了,哭哭。

計算網站讀取的資訊網站13個,使用方法都是填入你要測試的網址就OK了
1.

http://webwait.com/
這個網站他會一直讀取你的網頁,所以只有第一次的是比較準確的數值,因為後來的就關係到你本機的快取檔案會加快讀取的速度,


2.

http://tools.pingdom.com/

這個網站測試的蠻詳盡,包括每一個檔案讀出的速度,以及外掛,CSS檔或者script等其他可能是放在他處的檔案,可以看出是誰拖慢速度


3.

http://www.websiteoptimization.com/services/analyze/

這個網站也是詳盡一派的,還列出不同速度的網路會花費多少時間


4.

http://www.iwebtool.com/speed_test

這就很簡單,只有列出幾K幾秒跟平均讀取速度


5.

http://www.selfseo.com/website_speed_test.php

簡單派之二,說穿了網站速度就是列屬於SEO工具的其一


6.

http://www.vertain.com/?sst

這個說是用10MBPS的網路去連接的,下行還列出其他超快速度的網站參考值,不過14.31秒?好像不是很正確


7.

http://www.websitegoodies.com/tools/speed-test.php

這個0.758秒還真鮮,到了小數點下三位,只是我自認沒那麼快,我想是因為讀取太多次硬碟快取檔案加快的原因


8.

http://www.hostpulse.com/hosting/networktools/speedtest.asp

這個其實就是去PING你要測試的網站,你可以開啟MS-DOS自行輸入PING HTTP://XXX.XXX.XXX也可以查看一樣的數值


9.

http://www.linkvendor.com/seo-tools/speedtester.html

這個有分為非HTML跟HTML的部分去測試大小


10.

http://www.webkaka.com/

這是大陸那邊的側是網站,網路卡卡這名稱還真有創意,他可以測試由大陸13個點及國外4個點連入你網站的速度


11.

http://www.aptimize.com/website-speed-test

這個很龜毛,但也算專業,他們是協助你改善速度的公司,註冊後才能使用,他會將測試結果MAIL給你,做成一個PDF的檔案共三頁,我擷圖如下,這個也是第一次讀取要15秒,慘了


12.

http://www.freespeedtest.com/

這個可以測試由世界九個點連入的速度


13.

http://wonderwebware.com/page-speed-tester/

這個是要下載到PC上安裝測試的,測試可以看到他讀取的過程,個人覺得挺公正的,推薦

[……]

閱讀更多

磁碟陣列 RAID 0 和 RAID 1 和 RAID 5 的差別

RAID 0 跟 RAID 1 都是將二顆硬碟組合成一顆硬碟,但結果是不同的

假設有a b硬碟都為20G

RAID 0 的結果為 在系統內看到一顆硬碟容量為 20+20=40G

RAID 0 可以將二個硬碟容量加總,資料寫入時是一部分寫入第一顆硬碟,一部份寫入第二顆硬碟,優點是寫入跟讀取速度增加,但缺點是沒有容錯功能.一旦其中一顆硬碟損壞,將造成資料的損壞.

RAID 1 的結果為 在系統內看到一顆硬碟容量為 20+20=20G (Mirror鏡射)

RAID 1 雖然也是將a b硬碟組合成一顆硬碟,但是它是將b硬碟作成a硬碟的鏡射碟.也就是說資料在寫入a硬碟時同時也寫入了一份複本在b硬碟,優點是資料在存取時同時有一份是備分檔,缺點是會浪費一顆硬碟,因為二顆硬碟是存放著相同的資料。

RAID 5 的組成一定是3顆以上的硬碟,其容量的計算是(n-1)顆

假設有a b c 三顆硬碟是20G

組成 RAID 5 之後容量是 20+20+20=40G

RAID 5 結合了 RAID 0 跟 RAID 1,它將硬碟的容量加總了,但是又保留了一顆的容量在作檔案的容錯,在寫入資料時會透過其演算法去寫入三顆硬碟之中,假設C硬碟掛掉了,只要將一顆新的 20G取代 C 硬碟,RAID 5 的容錯機制會由A B 二顆硬碟中留下的資料來還原 C 硬碟的資料,但前提是壞一顆硬碟,如果同時壞二顆,那資料亦是全毁.

RAID 0 可以將硬碟容量加總,增加讀取速度,但是沒有容錯功能.

RAID 1 可以將資料鏡射一份,但是讀取速度沒有增加.而且要浪費一顆硬碟.

RAID 5 可以將硬碟容量加總,亦可以增加讀取速度,也有容錯功能.而且多顆組合起來只會浪費一顆硬碟.不像RAID 1每二顆硬碟會浪費一顆.

由於RAID 5 只容許同時有一顆硬碟損壞.就有了RAID 0+1 或 RAID 1+0

這是更安全的作法.但相對的也更浪費硬碟.

假設有4個硬碟 A B C D 各20G

RAID 0 A+B => 20+20=40(E)

RAID 0 C+D => 20+20=40(F)

在這裡由A B C D 組成了二顆RAID 0的硬碟.雖然容量加總了.但並沒有容錯功能

所以

RAID 1 E+F => 40+40=40(G)

RAID 1+0 則是反過來運作

RAID 1 A+B => 20+20=20(E)

RAID 1 C+D => 20+20=20(F)

RAID 0 E+F => 20+20=40(G)

作RAID 最好是都用相同容量的硬碟,如果容量不同.則以當中容量最小的為基準

如 A=20G B=30G C=40G

RAID 0 A+B => 20+30=40

RAID 1 A+B => 20+30=20

RAID 5 A+B+C => 20+30+40 => 20+20=40 (n-1)

各種RAID架構比較表

RAID方案
硬碟數
可用容量
效能
安全性
主要應用
JBOD
大於2
全部
不變
幾乎等於0
容量至上
RAID 0
大於2
全部
最高
危險
追求效能的狂熱玩家
RAID 1
2
總容量的50%
稍有提升
最高
完全不能出錯的資料備份
RAID 0+1
4以上的偶數
總容量的50%
極高
同時需要備份和效能,且預算無上限
RAID 5
3以上
N-1顆
讀快寫慢
同RAID 0+1但預算限制

[……]

閱讀更多

美國虛擬主機比較表 (2014年10月最新評估)

文章出處
http://www.lowest-price-web-hosting.com/big5/compare-plans.shtml?b5

概括BlueHostHostMonsterIX Web HostingHostGatorJustHost主機商運作年數14149104客戶人數1,900,0001,700,000200,000400,000300,000獎章數目889338 月費BlueHost
PlusHostMonster
PlusIX Web Hosting
Expert PlanHostGator
Baby PlanJustHost
Just Plan貨幣美金美金美金美金美金1個月月費–$9.95月費
+ $30設定費$7.96月費-3個月預繳月費–$7.95月費
+ $30設定費–6個月預繳月費—$7.96月費-12個月預繳月費 $7.95月費$7.95月費$6.95月費
$3.95月費
43%折扣優惠$7.96月費
20%折扣優惠!$3.95月費24個月預繳月費$6.95月費$6.95月費$6.95月費
$2.95月費
58%折扣優惠$7.16月費$3.50月費36個月預繳月費$5.95月費$5.95月費$6.95月費
$1.95月費
71%折扣優惠$6.36月費$2.75月費主要主機規格BlueHostHostMonsterIX Web HostingHostGatorJustHost網頁存放空間無限制無限制無限制無限制無限制每月網站流量無限制無限制無限制無限制無限制可建立額外網站無限制無限制無限制無限制無限制多組獨立FTP帳號1,000無限制2,500無限制無限制支援匿名 FTP 登入–有有-支援CGI-BIN, Perl, Python & SSI有有有有有支援PHP有有有有有支援FrontPage Extensions有有有有有支援下載主機流量檔案有有有有有支援文件夾密碼保護有有有有有電子郵件功能BlueHostHostMonsterIX Web HostingHostGatorJustHost可開立Email帳號數
(POP3/IMAP)無限制無限制2,500無限制無限制Email自動轉寄功能無限制無限制無限制無限制無限制Email自動回覆功能無限制無限制無限制無限制無限制網頁收發電子郵件Webmail有有有有有Email 防垃圾信功能有有有有有作業系統/軟件BlueHostHostMonsterIX Web HostingHostGatorJustHost主機作業系統 LinuxLinuxLinux (Red Hat)LinuxLinux網站管理介面
(Control Panel)CPanel X
(支持中文)CPanel X
(支持中文)特制
(H-Sphere)CPanel X
(支持中文)CPanel X
(支持中文)網站流量分析Webalizer, AWStatsWebalizer, AWStatsWebalizerWebalizer, AWStatsWebalizer, AWStatsMySQL 資料庫功能BlueHostHostMonsterIX Web HostingHostGatorJustHost支援MySQL資料庫無限制無限制50個無限制無限制支援PHPMyAdmin網上資料庫管理有有有有有域名支援功能BlueHostHostMonsterIX Web HostingHostGatorJustHost支援次網域
(Subdomains)無限制無限制無限制無限制無限制支援指向域名
(Domain Pointer)無限制無限制有無限制無限制網站購物功能BlueHostHostMonsterIX Web HostingHostGatorJustHost共用加密套接字協議層
(Shared SSL)有有有有有支援網上購物車 Agora, osCommerce, Cube, ZenAgora, osCommerce, Cube, ZenosCommerceosCommerce, Cube, ZenAgora, osCommerce, Cube, Zen付款方式BlueHostHostMonsterIX Web HostingHostGatorJustHost信用卡有有有有有PayPal有有有有有技術支援BlueHostHostMonsterIX Web HostingHostGatorJustHost24/7 Email技術支援有有有有有24/7 電話客服支援有有有有有Live Chat 支援有有有有有其他BlueHostHostMonsterIX Web HostingHostGatorJustHost免費域名有有有-有退款保證任何時候任何時候30 天45 天任何時候瀏覽網站BlueHostHostMonsterIX Web HostingHostGatorJustHost閱讀評論BlueHostHostMonsterIX Web HostingHostGatorJustHost
[……]

閱讀更多

英文書信敬語 此致敬禮 之類的

轉自:
http://ronamtis-tips.blogspot.tw/2008/04/blog-post_7161.html

英文書信敬語

雖然現代人寫 email 很方便,但有時候方便不代表可以隨便。
以下是在網路上找到的各式說明,規則林林總總一大堆。
但說真的,要怎麼用還是要看個別情況而定,最重要的是掌握好情境和跟對方的交情,這樣就比較不會用錯了!

Commercial English – Letters

You write toHow to begin the letterHow to end the letteran unknown firm/person (BE) (AE)Dear Sir/Madam (BE) (AE)Yours faithfully (BE)Dear Sir or Madam (BE) (AE)Yours truly (AE)To whom it may concern (AE)Truly yours (AE)a woman whose name you don’t knowDear Madam (BE) (AE)Yours faithfully (BE)Yours truly (AE)Truly yours (AE)a man whose name you don’t knowDear Sir (BE) (AE)Yours faithfully (BE)Yours truly (AE)Truly yours (AE)a person whose name you knowDear Mr/Mrs/Ms Fisher (BE) (AE)Yours sincerely (BE)Very truly yours (AE)Sincerely (yours) (AE)a person you know personallyDear Ann/John (BE) (AE)(With) Best wishes (BE) (AE)Yours (BE)Love (BE)All the best (AE)Kindest/Best regards (AE)

美語達人 Mike 劉之「非傳統英語教學區」
「結尾敬語」(Complimentary Closing)

「結尾敬語」區分「正式」、「半正式」與「非正式」三種:

  1. 「正式」用法(外交與宗教信函):
    Respectfully yours,
    Respectifully,
  2. 「半正式」用法(政府部門與公司行號):
    Very truly yours,
    Yours truly,
    Yours very truly,
    Very cordially yours,
    Very sincerely yours,
  3. 「非正式」用法(一般私人信件):
    Sincerely,
    Sincerely yours,
    Best regards,
    Best wishes,
    Cordially,
    Cordially yours,
    Regards,
    Love,
    Kindest/Warmest regards

常春藤網路書店網站 FAQ一般英文書信結尾的敬語用法如下:

  • 用於平輩
    Sincerely, Sincerely yours, Yours sincerely, Best regards, My best regards
  • 用於商業書信
    Truly yours, Yours truly
  • 用於對高官、師長及其他長者
    Respectfully, Respectfully yours, Yours respectfully
  • 家人、親人或情人之間則常用下列充滿感情的結尾語
    Love, Lots of love, our dear friend, Your sweetheart

英文書信結束語 (很多,很強大!)
商業英文書信常用結束語
Closing Phrases & Sentences Generally Used in Business Letters Closing Phrases & Sentences Generally Used in Business Letters

  1. 我們盼望於近日內接獲回信等。
    1. We hope to receive your favour at an early date.
    2. We hope to be favoured with a reply with the least delay.
    3. We await a good news with patience.
    4. We hope to receive a favourable reply per return mail.
    5. We await the pleasure of receiving a favourable reply at an early date.
    6. We await the favour of your early (prompt) reply.
    7. A prompt reply would greatly oblige us.
    8. We trust you will favour us with an early (prompt) reply.
    9. We trust that you will reply us immediately.
    10. We should be obliged by your early (prompt) reply.
    11. Will your please reply without delay what your wishes are in this matter?
    12. Will you kindly inform us immediately what you wish us to do.
    13. We request you to inform us of your decision by return of post.
    14. We are awaiting (anxious to receive) your early reply.
    15. We thank you for the anticipated favour of your early reply.
    16. We should appreciate an early reply.
    17. We thank you in anticipation of your usual courteous prompt attention.
    18. We thank you now for the courtesy of your early attention.
    19. We hope to receive your reply with the least possible delay.
    20. Kindly reply at your earliest convenience.
    21. Please send your reply by the earliest delivery.
    22. Please send your reply by messenger.
    23. Please reply immediately.
    24. Please favour us with your reply as early as possible.
    25. Please write to us by tonight’s mail, without fail.
    26. May we remind you that we are still awaiting your early reply.
    27. May we request the favour of your early reply?
    28. A prompt reply would help us greatly.
    29. A prompt reply will greatly oblige us.
    30. Your prompt reply would be greatly appreciated.
    31. Your prompt attention to this matter would be greatly esteemed.
    32. We look forward to receiving your early reply.
    33. We thank you now for this anticipated courtesy.
    34. As the matter is urgent, an early reply will oblige.
    35. We reply on receiving your reply by return of post.
  2. 回信請用電報等。
    1. We await your reply by telegraph.
    2. Please wire reply to our telegram of this morning.
    3. We are anxiously awaiting your reply by telegram.
    4. Please arrange for your telegraphic reply, or long distance call, to reach us before noon on Monday.
    5. Cable reply immediately, using Western Union Code.
    6. Please acknowledge by wire the receipt of these instructions.
    7. Please do not fail to telegraph your reply immediately on receipt of this letter.
    8. Please telegraph your decision without delay as we have offers awaiting.
    9. Please telegraph reply immediately, our offices will be open until 9 pm
    10. Oblige us by replying by telegram before noon tomorrow, as we have another offer.
    11. Inform us by telegram of your lowest quotations.
    12. Wire me at the Grand Hotel. Yokohama, before noon.
    13. Wire in time for us to write you in reply by 7 pm mail.
    14. Telegraph me from Osaka before noon stating your telephone numbers.
    15. Kindly reply me by wire (telegraphically).
    16. We should be pleased to have you telegraphically reply us.
  3. 關於某某事項,謹表謝意等。
    1. Please accept our thanks in advance for your usual kind attention.
    2. Please accept our thanks for the trouble you have taken.
    3. We are obliged to you for your kind attention in this matter.
    4. We are greatly obliged for your trial order just received.
    5. We wish to assure you of your appreciation of your courtesy in this matter.
    6. We thank you for your order just received.
    7. We thank you for the special care you have given to the matter.
    8. We tender you our sincere thanks for your generous treatment of us in this affair.
    9. Allow us to t[……]

      閱讀更多

PHP 使用 glob 搜尋所有檔案路徑

/**
02.* 在使用之前,我們先大致了解一下glob有什麼特別的參數可以使用。
03.*
04.* GLOB_MARK     - 若檔案為資料夾,在回傳檔案路徑的最後面加上斜線""
05.* GLOB_NOSORT   - 保持檔案路徑在原資料夾的出現順序(不重新排序)。※筆者在Win環境看不出差異
06.* GLOB_NOCHECK  - 若找不到匹配的檔案路徑,回傳匹配的條件字串
07.* GLOB_NOESCAPE - 不要將反斜線視為跳脫字元(※筆者在Win環境下看不出差異)
08.* GLOB_BRACE    - 將 {a,b,c} 視為搜尋 'a', 'b', 或 'c'
09.* GLOB_ONLYDIR  - 只列出資料夾路徑
10.* GLOB_ERR      - 發生讀取錯誤時停止動作(像是無法讀取的資料夾),預設是「忽略錯誤」
11.**/
01.// 搜尋 path 資料夾中,所以資料夾的路徑,並在最後加上斜線 ""
02.$dirs array_filter(glob('/path/*',GLOB_MARK), 'is_dir');
03. 
04.// 同上的結果(所以資料夾的路徑),而且此方法比較標準效能也較快
05.// (※不同這邊要注意的是,GLOB_ONLYDIR 僅適用於非使用 GUN C library 的系統
06.// 所以當不支援的時候,可以改用第一種方法)
07.$dirs glob('/path/*',GLOB_ONLYDIR | GLOB_MARK);
08. 
09.// 搜尋path資料夾中,所有的檔案的路徑
10.// (※筆者很好奇,=3=既然都有 GLOB_ONLYDIR 了,為什麼不多個 GLOB_ONLYFILE )
11.$files array_filter(glob('/path/*'), 'is_file');
12. 
13.// 搜尋 path 資料夾中所有檔名字串結尾為 .gif、.jpg、.png 檔案路徑
14.//(※這邊要注意,若副檔名大小寫不一樣,會搜尋不到,像 .GIF 、 .gIf 或 .giF 都會被忽略掉)
15.$images glob("/path/{*.gif,*.jpg,*.png}", GLOB_BRACE);
16. 
17.// 搜尋 path 資料夾中所有檔名字串結尾非 "_s.jpg" 檔案路徑
18.$filter array_filter(glob('img/*'), function($ele){return !stristr($ele,'_s.jpg');});
19. 
20.// 搜尋 path 中所有含有 views 資料夾的資料夾
21.$dirs glob('/path/*/views', GLOB_ONLYDIR);
22. 
23.//以遞迴的方式,取得深層資料夾的所有路徑
24.function listdirs($dir) {
25.static $alldirs array();
26.$dirs glob($dir '/*', GLOB_ONLYDIR);
27.if (count($dirs) > 0) {
28.foreach ($dirs as $d$alldirs[] = $d;
29.}
30.foreach ($dirs as $dir) listdirs($dir);
31.return $alldirs;
32.}

轉自
http://liaosankai.pixnet.net/blog/post/29021189-%E4%BD%BF%E7%94%A8-glob-%E6%90%9C%E5%B0%8B%E6%89%80%E6%9C%89%E6%AA%94%E6%A1%88%E8%B7%AF%E5%BE%91[……]

閱讀更多

PHP big5轉utf8不要用iconv(),iconv這個函數,用mb_convert_encoding

不要以為big5轉utf8就用iconv()這麼簡單

big5有很多字是沒有收錄的:

測試:

用法:

原文出自:

http://sweslo17.blogspot.tw/2012/04/big5-erpms-sql-local-cache-phpiconv.htmlhttp://dev.sopili.net/2009/08/phpbig5utf8iconv.htmlhttp://help.i2yes.com/?q=node/65

[……]

閱讀更多

CSS 項目符號

list-style-type:none; 《不編號》
list-style-type:decimal; 《阿拉伯數字》
list-style-type:lower-roman; 《小寫羅馬數字》
list-style-type:upper-roman; 《大寫羅馬數字》
list-style-type:lower-alpha; 《小寫英文字母》
list-style-type:upper-alpha; 《大寫英文字母》
list-style-type:disc; 《實心圓形符號》
list-style-type:circle; 《空心圓形符號》
list-style-type:square; 《實心方形符號》
list-style-image:url(dot.gif); 《圖片式符號》
list-style-position:outside; 《凸排》
list-style-position:inside; 《縮排》

原文出處
http://stenlyho.blogspot.tw/2008/07/css.html

[……]

閱讀更多