Function:
1. Get the url, email, and image in the content.
2. Replace the url, email, and image in the content.
url: xxx
email: admin@admin.com
image:
Grep.class.php
Copy code The code is as follows:
php
/**grep class
* Date: 2013-06-15
* Author: fdipzone
* Ver: 1.0
*
* Func:
*
* set: Set content
* get: Returns the specified content
* replace: Returns the replaced content
* get_pattern returns pattern according to type
*/
class Grep{ // class start
private $_pattern = array(
'url' => '/< a.*?href="((http(s)?://).*?)".*?/si',
'email' => '/([w-.]+@[ w-.]+(.w+))/',
'image' => '/
/i'
);
private $_content = ''; // Source content
/* Set search content
* @param String $content
*/
public function set($content=''){
$this->_content = $content;
}
/* Get the specified content
* @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); // Get pattern
preg_match_all($pattern, $this->_content, $matches);
return isset($matches[1])? ( $unique==0? $matches[1] : array_unique($matches[1]) ) : array();
}
/* Get the replaced content
* @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);
}
/* Get pattern according to type
* @param String $type
* @return String
*/
private function get_pattern($type){
return $this->_pattern[$type];
}
} // class end
?>
Demo
Copy code The code is as follows:
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] ' : '';
}
?>
http://www.bkjia.com/PHPjc/726021.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/726021.htmlTechArticleFunction: 1. Get the url, email, and image in the content. 2. Replace the url, email, and image in the content. url: a href="url"xxx/a email: admin@admin.com image: img src="image" Grep.class.ph...