php using regular expression to get URL in string

高洛峰
Release: 2023-03-05 08:34:01
Original
1643 people have browsed it

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);
Copy after login

The running result is:

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

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] )
Copy after login

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";
?>
Copy after login

Output result:

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

Update For related articles on using regular expressions to obtain the URL in a string, please pay attention to the PHP Chinese website!


Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!