Home  >  Article  >  Backend Development  >  Detailed explanation of how php uses regular expressions to obtain the URL in a string

Detailed explanation of how php uses regular expressions to obtain the URL in a string

墨辰丷
墨辰丷Original
2018-05-29 09:59:576240browse

The client passes a string and all URLs need to be matched from the string. How to achieve this in PHP? This article introduces how PHP obtains the URL (website link) in a string. It mainly uses the PHP regular expression function preg_match_all. Please see below for the specific implementation method

$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);


The running result is:


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


The preg_match_all function is mainly used here. The specific usage of this function is as follows:

preg_match_all — Perform global regular expression matching

Syntax:


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


Search in subject for all patterns given by pattern Regular expression matches content and puts the results into matches in the order specified by flags.
After searching for the first match, subsequent searches start from the end of the previous match.

Pay special attention to PREG_PATTERN_ORDER and PREG_SET_ORDER

flags can be a combination of the following flags (note that it makes no sense to use PREG_PATTERN_ORDER and PREG_SET_ORDER together):

If you use PREG_PATTERN_ORDER

Sort the results so that $matches[0] is an array of all pattern matches, $matches[1] is an array of strings matched by the subpattern in the first bracket, and so on. (That is, $matches[0] [0] is the second item in all pattern matches, $matches[0] [1] is the second item in all pattern matches, $matches[1] [0] is the match for each item. The first item in brackets, $matches[1] [0] matches the second item in each bracket)


##

<?php 
preg_match_all ("|<[^>]+>(.*)</[^>]+>|U","<b>example: </b><p align=left>this is a test</p>",$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"; 
?>


Output result:


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




##The above is this article The entire content, I hope it will be helpful to everyone's study.


Related recommendations:

PHP

Regular expressionExamples of matching, replacement and segmentation functions

PHP

Regular expressionExample analysis of matching replacement and segmentation functions

Regular expressionStatement Detailed explanation of the comment steps

#regular expressions most commonly used in PHP

The above is the detailed content of Detailed explanation of how php uses regular expressions to obtain the URL in a string. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn