PHP Regular Expressions: How to match all images and links in HTML

王林
Release: 2023-06-23 14:02:01
Original
1563 people have browsed it

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="替代文字">
Copy after login

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

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&gt ; End tag.

The following is a simple PHP code example:

$html = '12';
$pattern = '/<img.*?src=["']?(.*?)["'].*?>/i';
preg_match_all($pattern, $html, $matches);
$images = $matches[1];
print_r($images);
Copy after login

The output result is:

Array
(
    [0] => 1.jpg
    [1] => 2.jpg
)
Copy after login

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

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

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

The output result is:

Array
(
    [0] => http://www.baidu.com
    [1] => http://www.google.com
)
Array
(
    [0] => 百度
    [1] => 谷歌
)
Copy after login

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!

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!