日期:2013-03-23  浏览次数:20424 次

<?php
 class Thief{
  // 需要得到数据的网址
  var $URL;
  // 需要分析的开始标记
  var $startFlag;
  //需要分析的结束标记
  var $endFlag;
  //存储图片的路径
  var $saveImagePath;
  //访问图片的路径
  var $imageURL;
  // 列表内容
  var $ListContent;
  //需要获得的图片路径
  var $ImageList;
  //存储的图片名称
  var $FileName;
 
  /**
  * 得到页面内容
  * @return String 列表页面内容
  */
 
  function getPageContent ()
  {               
   $pageContent = @file_get_contents( $this->URL );
  
   return $pageContent;
  }
 
 
  /**
  * 根据标记得到列表段
  * @param $content  页面源数据
  * @return String   列表段内容
  */
 
  function getContentPiece ( $content )
  {
   $content = $this->getContent( $content, $this->startFlag, $this->endFlag );
                                                     if(!$content)  $content=$this->cut ($content, $this->startFlag, $this->endFlag );
   return $content;
  }
 
 
  /**
  * 得到一个字符串中的某一部分
  * @param $sourceStr 源数据
  * @param $startStr 分离部分的开始标记
  * @param $endStart 分离部分的结束标记
  * @return boolean  操作成功返回true
  */
 
  function getContent ( $sourceStr, $startStr, $endStart )
  {
   $s = preg_quote( decode( $startStr ) );
   $e = preg_quote( decode( $endStart ) );
   $s = str_replace( " ", "[[:space:]]", $s );
   $e = str_replace( " ", "[[:space:]]", $e );
   $s = str_replace( "\r\n", "[[:cntrl:]]", $s );
   $e = str_replace( "\r\n", "[[:cntrl:]]", $e );

   preg_match_all( "@" . $s . "(.*?)". $e ."@is", $sourceStr, $tpl );

   $content = $tpl[1];
   $content = implode( "", $content );
   return $content;
  }
 
  function cut ( $sourceStr, $startStr, $endStr )
  {
                                                return  cut( $sourceStr ,decode( $startStr )  ,decode( $endStr) );
                                    }
 
  /**
  * 得到只含有连接和内容的列表数组
  * @param $sList  页面列表源数据
  * @return array  列表段内容
  */
 
  function getSourceList ( $sList )
  {
   preg_match_all( "/<a[[:space:]](.*?)<\/a>/i", $sList, $list );

   $list = $list[0];
//foreach($list as $l) echo $l;
                                                  &nb