有些隱藏字元會被我們加在字串中,
不過這樣好像太乾淨了齁,
修改一下不要拿掉斷行n,
echo preg_replace(‘/[rt]/’, ‘ ‘, $xml);
[……]
echo preg_replace(‘/[rt]/’, ‘ ‘, $xml);
[……]
引用網址
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[……]
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “http://yourdomain.com.tw” );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_HTTPHEADER, array(‘Content-Type: text/plain’));
curl_setopt($ch, CURLOPT_POSTFIELDS, “POST RAW 資料” );
$result=curl_exec ($ch);
引用資料
[……]
轉自:林品翔 (tonilin)
因為工作的關係,常常寫一些 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 ,讓大家看看實際的執行結果:
[……]
轉自:http://0123456789.tw/?p=1334
前一陣子換了新主機之後,對於網站的連接載入速度還算滿意,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/
這個網站他會一直讀取你的網頁,所以只有第一次的是比較準確的數值,因為後來的就關係到你本機的快取檔案會加快讀取的速度,
這個網站測試的蠻詳盡,包括每一個檔案讀出的速度,以及外掛,CSS檔或者script等其他可能是放在他處的檔案,可以看出是誰拖慢速度
http://www.websiteoptimization.com/services/analyze/
這個網站也是詳盡一派的,還列出不同速度的網路會花費多少時間
http://www.iwebtool.com/speed_test
這就很簡單,只有列出幾K幾秒跟平均讀取速度
http://www.selfseo.com/website_speed_test.php
簡單派之二,說穿了網站速度就是列屬於SEO工具的其一
這個說是用10MBPS的網路去連接的,下行還列出其他超快速度的網站參考值,不過14.31秒?好像不是很正確
http://www.websitegoodies.com/tools/speed-test.php
這個0.758秒還真鮮,到了小數點下三位,只是我自認沒那麼快,我想是因為讀取太多次硬碟快取檔案加快的原因
http://www.hostpulse.com/hosting/networktools/speedtest.asp
這個其實就是去PING你要測試的網站,你可以開啟MS-DOS自行輸入PING HTTP://XXX.XXX.XXX也可以查看一樣的數值
http://www.linkvendor.com/seo-tools/speedtester.html
這個有分為非HTML跟HTML的部分去測試大小
這是大陸那邊的側是網站,網路卡卡這名稱還真有創意,他可以測試由大陸13個點及國外4個點連入你網站的速度
http://www.aptimize.com/website-speed-test
這個很龜毛,但也算專業,他們是協助你改善速度的公司,註冊後才能使用,他會將測試結果MAIL給你,做成一個PDF的檔案共三頁,我擷圖如下,這個也是第一次讀取要15秒,慘了
這個可以測試由世界九個點連入的速度
http://wonderwebware.com/page-speed-tester/
這個是要下載到PC上安裝測試的,測試可以看到他讀取的過程,個人覺得挺公正的,推薦
[……]
$(“input[name=’sex’][type=’radio’][value=’1′]”).attr(“checked”,”); //設定不打勾
$(“input[name=’sex’][type=’radio’][value=’0′]”).attr(“checked”,true); //設定打勾[……]
選取器,選取標籤多屬性,如type&name
可用於選取姓別的radiobox
if(sex==1){
$(“input[name=’sex’][type=’radio’][value=’1′]”).attr(“checked”,true);
}else{
$(“input[name=’sex’][type=’radio’][value=’0′]”).attr(“checked”,true);
}
相關網址
http://stackoverflow.com/questions/3221094/target-input-by-type-and-name-selector[……]
big5有很多字是沒有收錄的:
[……]
我們習慣在CSS編寫前引入reset.css來重設所有標籤的預設樣式,
但引入reset.css後,透過編輯器如CKEditor,可能產生斜體<em>標籤,
此時<em>標籤便失去原本html應該會呈現的斜體,另外粗體<b>..等,也會有此現象,
解決方法在引入reset.css後加入下面兩行CSS,問題解決
strong, b, strong *, b * { font-weight: bold !important; }
em, i, em *, i * { font-style: italic !important; }
[……]
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; 《縮排》
[……]