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 獲取頁面高度(多種瀏覽器)

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

在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 的外掛

利用

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