PHP – 利用curl函式來達到API

說明:
執行test.php會取得test2.php的回傳值, 來達到api概念吧
 

 

 test.php
 
==================================================================================== 

<meta charset="utf-8">
<?
function curlfun($url,$postdataarray){
    /*
CURLOPT_POSTFIELDS參數即為POST的內容,而 http_build_query() 效果是將array併成 a=123&b=321 型式的字串,
POST內容會在header中標示以application/x-www-form-urlencoded型式傳送,如果不用字串而直接給array也可以,
傳送方式則會變成multipart/form-data,但是封包會變大,且可能不被某些Server接受,通常是傳送檔案時才用。
cURL有很多參數可以設置,詳細用法見PHP官網。

CURLOPT_RETURNTRANSFER=true 會傳回網頁回應, false 時只回傳成功與否

    */
    $ch = curl_init();
    $options    = array(
CURLOPT_URL =>    $url,
CURLOPT_HEADER =>    0,
CURLOPT_VERBOSE =>    0,
CURLOPT_RETURNTRANSFER    =>    true,
CURLOPT_USERAGENT =>    "", //"Mozilla/4.0 (compatible;)
CURLOPT_POST =>    true, //啟用post
CURLOPT_POSTFIELDS =>    $postdataarray
);
    
    curl_setopt_array($ch,$options) ; //把陣列放入設定
    $result = curl_exec($ch); //開始執行
    curl_close($ch);
    return $result;
    
    }
    
$data    = array(
"act" => "TEST",
"first" => "HELLOW",
"second"    => "WORD",
"third" => "中文字"
);

echo curlfun("http://www.wondershow.tw/test2.php",$data);

?>
==================================================================================== 

 

test2.php
 
==================================================================================== 

<?
if ($_POST['act'] == "TEST"){
    
    echo "success";
    die;
    }
echo "error";

?>====================================================================================  

PHP – json_encode 與 json_decode , 取出物件或陣列的方式


<?
//class用法
    class a{
public $first  = "chang";
public $second = array(second_a => "HAPPY", second_b => "NEW YEAR" );
public $third  = array();

//一旦建立class時,把class b 塞進 $third 陣列, 但會在陣列$third[0]底下…. 當json_decode會很麻煩
function __construct(){
$third = array_push($this->third,new b);
}
}
    class b {
public $third_a = "HELLOW WORD";
public $third_b = "WELLOW TAIWAN";
}
//編碼    
    $result_en = json_encode(new a);

//用物件取出
    $result = json_decode($result_en);
    print_r($result->first); // 輸出chang
    echo "<br>";
    print_r($result->second->second_a); // 輸出 HAPPY
    echo "<br>";

//要取出third_a還是用json_decode返回陣列取出來吧
    $result = json_decode($result_en,true);
    print_r($result['third'][0]['third_a']); // 輸出 HELLOW WORD
    echo "<br>";

echo "——————-<br>";

//普通陣列用法
    $array  = array(first => "a", second => array(second_a => "GOOD MORNING", second_b => "GOOD NIGHT" ));
    $array  = json_encode($array);
//解碼
    $result = json_decode($array);    
    print_r($result->first); //輸出a
    echo "<br>";
    print_r($result->second->second_a); //輸出GOOD MORNING
    echo "<br>";

//解碼(返回陣列)
    $result = json_decode($array,true);    
    print_r($result['second']['second_b']); //輸出GOOD NIGHT

?>

jQuery 重製表單(reset)的方法

今天copy之前的項目的部分代碼到新項目時,遇到了$("#..Form").get(0).reset();這行代碼,我一開始以為這是多次一舉的,既然已經用ID選擇器了,得到的肯定是一個Form了,而不是包含其他Form的數組了。所以直接寫成$("#..Form").reset()不就完事了嘛。但我錯了,我居然忽略了兩點: 
1.ID選擇器的返回值類型是Array<Element>,也就是說也是數組形式的,雖然現在xhtml提倡的標準中,id是提倡唯一的,但jquery肯定是考慮到了兼容。 
2.reset()是js中的方法,而我一直在把它當作jquery的方法使用。這裡有一個注意:通過jquery中get(0)與eq(0)的返回值是不一樣的,前者返回值是Element後者是jQuery,所以要先get(0)再reset(),如果先eq (0)再reset()是報錯的。 

 ————————————————-
get() 跟 eq()不同

 get()返回如同陣列的html, 例如$("form").get(0)代表form原素的第一個form

eq()返回的是jq元素

JavaScript 獲取頁面高度(多種瀏覽器)

function getInfo()
{
var s = "";
s += " 網頁可見區域寬:"+ document.body.clientWidth;
s += " 網頁可見區域高:"+ document.body.clientHeight;
s += " 網頁可見區域寬:"+ document.body.offsetWidth + " (包括邊線和捲軸的寬)";
s += " 網頁可見區域高:"+ document.body.offsetHeight + " (包括邊線的寬)";
s += " 網頁正文全文寬:"+ document.body.scrollWidth;
s += " 網頁正文全文高:"+ document.body.scrollHeight;
s += " 網頁被卷去的高(ff):"+ document.body.scrollTop;
s += " 網頁被卷去的高(ie):"+ document.documentElement.scrollTop;
s += " 網頁被卷去的左:"+ document.body.scrollLeft;
s += " 網頁正文部分上:"+ window.screenTop;
s += " 網頁正文部分左:"+ window.screenLeft;
s += " 螢幕解析度的高:"+ window.screen.height;
s += " 螢幕解析度的寬:"+ window.screen.width;
s += " 螢幕可用工作區高度:"+ window.screen.availHeight;
s += " 螢幕可用工作區寬度:"+ window.screen.availWidth;
s += " 你的螢幕設置是 "+ window.screen.colorDepth +" 位彩色";
s += " 你的螢幕設置 "+ window.screen.deviceXDPI +" 像素/英寸";
//alert (s);
}

*—————————————————-*
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

在IE中:

document.body.clientWidth ==> BODY對象寬度 document.body.clientHeight ==> BODY對象高度 document.documentElement.clientWidth ==> 可見區域寬度 document.documentElement.clientHeight ==> 可見區域高度

在FireFox中:

document.body.clientWidth ==> BODY對象寬度

document.body.clientHeight ==> BODY對象高度

document.documentElement.clientWidth ==> 可見區域寬度

document.documentElement.clientHeight ==> 可見區域高度

在Opera中:

document.body.clientWidth ==> 可見區域寬度

document.body.clientHeight ==> 可見區域高度

document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬) document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高)

而如果沒有定義W3C的標準,則 IE為:

document.documentElement.clientWidth ==> 0

document.documentElement.clientHeight ==> 0

FireFox為:

document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬)

document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高)

Opera為:

document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬)

document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高)

from :
http://www.dotblogs.com.tw/aquarius6913/archive/2011/01/03/20538.aspx 

jQuery Masonry 磚牆效果 (如pinterest.com的瀑布效果 )

下載處:
http://masonry.desandro.com/

 這是屬於jQuery 的外掛

利用

<code class="javascript" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font:inherit;vertical-align:baseline;font-family:Monaco, monospace;"><span class="kd" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#a9d866;">var</span> <span class="nx" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;">$boxes</span> <span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#ff6633;">=</span> <span class="nx" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;">$</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#eeddbb;">(</span><span class="s1" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#78bd55;">&#39;&lt;div class=&quot;box&quot;/&gt;&lt;div class=&quot;box&quot;/&gt;&lt;div class=&quot;box&quot;/&gt;&#39;</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#eeddbb;">);</span>
<span class="nx" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;">$</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#eeddbb;">(</span><span class="s1" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#78bd55;">&#39;#container&#39;</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#eeddbb;">).</span><span class="nx" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;">append</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#eeddbb;">(</span> <span class="nx" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;">$boxes</span> <span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#eeddbb;">).</span><span class="nx" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;">masonry</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#eeddbb;">(</span> <span class="s1" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#78bd55;">&#39;appended&#39;</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#eeddbb;">,</span> <span class="nx" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;">$boxes</span> <span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-color:initial;font-size:12px;font:inherit;vertical-align:baseline;color:#eeddbb;">);</span></code>

可以動態增加元素
參考:
http://masonry.desandro.com/docs/methods.html#appended