正式釋出
此區塊可以擷取台北市教育局公告的json檔,並即時呈現公告。
其中 $limit 可以自訂呈現篇數
若有不需要的項目,請自行註記 $url_arr 即可(在最左邊加上//)。
$limit = 5; |
//不需要的公告,請自行註解掉(在最左邊加上//) |
$url_arr [ '一般公告' ] = 'https://www.doe.gov.taipei/OpenData.aspx?SN=A53E0BA10DD4457E' ; |
$url_arr [ '幼兒園' ] = 'https://www.doe.gov.taipei/OpenData.aspx?SN=D5AD2C5A7A85502C' ; |
$url_arr [ '國小' ] = 'https://www.doe.gov.taipei/OpenData.aspx?SN=A06275FDC88942AB' ; |
$url_arr [ '國中' ] = 'https://www.doe.gov.taipei/OpenData.aspx?SN=2376933CA35541CB' ; |
$url_arr [ '高中職' ] = 'https://www.doe.gov.taipei/OpenData.aspx?SN=8FDEB38F0F17B561' ; |
$url_arr [ '終身教育' ] = 'https://www.doe.gov.taipei/OpenData.aspx?SN=711FA93AC6D09A71' ; |
if (function_exists( 'curl_init' )) { |
if (! file_exists (XOOPS_ROOT_PATH . "/modules/tadtools/easy_responsive_tabs.php" )) { |
redirect_header( "index.php" , 3, '需要最新版TadTools' ); |
} |
include_once XOOPS_ROOT_PATH . "/modules/tadtools/easy_responsive_tabs.php" ; |
$responsive_tabs = new easy_responsive_tabs( '#tpNewsTab' ); |
$responsive_code = $responsive_tabs ->rander(); |
$tabs = $tab_content = $msg = '' ; |
foreach ( $url_arr as $tab_title => $url ) { |
$ch = curl_init(); |
curl_setopt( $ch , CURLOPT_SSL_VERIFYHOST, 0); |
curl_setopt( $ch , CURLOPT_SSL_VERIFYPEER, 0); |
curl_setopt( $ch , CURLOPT_URL, $url ); |
curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1); |
curl_setopt( $ch , CURLOPT_CONNECTTIMEOUT, 2); |
$data = curl_exec( $ch ); |
if ( $data === false) { |
$msg .= '<div>Curl 錯誤:' . curl_error( $ch ). '</div>' ; |
} else { |
curl_close( $ch ); |
$tabs .= "<li>$tab_title</li>" ; |
// echo $data; |
if ( $data ) { |
if ( substr ( $data , 0, 3) == pack( "CCC" , 0xef, 0xbb, 0xbf)) { |
$data = substr ( $data , 3); |
} |
$news_arr = json_decode( $data , true); |
// echo json_last_error() . "\n"; // 4 |
// echo json_last_error_msg() . "\n"; // Syntax error, malformed JSON |
$all_news = array (); |
$i = 0; |
if ( $news_arr ) { |
foreach ( $news_arr as $news ) { |
if (isset( $news [ '發布日期' ]) and isset( $news [ 'Source' ]) and isset( $news [ 'title' ]) and isset( $news [ '發布單位' ])) { |
$date = $news [ '發布日期' ]; |
$all_news [ $date ][ 'link' ] = $news [ 'Source' ]; |
$all_news [ $date ][ 'title' ] = $news [ 'title' ]; |
$all_news [ $date ][ 'unit' ] = $news [ '發布單位' ]; |
} |
$i ++; |
} |
krsort( $all_news ); |
$i = 0; |
$tab_content .= " |
<div> |
<table class = 'table table-bordered table-condensed table-hover table-striped' > |
<tr> |
<th>標題</th> |
<th>發布日期</th> |
<th>發布機關</th> |
</tr>"; |
foreach ( $all_news as $date => $news ) { |
$date = substr ( $date , 0, 10); |
$tab_content .= " |
<tr> |
<td>{ $date }</td> |
<td><a href= '{$news[' link ']}' target= '_blank' >{ $news [ 'title' ]}</a></td> |
<td>{ $news [ 'unit' ]}</td> |
</tr>"; |
$i ++; |
if ( $i >= $limit ) { |
break ; |
} |
} |
$tab_content .= " |
</table> |
</div>"; |
} else { |
var_export( $news_arr ); |
$msg .= "<div>無法解析 {$url} 的資料</div>" ; |
} |
} else { |
$msg .= "<div>抓不到 {$url} 的資料</div>" ; |
} |
} |
} |
if ( $msg ) { |
echo $msg ; |
} else { |
echo $responsive_code . |
'<div id= "tpNewsTab" > |
<ul class = "resp-tabs-list vert" > |
' . $tabs . ' |
</ul> |
<div class = "resp-tabs-container vert" > |
' . $tab_content . ' |
</div> |
</div>'; |
} |
} else { |
echo "請安裝 CURL" ; |
} |
PHP腳本
上中
正式釋出