欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php 獲取頁面中指定內(nèi)容的實(shí)現(xiàn)類

 更新時(shí)間:2014年01月23日 17:24:06   作者:  
本文為大家下使用php如何獲取頁面中的指定內(nèi)容,而且以封裝成類,需要的朋友可以參考下本文
功能:

1.獲取內(nèi)容中的url,email,image。

2.替換內(nèi)容中的url,email,image。

url:<a href="url">xxx</a>

email:admin@admin.com

image:<img src="image">

Grep.class.php
復(fù)制代碼 代碼如下:

<?php
/** grep class
* Date: 2013-06-15
* Author: fdipzone
* Ver: 1.0
*
* Func:
*
* set: 設(shè)置內(nèi)容
* get: 返回指定的內(nèi)容
* replace: 返回替換后的內(nèi)容
* get_pattern 根據(jù)type返回pattern
*/

class Grep{ // class start

private $_pattern = array(
'url' => '/<a.*?href="((http(s)?:\/\/).*?)".*?/si',
'email' => '/([\w\-\.]+@[\w\-\.]+(\.\w+))/',
'image' => '/<img.*?src=\"(http:\/\/.+\.(jpg|jpeg|gif|bmp|png))\">/i'
);

private $_content = ''; // 源內(nèi)容


/* 設(shè)置搜尋的內(nèi)容
* @param String $content
*/
public function set($content=''){
$this->_content = $content;
}


/* 獲取指定內(nèi)容
* @param String $type
* @param int $unique 0:all 1:unique
* @return Array
*/
public function get($type='', $unique=0){

$type = strtolower($type);

if($this->_content=='' || !in_array($type, array_keys($this->_pattern))){
return array();
}

$pattern = $this->get_pattern($type); // 獲取pattern

preg_match_all($pattern, $this->_content, $matches);

return isset($matches[1])? ( $unique==0? $matches[1] : array_unique($matches[1]) ) : array();

}


/* 獲取替換后的內(nèi)容
* @param String $type
* @param String $callback
* @return String
*/
public function replace($type='', $callback=''){

$type = strtolower($type);

if($this->_content=='' || !in_array($type, array_keys($this->_pattern)) || $callback==''){
return $this->_content;
}

$pattern = $this->get_pattern($type);

return preg_replace_callback($pattern, $callback, $this->_content);

}


/* 根據(jù)type獲取pattern
* @param String $type
* @return String
*/
private function get_pattern($type){
return $this->_pattern[$type];
}
} // class end

?>

Demo
復(fù)制代碼 代碼如下:

<?php
header('content-type:text/htm;charset=utf8');

require('Grep.class.php');

$content = file_get_contents('http://www.test.com/');

$obj = new Grep();
$obj->set($content);

$url = $obj->get('url', 0);
$email = $obj->get('email', 1);
$image = $obj->get('image', 1);

print_r($url);
print_r($email);
print_r($image);

$url_new = $obj->replace('url', 'replace_url');
echo $url_new;

function replace_url($matches){
return isset($matches[1])? '[url]'.$matches[1].'[/url]' : '';
}
?>

相關(guān)文章

  • php curl發(fā)送請求實(shí)例方法

    php curl發(fā)送請求實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于php curl發(fā)送請求詳細(xì)教程以及相關(guān)知識點(diǎn),需要的朋友們可以學(xué)習(xí)下。
    2019-08-08
  • PHP日期處理函數(shù) 整型日期格式

    PHP日期處理函數(shù) 整型日期格式

    我正打算用PHP編寫一種幫助處理系統(tǒng)。我發(fā)現(xiàn)我必須知道處理完最后一位客戶的問題后已經(jīng)過去了多長時(shí)間?
    2011-01-01
  • APACHE的AcceptPathInfo指令使用介紹

    APACHE的AcceptPathInfo指令使用介紹

    從APACH2.0.30以上服務(wù)器中去掉了acceptpathinfo;如果需要的話需要在http.conf中添加AcceptPathInfo On這一條
    2013-01-01
  • PHP類中Static方法效率測試代碼

    PHP類中Static方法效率測試代碼

    因?yàn)橛泻脦讉€(gè)項(xiàng)目等著做,又不是很急,再加上目前成型的那些框架多多少少用著總是有點(diǎn)不太如意,所以決定先自己寫一個(gè)框架,然后再做項(xiàng)目。既然寫框架,自然要經(jīng)常做一些執(zhí)行效率上的測試,今天做了一個(gè)static效率的測試。
    2010-10-10
  • PHP 網(wǎng)頁過期時(shí)間的控制代碼

    PHP 網(wǎng)頁過期時(shí)間的控制代碼

    有時(shí)我們需要控制主頁之類的網(wǎng)頁過期時(shí)間。但我們比如使用的是Chinacache的CDN,那要怎么樣設(shè)計(jì)才能讓他緩存我的內(nèi)容.
    2009-06-06
  • php反彈shell實(shí)現(xiàn)代碼

    php反彈shell實(shí)現(xiàn)代碼

    遇到一個(gè)BT的網(wǎng)站,上傳php文件成功之后,每訪問一次,文件名就會隨機(jī)改變一次,并且你訪問當(dāng)前文件如果點(diǎn)其他操作項(xiàng),文件仍然會改名。
    2009-04-04
  • php 特殊字符處理函數(shù)

    php 特殊字符處理函數(shù)

    php防sql的注入.一般用到htmlspecialchars(),addslashes()等.不過還是對有些特殊字符不起作用.
    2008-09-09
  • 基于PHP Socket配置以及實(shí)例的詳細(xì)介紹

    基于PHP Socket配置以及實(shí)例的詳細(xì)介紹

    本篇文章是對PHP中Socket的配置以及實(shí)例進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP讀取zip文件的方法示例

    PHP讀取zip文件的方法示例

    這篇文章主要介紹了PHP讀取zip文件的方法,結(jié)合實(shí)例形式分析了php針對zip文件的讀取操作相關(guān)技巧,需要的朋友可以參考下
    2016-11-11
  • PHP判斷訪客是否手機(jī)端(移動端瀏覽器)訪問的方法總結(jié)【4種方法】

    PHP判斷訪客是否手機(jī)端(移動端瀏覽器)訪問的方法總結(jié)【4種方法】

    這篇文章主要介紹了PHP判斷訪客是否手機(jī)端(移動端瀏覽器)訪問的方法,結(jié)合實(shí)例形式總結(jié)分析了php基于HTTP_X_WAP_PROFILE、HTTP_VIA、HTTP_USER_AGENT、HTTP_ACCEPT等4種方法判斷訪客類型的相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03

最新評論