>  기사  >  백엔드 개발  >  PHP가 HTML의 텍스트 내용을 대체할 수 있나요?

PHP가 HTML의 텍스트 내용을 대체할 수 있나요?

藏色散人
藏色散人원래의
2021-09-19 09:39:031902검색

php는 html의 텍스트 내용을 대체할 수 있습니다. 1. "preg_match_all($pattern,htmlspecialchars_decode($a)...);" 메소드를 통해 대체합니다.

PHP가 HTML의 텍스트 내용을 대체할 수 있나요?

이 문서의 운영 환경: Windows 7 시스템, PHP7.1, Dell G3 컴퓨터.

php가 html의 텍스트 내용을 대체할 수 있나요?

php는 html

다음 html

$a="<p><img src=\"/upload/store/1/ue/image/1568282125833264.png\" title=\"1568282125833264.png\" alt=\"1.png\"/><img src=\"http://dimg04.c-ctrip.com/images/300q12000000rq2t956CB.jpg\" alt=\"undefined\"/><img src=\"https://dimg04.c-ctrip.com/images/300m12000000sdsca92E2.jpg\"/><img src=\"https://dimg04.c-ctrip.com/images/300w12000000rutmrD6CB.jpg\" alt=\"undefined\"/><img src=\"https://dimg04.c-ctrip.com/images/300u12000000rorex415F.jpg\" alt=\"undefined\"/><img src=\"http://dimg04.c-ctrip.com/images/300k12000000rsyxgBA05.jpg\" alt=\"undefined\"/></p>"

부분에 http와 https 및 로컬 상대 경로의 URL이 포함되어 있는 것으로 알려져 있습니다

일반적인 사용법:

$pattern="/<img.*?src=[\&#39;|\"](.*?)[\&#39;|\"].*?[\/]?>/";
preg_match_all($pattern,htmlspecialchars_decode($a),$match);
if(!empty($match[1])){
    print_r($match[1]);
}else{
echo "没得";
}

먼저 일치 루프 $match[1]

loop foreach($match[1] as $val){preg_replace('#src="'.$val.'"/#is', 'src=" aaaaa/ ',$a);}

이건 꽤 귀찮은 것 같아요

업그레이드 사용법:

$host="http://mp.csdn.net"
$newContent =  preg_replace_callback("/<img.*?src=[\&#39;|\"](.*?)[\&#39;|\"].*?[\/]?>/", function($m) use($host){

   if(strpos($m[1],&#39;http://&#39;) || strpos($m[1],&#39;https://&#39;)){
       return $m[0];
   }else{
       $img=preg_replace(&#39;#src="/#is&#39;, &#39;src="&#39;.$host.&#39;/&#39;,$m[0]);
       return $img;
   }
}, $a);

이 방법은 거의 사용되지 않지만 일괄 처리할 때 효과가 엄청 좋습니다

이런 종류의 저는 개인적으로 패키지 기능을 좋아합니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP가 HTML의 텍스트 내용을 대체할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.