>  기사  >  백엔드 개발  >  PHP는 정규 표현식을 사용하여 문자열의 URL을 얻습니다.

PHP는 정규 표현식을 사용하여 문자열의 URL을 얻습니다.

高洛峰
高洛峰원래의
2017-01-21 13:42:491664검색

오늘 질문과 답변 시스템을 작성하고 온라인에 접속해보니 많은 사람들이 링크를 게시하고 있는 것을 발견했습니다. 사업부에서 웹사이트 주소를 필터링해 달라고 요청했기 때문에 문자열 URL 주소를 추출하는 기능을 알려드리겠습니다. 코드는 다음과 같습니다.

$str ='本文实例讲述了php匹配字符串里所有URL地址的方法。http://www.manongjc.com 分享给大家供大家参考';
 preg_match_all("/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*/",$str,$array2);
print_r($array2);

실행 결과는 다음과 같습니다.

(
  [0] => Array
    (
      [0] => http://www.manongjc.com
    )
)

여기에서는 preg_match_all 함수가 주로 사용됩니다.

preg_match_all - 전역 정규화 수행 표현식 일치

구문:

int preg_match_all ( string pattern, string subject, array matches [, int flags] )

주어진 정규 표현식과 일치하는 모든 콘텐츠를 제목에서 검색합니다. 패턴별로 결과를 플래그 일치 항목에 지정된 순서대로 넣습니다.
첫 번째 일치 항목을 찾은 후 이전 일치 항목의 끝부터 후속 검색이 시작됩니다.

PREG_PATTERN_ORDER 및 PREG_SET_ORDER에 특별한 주의를 기울이세요

플래그는 다음 플래그의 조합일 수 있습니다(PREG_PATTERN_ORDER와 PREG_SET_ORDER를 함께 사용하는 것은 의미가 없습니다).

If PREG_PATTERN_ORDER

을 사용하여 $matches[0]가 모든 패턴 일치의 배열이고 $matches[1]이 첫 번째 대괄호의 하위 패턴과 일치하는 문자열 배열이 되도록 결과를 정렬합니다. (즉, $matches[0] [0]은 모든 패턴 일치의 두 번째 항목이고, $matches[0] [1]은 모든 패턴 일치의 두 번째 항목이며, $matches[1] [0]은 다음과 일치합니다. 각 항목은 괄호 안의 첫 번째 항목인 $matches[1] [0]은 각 괄호의 두 번째 항목과 일치합니다.

<?php
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U","<b>example: </b><div align=left>this is a test</div>",$out, PREG_PATTERN_ORDER);
/* http://www.manongjc.com/article/1591.html */
print $out[0][0].", ".$out[0][1]."\n";
print $out[1][0].", ".$out[1][1]."\n";
?>

출력 결과:

<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test

더 보기 정규식을 사용하여 문자열의 URL을 얻는 방법에 대한 관련 기사는 PHP 중국어 웹사이트에 주목하세요!


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