一起草最新网址_日韩一区二区麻豆国产_91视频婷婷_日本一区二区视频在线_日韩激情一区二区三区_国产另类第一区_成人免费在线播放视频_亚洲永久精品ww.7491进入_久久这里有精品视频_久久精品一级片_日韩av在线网页_波多野结衣不卡视频

基于PHP和AJAX創建RSS聚合器_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:php分頁類
<?php // // ---------------------------------------------------------------------- // | 分頁類                                | //

  想象使用一個簡單HTML文件來把一個請求發送到一個服務器端腳本,收到一個基于該請求的定制XML文件,然后把它顯示給用戶而幾乎不需要刷新瀏覽器!本文作者將同你一起探討怎樣在普通Web應用程序中聯合PHP和AJAX技術來創建實時的數據傳輸而不需要進行瀏覽器刷新。

  盡管本文所使用的是PHP語言,但是請記住任何服務器端語言都會正常工作。為了理解本文,我假定你基本理解JavaScript和PHP或一類似服務器端語言。

  本文示例使用AJAX來把一請求從一個RSS饋送發送到一定制的PHP對象。該PHP對象復制一份在本地服務器上的該饋送并返回這一路徑。該請求對象收到這一路徑,分析它,并且把數據以HTML形式顯示給用戶。這聽起來涉及很多步驟,其實它僅由4個小文件組成。之所以使用了4個小文件,是為了平衡它們各自特定的力量而使整個系統的處理極富效率性。

  有些讀者可能會問,為什么你要創建在本地服務器上的饋送的一個副本而不是簡單分析最原始的饋送。原因是,這樣以來可以允許繞過XML HTTP Request對象所強加的跨域限制。后面,我還會解釋怎樣創建這個定制的PHP對象;但是首先,讓我們從表單創建開始。

  創建發出請求的表單

  你要做的第一事情是,在你的HTML的head標簽之間包括你可能想使用的JavaScript和任何CSS文件。我包括了一個式樣表來實現該聚合器的最后布局并用一個JavaScript文件來發出請求和進行饋送分析:

<link href="css/layout.css" rel="stylesheet" type="text/css" />
<script src="js/request.js"></script>

  下一步,創建一個表單,它針對你所選擇的一個RSS饋送發出請求。我創建的表單只包括一個輸入字段和一個提交該請求的按鈕。該請求的查詢是一個字符串,它由饋送輸入值和一個將在服務器端被校驗的口令字組成;作為一個示例,我使用了下面形式:
"password=mypassword

  該代碼在每次頁面加載之時發出一次請求;因此,如果頁面被刷新,現有的在該輸入域中的饋送串將在頁面加載時被請求。下面是一個表單數據的示例,連同一些div標簽用來顯示已分析的饋送的特定結點:

<body onload="javascript:makeRequest('request.php?request=' document.feedForm.feed.value '"password=mypassword');">
<form name="feedForm" method="post" action="javascript:makeRequest('request.php?request=' document.feedForm.feed.value '"password=mypassword');">
Enter a feed: <input type="text" name="feed" id="feed" size="20">
 <input type="submit" name="submit" value="Add Feed">
</form>
<div id="logo"></div>
<hr/>
<div id="copy"></div>
<div id="details"></div>
</body>

  我所創建的這三個div標簽是logo,copy和details,其中每一個都在布局樣式表中有一個與之相關聯的樣式。當我們分析饋送時將會用到它們,但是我們首先需要能夠存取我們所請求的饋送。這可以使用我前面所提到的PHP對象來完成。

  創建定制的PHP對象


  我用PHP創建了一個小型RSS類,它在本地服務器上創建一個請求饋送的副本,這樣它可以為我們稍后要創建的XML HTTP Request對象所存取。典型地,你不能跨域請求一個文件,這意味著你要請求的文件需要位于本地服務器上。這個類是一種解決跨域問題的辦法,因為它創建該饋送的一個副本,這個副本在本地服務器上被請求并且把本地路徑返回到該饋送,然后它由該Request對象來存取。

  這個類中唯一的方法是一個請求方法,它僅有一個指向所請求的RSS 饋送的URL的參數。然后,它通過rss的名字來檢查是否一目錄位于本地服務器上。如果不存在,就創建一個并把其權限模式設置為0666,這意味著該目錄可讀寫。當被設置為可讀的時,該目錄就可以在以后被存取;而當被設置為可寫的時,就可以把該饋送的一個副本寫向本地服務器上的目錄:

//如果不存在目錄就創建一個
$dir = "rss";
if(!is_dir($dir))
{
 mkdir($dir, 0666);
}

  注意

  在一臺Windows機器上,對于PHP 4.2.0及以上版本中模式設置是不被要求的。但是,如果它存在的話,它將被忽略;因此,我保留了它,以備該工程被遷移到一臺UNIX或Linux服務器上。

  在把饋送復制到該服務器前,我們需要一個唯一的文件名。我對這個完整的URL使用了md5加密方法以確保所有饋送的名字是唯一的。通過這個新的文件名,它可以連接一個描述指向該文件的目錄的字符串;這將在創建該饋送的副本時使用:

//創建唯一的命名
$file=md5($rss_url);
$path="$dir/$file.xml";

  通過使用被定義在上面的路徑和到原始的被請求的饋送的URL的參考,現在我們能創建該文件的一個副本。最后,把該路徑返回到該新文件,作為對該請求的響應:

//復制饋送到本地服務器
copy($rss_url,"$path");
return $path;
Following is the small, yet powerful RSS class in its entirety:
<?php
class RSS
{
 function get($rss_url)
 {
  if($rss_url != "")
  {
   //如果不存在目錄就創建一個
   $dir = "rss";
   if(!is_dir($dir))
   {
    mkdir($dir, 0666);
   }
   // 創建一個唯一的名字
   $file = md5($rss_url);
   $path = "$dir/$file.xml";
   //復制饋送到本地服務器
   copy($rss_url, "$path");
   return $path;
  }
 }
}
?>

  為了存取該PHP類中的方法,需要有一個請求文件來擔當到該類的一個接口,這也正是我們正在請求的文件。這個文件首先驗證從該請求查詢的一口令變量,或者返回一條指定該請求者不是一名經授權的用戶的消息,或者用指向RSS饋送(該饋送在由請求方法處理后被復制到本地服務器)的路徑作出響應。為了響應該RSS饋送,需要包含這個RSS對象并把它實例化,并且需要通過使用被請求的饋送的URL作為一參數來激活請求方法:

<?
if($password == "mypassword")
{
 require_once('classes/RSS.class.php');
 $rss = new RSS();
 echo $rss->get($request);
}
else
{
 echo "You are an unauthorized user";
}
?>

  GET/POST與AJAX相結合

  為了POST請求,我們首先需要創建該請求對象。如果你沒有創建請求對象的經驗,那么可以讀一下我的文章《How To Use AJAX》或簡單地研究一下本文的示例源代碼。一旦創建該請求對象,就可以調用sendFeed方法并傳遞由表單所創建的URL:

function sendFeed(url){
 post.onreadystatechange = sendRequest;
 post.open("POST", url, true);
 post.send(url);
}

  一旦收到來自于PHP對象的響應并被正確加載,則對與該響應相應的本地文件發出另一個請求。在這種情況中,post.responseText提供給我們該新文件的路徑:

function sendRequest(){
 if(checkReadyState(post)){
  request = createRequestObject();
  request.onreadystatechange = onResponse;
  request.open("GET", post.responseText, true);
  request.send(null);
 }
}

  分析響應

  由于RSS饋送之間的區別,分析響應具有一定的挑戰性。一些含有包含標題和描述結點的圖像,而其它則沒有。因此,當我們分析回饋時,我們需要做一點檢查來譯解它是否包括一圖像。如果它包括一圖像,我們就可以,與該饋送的標題和鏈接一起,在image div標簽中顯示該圖像:

var _logo = "";
var _title = response.getElementsByTagName('title')[0].firstChild.data;
var _link = response.getElementsByTagName('link')[0].firstChild.data;;
_logo = "<a href='" _link "' target='_blank'>" _title "</a><br/>";
if(checkForTag(response.getElementsByTagName('image')[0]))
{
 var _url = response.getElementsByTagName('url')[0].firstChild.data;
 _logo = "<img src='" _url "' border='0'><br/>"
}
document.getElementById('logo').innerHTML = _logo;

  我們不僅必須檢查每個圖像以顯示它,當遍歷饋送中所有的項時我們還需要對之進行檢查。因為如果存在一個圖像,那么所有另外的標題和鏈接結點索引都將無法正常工作。因此,當發現圖像標簽時,我們應該通過在每一次遍歷中增加索引值( 1)來調整標題和鏈接結點的索引:

if(checkForTag(response.getElementsByTagName('image')[0]) "" i>0){
 var _title=response.getElementsByTagName('title')[i 1].firstChild.data;
 var _link=response.getElementsByTagName('link')[i 1].firstChild.data;
}
else{
 var _title =response.getElementsByTagName('title')[i].firstChild.data;
 var _link = response.getElementsByTagName('link')[i].firstChild.data;
}

  你可以使用checkForTag方法來檢查是否存在特定的標簽:

function checkForTag(tag){
 if(tag != undefined) {
  return true;
 }
 else{
  return false;
 }
}

  存在許多種進行饋送分析的可能性。例如,你可以把項賦到類別上并使得該類別可折迭,這樣用戶就可以對其想觀看的內容進行選擇。作為一個示例,我使用日期來對項進行分類-這可以通過譯解是否針對一個特定項的pubDate不同于前一個項的pubDate并且相應地顯示一新的日期來實現:

if(i>1){
 var previousPubDate = response.getElementsByTagName('pubDate')[i-1].firstChild.data;
}
if(pubDate != previousPubDate || previousPubDate == undefined){
 _copy = "<div id='detail'>" pubDate "</div><hr align='left' width='90%'/>";
}
_copy = "<a href=\"javascript:showDetails('" i "');\">" _title "</a><br/><br/>";
document.getElementById('copy').innerHTML = _copy;

  注意,上面的最后一部分是showDetails方法,它用于當一用戶從一個饋送中選擇一特定的項時進行細節顯示。這個方法有一個參數(項索引值),這個索引用于發現在該饋送中details結點的索引:

function showDetails(index){
 document.getElementById('details').innerHTML = response.getElementsByTagName('description')[index].firstChild.data;
}

  結論

  使用AJAX發送查詢字符串到一個服務器端腳本并檢索一個基于該串的定制響應,這對于任何web開發者都有實現的可能。這樣以來,你的下一個web應用程序也將會充滿了新的可能性。

分享:用php實現簡單的滑動菜單
<style> table {font-size = 9pt} td {height = 20px} </style> <body> <span id="menus"></span> <span id="view"&g

來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
相關PHP教程
91搞黄在线观看| 手机成人av在线| 91麻豆免费观看| 黄页网站在线看| 久久久久久国产| 91亚洲精品乱码久久久久久蜜桃| 又黄又爽的网站| 国内免费久久久久久久久久久| 国产在线麻豆精品观看| 99日在线视频| 97精品国产97久久久久久| 国产精品一区二区男女羞羞无遮挡| 五月激情五月婷婷| 久久久这里只有精品视频| 国产成人精品亚洲日本在线桃色| 91黄色免费视频| 成人av.网址在线网站| 国产精品视频免费| 国产亚洲精品久久777777| 国产精品揄拍500视频| 亚洲欧美日韩在线| 6—12呦国产精品| 熟妇人妻va精品中文字幕 | 不卡中文字幕在线观看| 91av在线精品| 亚洲三级在线免费观看| 一级淫片免费看| 天天操天天爽天天射| 欧美成人网在线| 中文字幕第一页久久| 天天综合网入口| 免费一级特黄特色毛片久久看| 欧美日韩高清区| 亚洲男人的天堂一区二区| 一级特黄aaa大片| 在线免费黄色小视频| 日本中文字幕成人| 欧美午夜宅男影院| 日本美女一区二区三区视频| 国产在线综合视频| 91香蕉视频网址| 久久久成人精品| 综合av第一页| 手机看片一区二区| 小泽玛利亚一区| 欧美一级片免费播放| 国产精品成人v| 4438成人网| 久久久久一区二区三区四区| 亚洲无码精品在线播放| 中文字幕欧美视频| 一区二区三区四区欧美日韩| 久久久久久国产免费| 91国产丝袜在线播放| 成人免费视频一区| a v视频在线观看| 9191在线视频| 日本a在线天堂| 国产欧美一区二区三区在线| 亚洲视频在线观看免费| 亚洲一区二区欧美日韩| 天天爽夜夜爽夜夜爽| 精品99久久久久成人网站免费| 国产视频在线观看网站| 亚洲自拍偷拍福利| 欧美xxxx做受欧美.88| 欧美日韩亚洲综合一区二区三区| 91网站最新网址| 亚洲色图 校园春色| 中文字幕一区二区视频| 欧美日韩国产成人在线91| 欧美综合一区二区| 91精品在线免费观看| 亚洲综合在线观看视频| 国产精品久久久久婷婷| 日韩国产在线一| 欧美一级淫片免费视频黄| av在线无限看| 免费在线成人av| 国产综合久久久久久| 久久久久久91| 日韩高清中文字幕| 欧美日本韩国一区二区三区视频| 国产精品女人毛片| 国产伦精品一区二区三区免费 | 天天综合网在线| 国产片高清在线观看| 可以免费看的av毛片| 午夜精品一区二区三级视频| 日韩av在线综合| 青青在线视频免费观看| 亚洲春色综合另类校园电影| 91高清免费在线观看| 久久99亚洲精品| 日韩在线视频二区| 亚洲欧美中文另类| 精品一区二区三区四区| 日韩精品一区二区三区视频 | 日韩av一卡二卡| 亚洲精品国产免费| 欧美一区二区视频免费观看| 色8久久精品久久久久久蜜| 午夜精品久久久久久久蜜桃app| 亚洲精品高清在线观看| 亚洲欧美国产77777| 亚洲欧美一区二区久久| 亚洲图片激情小说| 综合久久国产九一剧情麻豆| 自拍偷拍国产精品| 亚洲综合一区在线| 亚洲一区在线看| 亚洲一区二区精品3399| 亚洲一区日韩精品中文字幕| 亚洲综合无码一区二区| 天天综合网 天天综合色| 狠狠躁天天躁日日躁欧美| 欧美性受极品xxxx喷水| 欧美一区二区三区日韩视频| 精品卡一卡二卡三卡四在线| 亚洲精品v欧美精品v日韩精品| 国产一区二区成人| 久久精品久久久久久| 97在线日本国产| 91精品久久久久| 国产aⅴ精品一区二区三区黄| 五月天亚洲综合情| 青青草原成人网| 亚洲成人福利视频| 337人体粉嫩噜噜噜| 日韩色图在线观看| 国产女优在线播放| 日韩在线观看视频一区二区三区| 国产一区欧美二区| 972aa.com艺术欧美| 一区二区三区精密机械公司| 91精品国产综合久久精品性色| 欧美一区二区在线播放| 亚洲国产精品一区二区久| 久久久久久国产三级电影| 国产精品色悠悠| 中文字幕色一区二区| 欧美日韩一区二区三区69堂| 在线观看亚洲大片短视频| 久久精品五月天| 国内精品不卡在线| 国产欧美综合在线| 9191久久久久久久久久久| 一本色道久久88精品综合| 久久理论片午夜琪琪电影网| 精品久久久久久中文字幕动漫| 男人添女荫道口女人有什么感觉| 丁香花在线影院观看在线播放| 波多野结衣电影免费观看| 久久久午夜影院| 日韩中文字幕av电影| 亚洲国产精品成人综合| 日韩精品影音先锋| 国产精品一区二区久久久| 久久手机在线视频| av在线免费播放网址| 人妻无码中文字幕免费视频蜜桃| 国产三级一区二区三区| 日韩一本二本av| 日本人成精品视频在线| 亚洲免费视频播放| 粉嫩av懂色av蜜臀av分享| 国产美女www爽爽爽视频| 欧美国产一区视频在线观看| 精品国产乱码久久久久久蜜臀| 成人中文字幕+乱码+中文字幕| 青青在线视频免费观看| 在线观看欧美一区二区| 久久久久久一级片| 国产精品888| 日本欧美加勒比视频| 亚洲欧美日韩久久| 欧美专区国产专区| 国产91色在线观看| 丰满少妇在线观看bd| 日韩欧美成人激情| 鲁丝片一区二区三区| 九九热最新地址| 99久久国产综合精品女不卡| 日韩精品福利网站| 在线看视频不卡| 国产成人无码av| 欧美日韩国产综合视频在线观看中文| 国产999精品| 成人一区二区三区仙踪林| 久久99精品网久久| 欧美亚洲禁片免费| 成人在线观看av| 日韩毛片无码永久免费看| 成人激情av网| 欧美猛交ⅹxxx乱大交视频| 国产大片中文字幕| 成人av在线网| 操91在线视频| 亚洲熟女乱综合一区二区| 成人丝袜视频网| 91精品国产高清久久久久久91| 真实乱偷全部视频| 99久久伊人久久99| 日本不卡高字幕在线2019| 性猛交ⅹxxx富婆video| 国产精品高潮久久久久无| 91网站免费看| 一级黄色免费网站| 欧美久久一区二区| 久久综合色视频| 日韩av电影天堂| 97高清免费视频| 秋霞欧美一区二区三区视频免费 | 日韩免费成人av| 亚洲欧美在线视频| 精品欧美国产一区二区三区不卡| 中文字幕日本视频| 97精品免费视频| 欧美88888| 中文字幕国产一区| 国产精品视频一区国模私拍 | 久操网在线观看| 国产乱理伦片在线观看夜一区| 国产精品久久久久久久久 | 国产性生交xxxxx免费| 国产一区二区福利| 国产精品视频播放| 黑人精品无码一区二区三区AV| 日韩欧美你懂的| 亚洲精品一区二区18漫画| 国产片一区二区| 久久天天狠狠| 久久一本综合频道| 欧美在线视频播放| 一级成人黄色片| 亚洲视频在线免费观看| 久久无码人妻精品一区二区三区| 亚洲高清免费观看高清完整版在线观看| 天堂√在线观看一区二区| 亚洲色图欧美视频| 国产精品亚发布| www.av日韩| 欧洲美女7788成人免费视频| 免费av中文字幕| 欧美精品在线网站| 亚欧视频在线观看| 久久综合色影院| 久久久美女视频| 日韩在线视频观看正片免费网站| 五月婷婷一区二区| 色婷婷av一区二区三区久久| 国产大片aaa| 日韩中文字幕亚洲| 亚洲天堂视频网站| 欧美成人免费在线视频| 久久久久久久久影院| 久久久久久久久久亚洲| 中文字幕资源网| 国产欧美精品日韩| 免费精品视频在线| 色播亚洲婷婷| 国产精品免费人成网站| 欧美综合在线播放| 五月激情综合网| 69xxx免费视频| 精品国产3级a| 欧美精品xxxxx| 国内精品一区二区三区| 日批视频免费观看| 国产区亚洲区欧美区| 精品一区二区三区在线播放视频| 欧美资源一区| 18成人在线观看| 超碰人人cao| 亚洲天堂久久av| 国产av一区二区三区| 黄色一区三区| 国产精品天天看| 国产精品视频九色porn| 国产中文字幕日韩| 国产精品一二二区| www.超碰com| 欧美岛国在线观看| 天天天天天天天干| 久久99精品久久久久久三级| 中文字幕日韩精品一区| www.av欧美| 欧美国产日韩一区二区在线观看 | 成人欧美一区二区三区视频网页| av女优在线播放| 亚洲另类在线视频| 精品国产aⅴ一区二区三区东京热| 亚洲国产精品推荐| 自拍偷拍18p| 国产狼人综合免费视频| 国产高清视频一区| 黄色片网址在线观看| 欧美性猛片aaaaaaa做受| 午夜精品一区二区三级视频| 国产亚洲日本欧美韩国| 亚洲高清视频在线播放| 91九色蝌蚪成人| 中文字幕在线不卡国产视频| 亚洲男女在线观看| 欧美另类极品videosbestfree| 日韩成人av影视| 国产一线二线三线女| 欧美精品久久久久久久久老牛影院| 日韩在线视频免费看| 国产成人精品视频在线观看| 99久久久国产精品| 亚洲一二三四五| 蜜月aⅴ免费一区二区三区| 视频在线观看一区二区三区| 日韩免费一区二区三区| 在线观看成人免费视频| 四虎永久免费在线| 国产精品久久久久久久久久久久久久| 久久久高清一区二区三区| 亚洲女人在线观看| zzjj国产精品一区二区| 国产一区二区三区美女| 国产wwwxx| 亚洲日本成人网| 精品一区二区三区日韩| 午夜大片在线观看| 国内精品久久久久伊人av| 国产乱一区二区| 人妻在线日韩免费视频| 欧美大片在线看免费观看| 9色porny自拍视频一区二区| 受虐m奴xxx在线观看| 国产主播欧美精品| 天天色综合天天| 一个人看的www日本高清视频| 国产精品一色哟哟| 少妇高潮 亚洲精品| 99视频精品全部免费在线| 欧美日韩理论片| 日韩av片电影专区| 亚洲一级二级三级在线免费观看| 亚洲 日本 欧美 中文幕| 日韩欧美猛交xxxxx无码| 在线电影欧美日韩一区二区私密| 成人免费毛片aaaaa**| 亚洲午夜福利在线观看| 国产欧美日韩一区| 亚洲国产高潮在线观看| 久久综合亚州| 波多野结衣视频播放| 韩国成人av| 日韩女优毛片在线| 国产成人精品一区二区三区四区 | 国产精品久久久久久av下载红粉| 1区2区3区欧美| 一道本在线视频| 日韩精品一区中文字幕| 日韩免费视频在线观看| 亚洲男同性视频| 精品欧美一区二区精品少妇| 毛片av免费在线观看| 91免费国产视频| 欧美卡1卡2卡| av一区二区三区在线| 久久亚洲av午夜福利精品一区| 欧美在线观看www| 国产成人精品一区二区三区| 精品视频在线视频| 国产不卡一区视频| 波多野结衣大片| 中文乱码人妻一区二区三区视频| 成人中文字幕在线观看| 日韩av一区在线| 欧美国产精品中文字幕| 天堂免费在线视频| 亚洲av无码久久精品色欲| 亚洲国产精品一区二区第四页av| 中文字幕亚洲自拍| 91福利精品视频| www国产精品av| 特级毛片www| 中文字幕1234区| 宅男噜噜99国产精品观看免费| 日本久久久久久久久| 精品国产乱码久久久久久牛牛| 国产精品久久久久aaaa| 精品人妻一区二区三区四区不卡| 超碰97av在线| 999香蕉视频| 手机看片福利永久国产日韩| 欧美精品少妇videofree| 精品日韩成人av| 中文字幕在线不卡一区二区三区| 日本不卡123| 无码久久精品国产亚洲av影片| www..com.cn蕾丝视频在线观看免费版| 在线视频不卡国产| 国产二区不卡| 97精品国产97久久久久久免费 | 九九久久精品视频| 国产成人精品白浆久久69| 久久9999久久免费精品国产| 法国伦理少妇愉情| av网站在线观看不卡| 日韩av影视| 国产精品久久久久久久7电影| 九九九久久久久久| 中文字幕亚洲欧美一区二区三区 | 啊啊啊国产视频| 人妻少妇精品久久|