>  기사  >  백엔드 개발  >  PHP 정규식 연습: 이미지 링크 일치

PHP 정규식 연습: 이미지 링크 일치

WBOY
WBOY원래의
2023-06-23 08:20:371586검색

웹 개발 과정에서 기사에서 이미지 링크를 추출하여 이미지를 표시하거나 로컬에 저장해야 하는 경우가 종종 있습니다. 이때 정규표현식은 중요한 도구가 됩니다. 이 기사에서는 PHP 정규식을 사용하여 이미지 링크를 일치시키는 방법을 소개하고 샘플 코드를 통해 실습을 수행합니다.

1. 이미지 링크 일치 규칙

매우 복잡하고 변경 가능한 웹 페이지에서는 이미지 링크 형식이 다양합니다. 다음은 몇 가지 일반적인 이미지 링크 형식입니다.

  1. 상대 경로 형식

f2c1e9d33d026e38180fdaa6edf6d2ca

  1. 절대 경로 형식

de9d79b22cfbd2e3b4cfbbd7b4e4d897

  1. 클래스, 너비, 높이 및 기타 속성을 사용한 형식

940696e0710665466ee6271b746bb32e

  1. 작은따옴표 또는 큰따옴표로 형식 지정

8afa6b503b86ed559ce464e12cddd1e8

  1. 접미사가 다른 형식이 포함되어 있습니다

203f1b65967aec8ac84e3c48ece3b17f
71ace6eb70ac0a57d2c9e6d4f6def519
0febb59b8ac7baa071e2650125284b34

위 형식 기준 , 일반적인 일치 규칙을 다음과 같이 요약할 수 있습니다:

/4de76ec59a96cccee9e9f3c782ff3375/i

그 중 정규식에 포함된 의미 중 일부는 다음과 같습니다.

  • 1d0a94b69819f080670a8fe502661b4a: a1f02c36ba31691bcfe87b2722de723b 태그와 일치하며 태그 내에서 가능합니다. 다른 속성.
  • src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"]: src 속성 값과 일치하며 속성 값은 큰따옴표나 작은따옴표로 묶어야 합니다. , 동시에 여러 접미사를 지원합니다.
  • .*?: a1f02c36ba31691bcfe87b2722de723b 태그의 다른 속성을 일치시키는 데 사용됩니다.
  • i: 대소문자를 구분하지 않음을 나타냅니다.

2. PHP 코드를 사용하여 이미지 링크 일치

다음으로 PHP를 사용하여 이미지 링크를 일치시킵니다.

  1. preg_match 함수를 사용하여 단일 이미지 링크를 일치시킵니다.

preg_match 함수는 단일 문자열에 대해 정규식 일치를 수행하는 데 사용됩니다. 다음은 단일 이미지 링크를 일치시키는 PHP 코드입니다.

<?php
$str = '<img src="../images/picture.jpg" class="picture" width="100" height="100">';
$pattern = '/<img.*?src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"].*?>/i';
preg_match($pattern, $str, $matches);
echo $matches[1];
?>

위 코드의 출력은 다음과 같습니다.

../images/picture.jpg

  1. preg_match_all 함수를 사용하여 여러 이미지 링크를 일치시키세요

The preg_match_all 함수는 문자열 집합에 대해 정규식 일치를 수행하는 데 사용됩니다. 다음은 여러 이미지 링크를 일치시키는 PHP 코드입니다.

<?php
$str = '
<img src="../images/picture.jpg" class="picture" width="100" height="100">
<img src="http://www.example.com/images/picture.jpg">
<img src="http://www.example.com/images/picture.png">
<img src="http://www.example.com/images/picture.gif">
';
$pattern = '/<img.*?src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"].*?>/i';
preg_match_all($pattern, $str, $matches);
print_r($matches[1]);
?>

위 코드의 출력 결과는 다음과 같습니다.

Array
(

[0] => ../images/picture.jpg
[1] => http://www.example.com/images/picture.jpg
[2] => http://www.example.com/images/picture.png
[3] => http://www.example.com/images/picture.gif

)

3. 요약

이 기사에서는 PHP 정규식을 사용하여 다음을 수행하는 방법을 소개합니다. 그림 링크를 매칭하고 실습을 위한 샘플 코드를 제공합니다. 실제 개발에서는 필요에 따라 정규식의 일치 규칙을 수정할 수 있습니다. 동시에 이미지 표시, 다운로드, 저장 등의 작업에 일치하는 이미지 링크를 사용할 수도 있습니다.

위 내용은 PHP 정규식 연습: 이미지 링크 일치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.