PHP를 통해 페이지에서 지정된 컨텐츠 클래스를 얻는 방법

jacklove
풀어 주다: 2023-03-31 11:28:02
원래의
3813명이 탐색했습니다.

기능:

1. 콘텐츠의 URL, 이메일, 이미지를 가져옵니다.

2. 콘텐츠의 URL, 이메일, 이미지를 교체하세요.

url: url">xxx

email: admin@admin.com

image: image ">

Grep.class.php

<?php
/** grep class
*   Date:   2013-06-15
*   Author: fdipzone
*   Ver:    1.0
*
*   Func:
*
*   set:        设置内容
*   get:        返回指定的内容
*   replace:    返回替换后的内容
*   get_pattern 根据type返回pattern
*/
class Grep{ // class start
    private $_pattern = array(
                            &#39;url&#39; => &#39;/<a.*?href="((http(s)?:\/\/).*?)".*?/si&#39;,
                            &#39;email&#39; => &#39;/([\w\-\.]+@[\w\-\.]+(\.\w+))/&#39;,
                            &#39;image&#39; => &#39;/<img.*?src=\"(http:\/\/.+\.(jpg|jpeg|gif|bmp|png))\">/i&#39;
                        );
    private $_content = &#39;&#39;; // 源内容
    /* 設置搜尋的內容
    *  @param String $content
    */
    public function set($content=&#39;&#39;){
        $this->_content = $content;
    }
    /* 获取指定内容
    *  @param String $type
    *  @param int    $unique 0:all 1:unique
    *  @return Array
    */
    public function get($type=&#39;&#39;, $unique=0){
        $type = strtolower($type);
        if($this->_content==&#39;&#39; || !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();
    }
    /* 获取替换后的内容
    *  @param String $type
    *  @param String $callback
    *  @return String
    */
    public function replace($type=&#39;&#39;, $callback=&#39;&#39;){
        $type = strtolower($type);
        if($this->_content==&#39;&#39; || !in_array($type, array_keys($this->_pattern)) || $callback==&#39;&#39;){
            return $this->_content;
        }
        $pattern = $this->get_pattern($type);
        return preg_replace_callback($pattern, $callback, $this->_content);
    }
    /* 根据type获取pattern
    *  @param String $type
    *  @return String
    */
    private function get_pattern($type){
        return $this->_pattern[$type];
    }
} // class end
?>
로그인 후 복사

Demo

<?php
header(&#39;content-type:text/htm;charset=utf8&#39;);
require(&#39;Grep.class.php&#39;);
$content = file_get_contents(&#39;http://www.test.com/&#39;);
$obj = new Grep();
$obj->set($content);
$url = $obj->get(&#39;url&#39;, 0);
$email = $obj->get(&#39;email&#39;, 1);
$image = $obj->get(&#39;image&#39;, 1);
print_r($url);
print_r($email);
print_r($image);
$url_new = $obj->replace(&#39;url&#39;, &#39;replace_url&#39;);
echo $url_new;
function replace_url($matches){
    return isset($matches[1])? &#39;[url]&#39;.$matches[1].&#39;[/url]&#39; : &#39;&#39;;
}
?>
로그인 후 복사

이 문서에서는 PHP를 통해 페이지에서 지정된 콘텐츠 클래스를 가져오는 방법을 설명합니다. 더 많은 관련 콘텐츠를 보려면 비용을 지불하세요. PHP 중국어 웹사이트에 주목하세요.

관련 추천 :

PHP 관련 구문 기술 소개

php를 통해 URL 기반 썸네일 자동 생성 방법

php 출력_버퍼링 캐시 사용 방법 소개

위 내용은 PHP를 통해 페이지에서 지정된 컨텐츠 클래스를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!