With the popularity of the Internet, web page production and website development have become an industry with huge demand. In web page production, pictures and links are indispensable elements, and regular expressions are very useful in processing these elements. This article will show you how to use PHP regular expressions to match all images and links in HTML.
1. Matching pictures
In HTML, pictures are usually introduced using the <img>
tag, and its format is as follows:
<img src="图片路径" alt="替代文字">
In order to match all For images, we need to match all <img>
tags and extract the image path from them. We can use the following regular expression for matching:
$pattern = '/<img.*?src=["']?(.*?)["'].*?>/i';
The function of this regular expression is:
<img.*?>
: Match <img>
Start tag. src=["']?
: Match src
attributes. (.*?)
: Use non Greedy pattern matches image paths. ["'].*?>
: matches other attributes after the src
attribute value, and <img> ;
End tag. The following is a simple PHP code example:
$html = ''; $pattern = '/<img.*?src=["']?(.*?)["'].*?>/i'; preg_match_all($pattern, $html, $matches); $images = $matches[1]; print_r($images);
The output result is:
Array ( [0] => 1.jpg [1] => 2.jpg )
As you can see, we successfully matched all the images in the HTML path.
2. Matching links
Links are also an indispensable element in web pages and are usually implemented using the <a>
tag. The format is as follows:
<a href="链接地址">链接文字</a>
We need to match the <a>
tag and extract the link address and link text from it. The following regular expression can be used for matching:
$pattern = '/<a.*?href=["']?(.*?)["'].*?>(.*?)</a>/i';
The function of this regular expression is:
<a.*?>
: Match<a>
Start tag. href=["']?
: Match href
attributes. (.*?)
: Use non Greedy pattern matches link addresses. ["'].*?>
: matches other attributes after the href
attribute value. (.*?)</a>
: Use non-greedy patterns to match link text and closing tags. The following is a simple PHP code example:
$html = '百度谷歌'; $pattern = '/<a.*?href=["']?(.*?)["'].*?>(.*?)</a>/i'; preg_match_all($pattern, $html, $matches); $urls = $matches[1]; $names = $matches[2]; print_r($urls); print_r($names);
The output result is:
Array ( [0] => http://www.baidu.com [1] => http://www.google.com ) Array ( [0] => 百度 [1] => 谷歌 )
As you can see, we successfully matched all links in the HTML Address and link text.
3. Summary
Using PHP regular expressions can easily match images and links in HTML, which can greatly simplify our work in web page production and website development. Of course, in actual development, we need to pay attention to the optimization and error handling of regular expressions to ensure the stability and security of the program.
The above is the detailed content of PHP Regular Expressions: How to match all images and links in HTML. For more information, please follow other related articles on the PHP Chinese website!