跳到主要內容

發表文章

目前顯示的是 10月, 2021的文章

寫一個用php解析youtube影片網址ID的function-教學撰寫:徐嘉裕Neil hsu

如果想要在自己開發的Xoops模組中播放youtube影音,就必須解出youtube影片網址串後面的ID才行,然後套入到iframe中,youtube影片網址目前有兩種格式 1、瀏覽器網址有?v=變數值,像是https://www.youtube.com/watch?v= yeWbbzDDNAc  紅字即為影片ID 2、播放器滑鼠右鍵->複製影片網址,沒有?v=變數值,像是https://youtu.be/ yeWbbzDDNAc  紅字即為影片ID 所以function必須兩種格式網址都要能解出影片ID,以下為CODE部分 //youtube取得網址ID function function youtubeurl($url=""){ //解析youtube網址?v值 //網址類型:https://www.youtube.com/watch?v=zIE8htt4HLg $urlarr=parse_url($url); parse_str($urlarr['query'],$parr);      $vid=$parr['v'];  //解析複製網址後ID值 //網址類型:https://youtu.be/SfPeulcfbSI if(empty($vid)) $vid=end(preg_split("/\//",reset(preg_split("/\?/",$url)))); return $vid; } 使用範例 $url="https://www.youtube.com/watch?v=yeWbbzDDNAc"; 或是 $url="https://youtu.be/yeWbbzDDNAc"; 以上兩種格式都能解 echo $youtubbox="<iframe width='950' height='534' src='https://www.youtube.com/embed/". youtubeurl($url) ."' title='YouTube video player' frameborder='

XOOPS->mainfile.php自解網站路徑設定方法-教學撰寫:徐嘉裕Neil hsu

在Xoops根目錄底下有一個mainfile.php,其中一項設定 define('XOOPS_URL', 'http://www.example.com'); 這是設定Xoops網站網址的URL,設定值會套用到模組的XOOPS_URL及樣板<{$xoops_url}>變數,但如果網站要同時能用網址跟IP開啟,又要能開啟http及https網址,那就必須要修改一下XOOPS_URL的設定,改成下面這樣就行了 define('XOOPS_URL', $http . $_SERVER['HTTP_HOST' ]);    $http->會自動取得mainfile.php中$http變數值,依照來訪者輸入網址帶入http及https值, $_SERVER['HTTP_HOST']->取得來訪者輸入的 Host 名稱 這樣不管是IP,網址,WWW或沒有WWW,http及https都能全部開啟Xoops網站,最後如果網站是建在根目錄底層目錄,像是 http://www.example.com/webdate,吧網站目錄加在$_SERVER['HTTP_HOST']後面即可 define('XOOPS_URL', $http.$_SERVER['HTTP_HOST'].'/ webdate ');   最後在吧XOOPS_COOKIE_DOMAIN->也改為$_SERVER['HTTP_HOST'],這樣記錄登入資訊的COOKIE也會隨網址改變。 define('XOOPS_COOKIE_DOMAIN', $_SERVER['HTTP_HOST']); 這樣Xoops網站就什麼網址都能解也能登入,有需要的朋友參考看看 工作心得撰寫: 徐嘉裕 Neil hsu

分享一個jquery->scroll防止重複觸發防抖function-教學撰寫:徐嘉裕Neil hsu

使用jquery->scroll進行判斷取值時遇到頭痛的問題就是會重複觸發兩次,這樣會導致觸發後執行的function也跑兩次,輕者消耗CPU效能,嚴重的像是瀑布流相同內容輸出兩次,所以必須要有scroll的防抖機制才行(只取一次觸發值)。 這是原生的scroll code ,大家可以執行看看 $(window).scroll(function() {     alert($(window).scrollTop()); }); 只要滑鼠滾輪向下停住時就會發生兩次觸發,為了解決這問題透過G大神找到這個好用的scroll 防抖程式 //scroll防抖程式 var timeout = null; window.addEventListener('scroll', function() {     if(timeout !== null) clearTimeout(timeout);     timeout = setTimeout(function() {     var scrollTop =$(window).scrollTop();          //程式執行區            alert(scrollTop);     }.bind(this), 1000); }); 只需要吧工作function放在紅字的 程式執行區 即可,防抖程式會以setTimeout延遲1000毫秒為誤差範圍取最後一個觸發值,用這支程式來跑AJAX瀑布流資料也不會亂噴了,CPU消耗也減低很多,有需要的朋友可以參考看看。 工作心得撰寫: 徐嘉裕 Neil hsu