Subversion Repositories php-qbpwcf

Rev

Rev 3 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php

/*

        QBPWCF, Quick Build PHP website Component base on Fedora Linux.
    Copyright (C) 2014~2025 MIN ZHI, CHEN

    This file is part of QBPWCF.

    QBPWCF is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    QBPWCF is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with QBPWCF.  If not, see <http://www.gnu.org/licenses/>.

*/
namespace qbpwcf;

/*
類別說明:
Meta/Fb應用的類別.
備註:
無.
*/
class fb{

        /*
        #函式說明:
        #當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$reuslt["error"],執行不正常結束的錯訊息陣列.
        #$result["function"],當前執行的函式名稱.
        #必填參數:
        #$method,物件,為物件實體或類別名稱,會自動置入該參數.
        #$arguments,陣列,為呼叫方法時所用的參數.
        #參考資料:
        #__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
        */
        public function __call($method,$arguments){

                #取得當前執行的函式
                $result["function"]=__FUNCTION__;

                #設置執行不正常
                $result["status"]="false";

                #設置執行錯誤
                $result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";

                #設置所丟入的參數
                $result["error"][]=$arguments;

                #回傳結果
                return $result;

                }#function __call end

        /*
        #函式說明:
        #當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$reuslt["error"],執行不正常結束的錯訊息陣列.
        #$result["function"],當前執行的函式名稱.
        #必填參數:
        #$method,物件,為物件實體或類別名稱,會自動置入該參數.
        #$arguments,陣列,為呼叫方法時所用的參數.
        #參考資料:
        #__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
        */
        public static function __callStatic($method,$arguments){

                #取得當前執行的函式
                $result["function"]=__FUNCTION__;

                #設置執行不正常
                $result["status"]="false";

                #設置執行錯誤
                $result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";

                #設置所丟入的參數
                $result["error"][]=$arguments;

                #回傳結果
                return $result;

                }#function __callStatic end

        /*
        #涵式說明:
        #建立匯入fb js sdk的語法
        #回傳結果:
        #$result,匯入js語法的語法
        #必填參數:
        #無
        #可省略參數:
        #無
        */
        function importFbJsSdk(){

                #匯入臉書js
                $fbJsSdk="
                        <div id=\"fb-root\"></div>
                        <script>
                        (function(d, s, id)
                        {
                                var js, fjs = d.getElementsByTagName(s)[0];
                                if (d.getElementById(id)) return;
                                js = d.createElement(s); js.id = id;
                                js.src = '//connect.facebook.net/zh_TW/sdk.js#xfbml=1&version=v2.7&appId=269715116725149';
                                fjs.parentNode.insertBefore(js, fjs);
                        }(document,'script','facebook-jssdk'));
                        </script>
                        ";

                return $fbJsSdk;

                }#function

        #涵式說明:
        #橫列的fb按贊與分享
        #回傳的結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$reuslt["error"],執行不正常結束的錯訊息陣列.
        #$result["function"],當前執行的函式名稱.
        #$result["content"],fb按贊語法.
        #必填的參數:
        #$conf["webYouLike"],字串,為想要按讚的網頁。
        #$conf["webYouLike"]="";
        #可省略的參數:
        #$conf["width"],字串,為所佔頁面的寬度,可省略,預設為"100%"。
        #$conf["width"]="";
        #$conf["showFaces"],字串,是否顯示人物頭像,可省略,預設爲"true"
        #$conf["showFaces"]="";
        #$conf["action"],字串,是按讃"like"還是推薦"recommend",預設為"like"
        #$conf["action"]="like";
        #$conf["share"],字串,是否要開啟分享的功能,預設為"true"要開啟,"false"為不開啟.
        #$conf["share"]="true";
        #$conf["buttonSize"],字串,按鈕的大小,預設為"small",大一點則為"large".
        #$conf["buttonSize"]="small";
        #$conf["layout"],字串,呈現的版行,預設為"standard","box_count"為直的按鈕外沒有文字,"button_count",為橫的按鈕外沒有文字,"button"為僅顯示按鈕沒有計數與按鈕外的文字.
        #參考資料:
        #https://developers.facebook.com/docs/reference/plugins/like/
        function LikeButton($conf){

                #初始化要回傳的結果
                $result=array();

                #設置當其函數名稱
                $result["function"]=__FUNCTION__;

                #初始化按讃的fb語法
                $result["content"]="";

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){

                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("webYouLike");
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["variableCheck::checkArguments"]f["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("send","width","showFaces","action","share","buttonSize","layout");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string","string");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("true",null,"true","like","true","small","standard");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查參數失敗
                if($checkArguments["status"]=="false"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #涵式說明:
                #建立匯入fb js sdk的語法
                #回傳結果:
                #$result,匯入js語法的語法
                #必填參數:
                #無
                #可省略參數:
                #無
                $result["content"]=$result["content"].fb::importFbJsSdk();

                #如果寬度有設置
                if(isset($conf["width"])){

                        #設置寬度
                        $conf["width"]="data-width=\"".$conf["width"]."\"";

                        }#if end

                #反之
                else{

                        #設為空字串
                        $conf["width"]="";

                        }#esle end

                #按讃的語法
                $result["content"]=$result["content"]."<div class=\"fb-like\" ".$conf["width"]." data-href=\"".$conf["webYouLike"]."\" data-layout=\"".$conf["layout"]."\" data-action=\"".$conf["action"]."\"  data-size=\"".$conf["buttonSize"]."\" data-show-faces=\"".$conf["showFaces"]."\" data-share=\"".$conf["share"]."\"></div>";

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function LikeButton end

        #涵式說明:
        #直列的fb按贊與分享
        #回傳的結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$reuslt["error"],執行不正常結束的錯訊息陣列.
        #$result["function"],當前執行的函式名稱.
        #$result["content"],html5的fb按贊語法.
        #必填的參數:
        #$conf["webYouLike"],字串,為想要按讚的網頁。
        #$conf["webYouLike"]="";
        #可省略的參數:
        #$conf["width"],字串,為所佔頁面的寬度,可省略,預設為"100%"。
        #$conf["width"]="";
        #$conf["showFaces"],字串,是否顯示人物頭像,可省略,預設爲"true"
        #$conf["showFaces"]="";
        #$conf["type"],字串排版類型,預設為"button_count"亦即橫的,"box_count"則為直的.
        #$conf["type"]="button_count";
        #$conf["action"],字串,是按讃"like"還是推薦"recommend",預設為"like"
        #$conf["action"]="like";
        #參考資料:
        #https://developers.facebook.com/docs/reference/plugins/like/
        function LikeButtonForMobile($conf){

                #初始化要回傳的結果
                $result=array();

                #設置當其函數名稱
                $result["function"]=__FUNCTION__;

                #初始化按讃的fb語法
                $result["content"]="";

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){

                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("webYouLike");
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["variableCheck::checkArguments"]f["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("send","width","showFaces","type","action");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("true",null,"true","button_count","like");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查參數失敗
                if($checkArguments["status"]=="false"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #匯入fb sdk
                #涵式說明:
                #建立匯入fb js sdk的語法
                #回傳結果:
                #$result,匯入js語法的語法
                #必填參數:
                #無
                #可省略參數:
                #無
                $result["content"]=$result["content"].fb::importFbJsSdk();

                #如果寬度有設置
                if(isset($conf["width"])){

                        #設置寬度
                        $conf["width"]="data-width=\"".$conf["width"]."\"";

                        }#if end

                #反之
                else{

                        #設為空字串
                        $conf["width"]="";

                        }#esle end

                #按讃的語法
                $result["content"]=$result["content"]." <div class=\"fb-like\" "."data-href=\"".$conf["webYouLike"]."\" data-layout=\"".$conf["type"]."\" data-action=\"".$conf["action"]."\" data-share=\"true\" "."data-send=\"".$conf["send"]."\" ".$conf["width"]." data-show-faces=\"".$conf["showFaces"]."\" "."></div>";

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function LikeButtonForMobile end

        /*
        #涵式說明:
        #fb傳送含特定網址的訊息給別人
        #回傳的結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$reuslt["error"],執行不正常結束的錯訊息陣列.
        #$result["function"],當前執行的函式名稱.
        #$result["content"],語法.
        #必填的參數:
        #$conf["webYouSend"],字串,為想要按讚的網頁。
        $conf["webYouSend"]="";
        #參考資料:
        #https://developers.facebook.com/docs/plugins/send-button
        */
        function sendLink($conf){

                #初始化要回傳的結果
                $result=array();

                #設置當其函數名稱
                $result["function"]=__FUNCTION__;

                #初始化send的fb語法
                $result["content"]="";

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){

                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("webYouSend");
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["variableCheck::checkArguments"]f["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("send","width","showFaces","type","action");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("true","100%","true","button_count","like");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查參數失敗
                if($checkArguments["status"]=="false"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #匯入fb sdk
                #涵式說明:
                #建立匯入fb js sdk的語法
                #回傳結果:
                #$result,匯入js語法的語法
                #必填參數:
                #無
                #可省略參數:
                #無
                $result["content"]=$result["content"].fb::importFbJsSdk();

                #設置要傳送的網址
                $result["content"]=$result["content"]."<div class=\"fb-send\" data-href=\"".$conf["webYouSend"]."\"></div>";

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function sendLink end

        /*
        #函數說明:
        #嵌入臉書的粉絲頁面.
        #必填參數:
        #$conf["pageUrl"],字串,粉絲專頁的網址.
        $conf["pageUrl"]="";
        #可省略參數:
        #$conf["pageName"],字串要顯示的粉絲頁名稱,預設為"https://www.facebook.com/"後面的內容
        #$conf["pageName"]="";
        #$conf["smallHeader"],字串,是否要使用小型的頁首,預設為"false"不使用,"true"代表要使用.
        #$conf["smallHeader"]="";
        #$conf["hideCover"],字串,是否要隱藏頁首,預設為"false",不隱藏,"true"代表要隱藏.
        #$conf["hideCover"]="";
        #$conf["showFace"],字串,是否要顯示人物的大頭貼,預設為"true"要顯示,"false"代表不顯示.
        #$conf["showFace"]="";
        #$conf["class"],字串陣列,要套用的css類別.
        #$conf["class"]=array();
        #參考資料:
        #page-plugin=>https://developers.facebook.com/docs/plugins/page-plugin
        */
        function embedFeeds(&$conf){

                #初始化要回傳的結果
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果沒有參數
                if(func_num_args()==0){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"]="函數".$result["function"]."需要參數";

                        #回傳結果
                        return $result;

                        }#if end

                #取得參數
                $result["argu"]=$conf;

                #如果 $conf 不為陣列
                if(gettype($conf)!=="array"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf===null){

                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";

                                }#if end

                        #回傳結果
                        return $result;

                        }#if end

                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填寫的參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("pageUrl");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                $conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("smallHeader","hideCover","showFace","class","pageName");
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("smallHeader","hideCover","showFace","class","pageName");;
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","array","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array("false","false","true",null,null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料來源:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查參數失敗
                if($checkArguments["status"]==="false"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #如果檢查參數不通過
                if($checkArguments["passed"]==="false"){

                        #設置執行失敗
                        $result["status"]="false";

                        #設置執行錯誤訊息
                        $result["error"]=$checkArguments;

                        #回傳結果
                        return $result;

                        }#if end

                #如果 $conf["pageName"] 不存在
                if(!isset($conf["pageName"])){

                        #取得踢除 $conf["pageUrl"] 的 https://www.facebook.com/ 的內容
                        #函式說明:
                        #將字串特定關鍵字與其前面的內容剔除
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["error"],錯誤訊息陣列.
                        #$result["warning"],警告訊息鎮列.
                        #$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
                        #$result["function"],當前執行的函數名稱.
                        #$result["oriStr"],要處理的原始字串內容.
                        #$result["content"],處理好的的字串內容.
                        #必填的參數:
                        $conf["stringProcess::delStrBeforeKeyWord"]["stringIn"]=$conf["pageUrl"];#要處理的字串.
                        $conf["stringProcess::delStrBeforeKeyWord"]["keyWord"]="https://www.facebook.com/";#特定字串.
                        $delStrBeforeKeyWord=stringProcess::delStrBeforeKeyWord($conf["stringProcess::delStrBeforeKeyWord"]);
                        unset($conf["stringProcess::delStrBeforeKeyWord"]);

                        #如果處理字串失敗
                        if($delStrBeforeKeyWord["status"]==="false"){

                                #設置執行失敗
                                $result["status"]="false";

                                #設置執行錯誤訊息
                                $result["error"]=$delStrBeforeKeyWord;

                                #回傳結果
                                return $result;

                                }#if end

                        #如果前戳字串不存在
                        if($delStrBeforeKeyWord["founded"]==="false"){

                                #設置執行失敗
                                $result["status"]="false";

                                #設置執行錯誤訊息
                                $result["error"]=$delStrBeforeKeyWord;

                                #設置錯誤訊息
                                $result["error"][]="粉絲頁前戳字串「https://www.facebook.com」不存在";

                                #回傳結果
                                return $result;

                                }#if end

                        #取得粉絲團的名稱
                        $conf["pageName"]=$delStrBeforeKeyWord["content"];

                        #如果粉絲頁面含有「/」,則要進行處理
                        #函式說明:
                        #將字串特定關鍵字與其後面的內容剔除
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["error"],錯誤訊息陣列.
                        #$result["warning"],警告訊息鎮列.
                        #$result["founded"],有無找到定字串"true"代表有,"false"代表沒有.
                        #$result["function"],當前執行的函數名稱.
                        #$result["oriStr"],要處理的原始字串內容.
                        #$result["content"],處理好的的字串內容.
                        #必填的參數:
                        $conf["stringProcess::delStrAfterKeyWord"]["stringIn"]=$conf["pageName"];#要處理的字串.
                        $conf["stringProcess::delStrAfterKeyWord"]["keyWord"]="/";#特定字串.
                        $delStrAfterKeyWord=stringProcess::delStrAfterKeyWord($conf["stringProcess::delStrAfterKeyWord"]);
                        unset($conf["stringProcess::delStrAfterKeyWord"]);

                        #如果處理字串失敗
                        if($delStrAfterKeyWord["status"]==="false"){

                                #設置執行失敗
                                $result["status"]="false";

                                #設置執行錯誤訊息
                                $result["error"]=$delStrBeforeKeyWord;

                                #回傳結果
                                return $result;

                                }#if end

                        #取得粉絲團的名稱
                        $conf["pageName"]=$delStrAfterKeyWord["content"];

                        }#if end

                #匯入fb js sdk
                $fbJsSdk=fb::importFbJsSdk();

                #放置臉書塗鴉牆
                $feeds="
                        <div
                        class=\"fb-page\"
                        data-href=\"".$conf["pageUrl"]."\"
                        data-tabs=\"timeline\"
                        data-small-header=\"".$conf["smallHeader"]."\"
                        data-adapt-container-width=\"true\"
                        data-hide-cover=\"".$conf["hideCover"]."\"
                        data-show-facepile=\"".$conf["showFace"]."\"
                        >
                                <blockquote
                                cite=\"https://www.facebook.com/QBPWCF/\"
                                class=\"fb-xfbml-parse-ignore\"
                                >
                                        <a
                                        href=\"".$conf["pageUrl"]."\"
                                        >
                                                ".$conf["pageName"]."
                                        </a>
                                </blockquote>
                        </div>
                        ";

                #設置要回傳的語法
                $result["content"]=$fbJsSdk."\r\n".$feeds;

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#functino embedFeeds end

        }#class fb end

?>