Home  >  Article  >  Backend Development  >  PHP Regular Expressions: How to match all images and links in HTML

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

王林
王林Original
2023-06-23 11:32:321577browse

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 a1f02c36ba31691bcfe87b2722de723b tag, and its format is as follows:

<img src="图片路径" alt="替代文字">

In order to match all For images, we need to match all a1f02c36ba31691bcfe87b2722de723b 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:

  • 1d0a94b69819f080670a8fe502661b4a: Match a1f02c36ba31691bcfe87b2722de723b Start tag.
  • src=["']?: Match src attributes.
  • (.*?): Use non Greedy pattern matches image paths.
  • ["'].*?>: matches other attributes after the src attribute value, and eaff2db6b6cb8db37560f80b5dd1ad1d tag. The format is as follows:
    <a href="链接地址">链接文字</a>

    We need to match the 3499910bf9dac5ae3c52d5ede7383485 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:

    • 55784847ccfa800f7f23a4af7651bca8: Match3499910bf9dac5ae3c52d5ede7383485 Start tag.
    • href=["']?: Match href attributes.
    • (.*?): Use non Greedy pattern matches link addresses.
    • ["'].*?>: matches other attributes after the href attribute value.
    • (.*?)5db79b134e9f6b82c0b36e0489ee08ed: 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!

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