如何运用PHP函数preg_match_all测试正则表达式效果_PHP教程
PHP函数preg_match_all的具体使用方法我们可以在PHP函数preg_match_all实例要求:分别将每一个DIV元素的ID和内容取出,如biuuu,biuuu_2,biuuu_3,php自学网,php自学网2和php自学网3(一些常用的抓站方法就是这样匹配的)
分析:字符串是一个简单的HTML元素,每一个DIV元素对应该一个ID和内容,并且是独立的,首先考虑如何取出一个DIV内的ID值和内容, 如:php自学网,然后匹配其它类似的元素。一个DIV中需要取出两个值,也就是两个匹配的表达式,第一个表达式用于匹配ID值(biuuu),第二个表 达式用于匹配ID的内容(php自学网),正则表达式常用的表达式使用小括号,那么前面的元素将会变成如下形式:
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><span class="tag-name">div</span><span> </span></span></span></li> <li class="alt"><span><span class="attribute">id</span><span>=</span><span class="attribute-value">"(biuuu)"</span><span class="tag">></span></span></li> <li class="alt"><span><span>(php自学网)</span></span></li> <li class="alt"><span><span class="tag"><span class="tag-name">div</span><span class="tag">></span><span> </span></span></span></li> <li class="alt"><span><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"(表达式1)"</span><span class="tag">></span></span></span></li> <li class="alt"><span><span>(表达式2)</span></span></li> <li class="alt"><span><span class="tag"><span class="tag-name">div</span><span class="tag">></span><span> </span></span></span></li> </ol>
好,使用如上小括号把需要匹配的区域进行了划分,接下来就是如何匹配各个表达式内的内容,我们猜想一个ID可能是字母,数字或下划线,那这就变得简单了,使用中括号就可以实现,如下:
表达式1:[a-zA-Z0-9_]+ (表示匹配大小写字母,数字和下划线)
那如何匹配表达式2,因为ID的内容可以是任意的字符,但是要注意,不能匹配字符,因为如果匹配这两个字符将会把后面使用的DIV都匹配出来,因此需要排除这两个字符开始的元素,也就是不匹配以字符,如下:
表达式2:[^]+ (表示不匹配字符)
这样,PHP函数preg_match_all需要匹配的子表达式就实现了,但是还要需要匹配一个的表达式,方法如下:
表达式:/ '"(表达式1)"'>(表达式2)/
注意其中的双引号"和/需要使用转义字符转义,然后把前面两个表达式放进去,如下:
<ol class="dp-xml"> <li class="alt"> <span><span>'"([a-z0-9_]+)"'</span><span class="tag">></span></span><span><span>/</span></span> </li> <li class="alt"><span><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"([a-z0-9_]+)"</span><span class="tag">></span></span></span></li> <li class="alt"><span><span>([^</span><span class="tag"><span class="tag">></span><span>]+)</span></span></span></li> <li class="alt"><span><span class="tag"><span class="tag-name">div</span><span class="tag">></span><span>/ </span></span></span></li> </ol>
这样就实现一个匹配每一个DIV元素ID值和内容的正则表达式,然后使用preg_match_all函数测试如下:
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute">html</span><span> = </span></span></li> <li class="alt"><span><span class="attribute-value">'</span></span></li> <li class="alt"><span><span class="attribute-value">php自学网</span></span></li> <li class="alt"><span><span class="attribute-value"></span></span></li> <li class="alt"><span><span class="attribute-value"></span></span></li> <li class="alt"><span><span class="attribute-value">php自学网2</span></span></li> <li class="alt"><span><span class="attribute-value"></span></span></li> <li class="alt"><span><span class="attribute-value"></span></span></li> <li class="alt"><span><span class="attribute-value">php自学网3</span></span></li> <li class="alt"><span><span class="attribute-value">'</span><span>; </span></span></li> <li><span>preg_match_all('/</span></li> <li><span class="tag"><span class="attribute">divsid</span><span class="tag-name">divsid</span><span>=</span><span class="attribute-value">"([a-z0-9_]+)"</span><span class="tag">></span></span></li> <li> <span>([^</span><span class="tag"><span class="tag">></span><span>]+)</span></span> </li> <li><span class="tag"><span class="tag-name">div</span><span class="tag">></span><span>/'</span><span>,$html,$result); </span></span></li> <li class="alt"><span>var_dump($result); </span></li> </ol>
PHP函数preg_match_all示例结果:
<ol class="dp-xml"> <li class="alt"><span><span>array(3) { </span></span></li> <li> <span>[0]=</span><span class="tag">></span><span> array(3) </span> </li> <li class="alt"><span>{ </span></li> <li> <span>[0]=</span><span class="tag">></span><span> string(30) "<br></span><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"biuuu"</span><span class="tag">></span><span>php自学网</span><span class="tag"></span><span class="tag-name">div</span><span class="tag">></span><span>" </span></span> </li> <li class="alt"> <span>[1]=</span><span class="tag">></span><span> string(33) "<br></span><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"biuuu_2"</span><span class="tag">></span><span>php自学网2</span><span class="tag"></span><span class="tag-name">div</span><span class="tag">></span><span>" </span></span> </li> <li> <span>[2]=</span><span class="tag">></span><span> string(33) "<br></span><span class="tag"><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"biuuu_3"</span><span class="tag">></span><span>php自学网3</span><span class="tag"></span><span class="tag-name">div</span><span class="tag">></span><span>" </span></span> </li> <li class="alt"><span>} </span></li> <li> <span>[1]=</span><span class="tag">></span><span> array(3) </span> </li> <li class="alt"><span>{ </span></li> <li> <span>[0]=</span><span class="tag">></span><span> string(5) "biuuu" </span> </li> <li class="alt"> <span>[1]=</span><span class="tag">></span><span> string(7) "biuuu_2" </span> </li> <li> <span>[2]=</span><span class="tag">></span><span> string(7) "biuuu_3" </span> </li> <li class="alt"><span>} </span></li> <li> <span>[2]=</span><span class="tag">></span><span> array(3) </span> </li> <li class="alt"><span>{ </span></li> <li> <span>[0]=</span><span class="tag">></span><span> string(8) "php自学网" </span> </li> <li class="alt"> <span>[1]=</span><span class="tag">></span><span> string(9) "php自学网2" </span> </li> <li> <span>[2]=</span><span class="tag">></span><span> string(9) "php自学网3" </span> </li> <li class="alt"><span>} </span></li> <li><span>} </span></li> </ol>
共有三个表达式,分别显示每一个表达式匹配的值,并以数组的形式存储,这样就把每一个DIV元素的ID和内容取出。使用正则表达式最主要还是要知道需要什么,然后跟椐需要进行匹配,并且思路清晰,并适当的借助PHP函数preg_match_all进行输出调试,非常方便。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

여전히 인기있는 것은 사용 편의성, 유연성 및 강력한 생태계입니다. 1) 사용 편의성과 간단한 구문은 초보자에게 첫 번째 선택입니다. 2) 웹 개발, HTTP 요청 및 데이터베이스와의 우수한 상호 작용과 밀접하게 통합되었습니다. 3) 거대한 생태계는 풍부한 도구와 라이브러리를 제공합니다. 4) 활성 커뮤니티와 오픈 소스 자연은 새로운 요구와 기술 동향에 맞게 조정됩니다.

Session_Start ()로 여러 통화를하면 경고 메시지와 가능한 데이터 덮어 쓰기가 발생합니다. 1) PHP는 세션이 시작되었다는 경고를 발행합니다. 2) 세션 데이터의 예상치 못한 덮어 쓰기를 유발할 수 있습니다. 3) Session_status ()를 사용하여 반복 통화를 피하기 위해 세션 상태를 확인하십시오.

IIS 및 PHP는 호환 가능하며 FastCGI를 통해 구현됩니다. 1. IIS 구성 파일을 통해 .php 파일 요청을 FastCGI 모듈로 전달합니다. 2. FASTCGI 모듈은 PHP 프로세스를 시작하여 요청을 처리하여 성능과 안정성을 향상시킵니다. 3. 실제 응용 프로그램에서는 구성 세부 사항, 오류 디버깅 및 성능 최적화에주의를 기울여야합니다.

session_start () iscrucialinphpformanagingUsersessions.1) itiniteSanewsessionifnoneexists, 2) ResumesAnxistessions, and3) setSasessionCookieForContInuityAcrosrequests, enablingplicationsirecationSerauthenticationAndpersonalizestContent.

AI는 작곡가 사용을 최적화하는 데 도움이 될 수 있습니다. 특정 방법에는 다음이 포함됩니다. 1. 종속성 관리 최적화 : AI는 종속성을 분석하고 최상의 버전 조합을 권장하며 충돌을 줄입니다. 2. 자동화 된 코드 생성 : AI는 모범 사례를 준수하는 composer.json 파일을 생성합니다. 3. 코드 품질 향상 : AI는 잠재적 인 문제를 감지하고 최적화 제안을 제공하며 코드 품질을 향상시킵니다. 이러한 방법은 기계 학습 및 자연어 처리 기술을 통해 구현되어 개발자가 효율성과 코드 품질을 향상시킬 수 있도록 도와줍니다.

Laravel은 다음을 포함하여 웹 개발 프로세스를 최적화합니다. 1. 라우팅 시스템을 사용하여 URL 구조를 관리합니다. 2. 블레이드 템플릿 엔진을 사용하여보기 개발을 단순화하십시오. 3. 대기열을 통해 시간이 많이 걸리는 작업을 처리합니다. 4. eloquentorm을 사용하여 데이터베이스 작업을 단순화하십시오. 5. 모범 사례를 따라 코드 품질과 유지 관리를 향상시킵니다.

IIS에서 PHP 구성 및 실행에는 다음 단계가 필요합니다. 1) PHP 다운로드 및 설치, 2) IIS 구성 및 FASTCGI 모듈 추가, 3) 응용 프로그램 풀 생성 및 설정 4) 웹 사이트를 만들고 응용 프로그램 풀에 바인딩합니다. 이러한 단계를 통해 스케일링을 구성하고 성능을 최적화하여 Windows 서버에 PHP 응용 프로그램을 쉽게 배포하고 응용 프로그램 안정성 및 효율성을 향상시킬 수 있습니다.

MySQL 기능은 데이터 처리 및 계산에 사용될 수 있습니다. 1. 기본 사용에는 문자열 처리, 날짜 계산 및 수학 연산이 포함됩니다. 2. 고급 사용에는 복잡한 작업을 구현하기 위해 여러 기능을 결합하는 것이 포함됩니다. 3. 성능 최적화를 위해서는 WHERE 절에서 기능 사용 및 GroupBy 및 임시 테이블 사용을 피해야합니다.
