日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

利用PHP和AJAX創(chuàng)建RSS聚合器(2)_PHP教程

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

推薦:PHP初學(xué)者頭疼問(wèn)題總結(jié)
  文本關(guān)鍵字:程序設(shè)計(jì)/PHP/技巧   【1】頁(yè)面之間無(wú)法傳遞變量   get,post,session在最新的php版本中自動(dòng)全局變量是關(guān)閉的,所以要從上一頁(yè)面取得提交過(guò)來(lái)得變量要使用$_GET['foo'],

  創(chuàng)建定制的PHP對(duì)象

  我用PHP創(chuàng)建了一個(gè)小型RSS類,它在本地服務(wù)器上創(chuàng)建一個(gè)請(qǐng)求饋送的副本,這樣它可以為我們稍后要?jiǎng)?chuàng)建的XML HTTP Request對(duì)象所存取。典型地,你不能跨域請(qǐng)求一個(gè)文件,這意味著你要請(qǐng)求的文件需要位于本地服務(wù)器上。這個(gè)類是一種解決跨域問(wèn)題的辦法,因?yàn)樗鼊?chuàng)建該饋送的一個(gè)副本,這個(gè)副本在本地服務(wù)器上被請(qǐng)求并且把本地路徑返回到該饋送,然后它由該Request對(duì)象來(lái)存取。

  這個(gè)類中唯一的方法是一個(gè)請(qǐng)求方法,它僅有一個(gè)指向所請(qǐng)求的RSS 饋送的URL的參數(shù)。然后,它通過(guò)rss的名字來(lái)檢查是否一目錄位于本地服務(wù)器上。如果不存在,就創(chuàng)建一個(gè)并把其權(quán)限模式設(shè)置為0666,這意味著該目錄可讀寫(xiě)。當(dāng)被設(shè)置為可讀的時(shí),該目錄就可以在以后被存��;而當(dāng)被設(shè)置為可寫(xiě)的時(shí),就可以把該饋送的一個(gè)副本寫(xiě)向本地服務(wù)器上的目錄:

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

  注意

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

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

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

  通過(guò)使用被定義在上面的路徑和到原始的被請(qǐng)求的饋送的URL的參考,現(xiàn)在我們能創(chuàng)建該文件的一個(gè)副本。最后,把該路徑返回到該新文件,作為對(duì)該請(qǐng)求的響應(yīng):

//復(fù)制饋送到本地服務(wù)器
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 != "")
  {
   //如果不存在目錄就創(chuàng)建一個(gè)
   $dir = "rss";
   if(!is_dir($dir))
   {
    mkdir($dir, 0666);
   }
   // 創(chuàng)建一個(gè)唯一的名字
   $file = md5($rss_url);
   $path = "$dir/$file.xml";
   //復(fù)制饋送到本地服務(wù)器
   copy($rss_url, "$path");
   return $path;
  }
 }
}
?>

  為了存取該P(yáng)HP類中的方法,需要有一個(gè)請(qǐng)求文件來(lái)?yè)?dān)當(dāng)?shù)皆擃惖囊粋(gè)接口,這也正是我們正在請(qǐng)求的文件。這個(gè)文件首先驗(yàn)證從該請(qǐng)求查詢的一口令變量,或者返回一條指定該請(qǐng)求者不是一名經(jīng)授權(quán)的用戶的消息,或者用指向RSS饋送(該饋送在由請(qǐng)求方法處理后被復(fù)制到本地服務(wù)器)的路徑作出響應(yīng)。為了響應(yīng)該RSS饋送,需要包含這個(gè)RSS對(duì)象并把它實(shí)例化,并且需要通過(guò)使用被請(qǐng)求的饋送的URL作為一參數(shù)來(lái)激活請(qǐng)求方法:

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

分享:Php高手帶路--問(wèn)題匯總解答
  1:為什么我得不到變量    我在一網(wǎng)頁(yè)向另一網(wǎng)頁(yè)P(yáng)OST數(shù)據(jù)name,為什么輸出$name時(shí)卻得不到任何值?    在PHP4.2以后的版本中reGISter_global默認(rèn)為off    若想取得從另一頁(yè)面

來(lái)源:模板無(wú)憂//所屬分類:PHP教程/更新時(shí)間:2008-08-22
相關(guān)PHP教程