Home  >  Article  >  Backend Development  >  php using regular expression to get URL in string

php using regular expression to get URL in string

高洛峰
高洛峰Original
2017-01-21 13:42:491667browse

After writing a Q&A system today and going online, I found that many people sent links. Since the business department asked us to filter out the website address, I will share with you a function to extract the string url address. The code is as follows:

$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 regularization Expression matching

Syntax:

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

Search in the subject for all content that matches the regular expression given by pattern and put the results in the order specified by flags matches.
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 the brackets, $matches[1] [0] matches the second item in each bracket)

<?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";
?>

Output result:

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

Update For related articles on using regular expressions to obtain the URL in a string, please pay attention to 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