PHP가 이미지 소스를 얻을 수 없습니다
네트워크 기술의 지속적인 발전으로 웹 페이지는 텍스트를 주요 콘텐츠로 사용할 뿐만 아니라 점차적으로 사진, 오디오, 비디오와 같은 멀티미디어 요소를 통합하고 있습니다. 요즘 우리는 웹 페이지를 방문할 때 미적 경험을 풍부하게 하고 페이지를 더욱 생생하고 직관적으로 만드는 멀티미디어 요소에 더 많이 의존합니다.
그 중에서도 사진은 가장 일반적인 멀티미디어 요소 중 하나입니다. 웹 개발에서 이미지를 사용하면 페이지 콘텐츠를 풍부하게 하고 사용자 경험을 풍부하게 할 수 있습니다. 때로는 관련 작업을 수행하기 위해 서버 측에서 이미지의 src 주소를 가져와야 하는 경우가 있습니다. PHP에서는 이미지의 src 주소를 얻는 방법이 많지만 몇 가지 문제가 발생하여 획득이 실패할 수 있습니다. 이 기사에서는 PHP가 이미지 src를 얻을 수 없는 이유와 해결 방법을 자세히 소개합니다.
1. 이미지의 src를 얻는 방법
PHP에서 이미지의 src 주소를 얻는 방법은 여러 가지가 있습니다.
- 정규 표현식을 사용하여 이미지 src 가져오기
HTML에서 이미지 주소의 src는 일반적으로 img 태그의 src 속성에 기록됩니다. 따라서 정규식을 사용하여 img 태그에서 src 속성 값을 가져올 수 있습니다.
function getImgSrc($html){ $pattern = '/<img.*?src="(.*?)".*?>/is'; preg_match_all($pattern, $html, $matches); $src_array = $matches[1]; return $src_array; }
위 함수에서 $html은 html 페이지의 문자열 형식입니다. 정규식을 사용하여 HTML의 모든 img 태그에 대한 src 속성 값을 일치시키고 모든 이미지의 src 주소를 저장하는 $src_array 배열을 반환합니다.
- DOMDocument를 사용하여 이미지 소스 가져오기
DOMDocument는 XML 및 HTML 문서 작업을 위한 PHP의 주요 도구 중 하나입니다. HTML 문서에서 요소와 해당 속성을 쉽게 얻을 수 있는 일련의 방법을 제공합니다. DOMDocument를 사용하여 img 태그의 src 속성 값을 가져올 수 있습니다.
function getImgSrc($html){ $dom = new DOMDocument(); @$dom->loadHTML($html); $xpath = new DOMXPath($dom); $src_array = array(); $img_list = $xpath->query('//img'); foreach($img_list as $img){ $src_array[] = $img->getAttribute('src'); } return $src_array; }
위 함수에서 $html도 html 페이지의 문자열 형식입니다. DOMDocument를 사용하여 $dom 문서 개체를 만들고 loadHTML 메서드를 사용하여 html 페이지를 로드합니다. 다음으로 DOMXPath를 사용하여 모든 img 태그를 얻은 다음 각 img 태그를 탐색하여 src 속성 값을 얻습니다.
2. 획득 실패 이유 및 해결책
위 방법을 사용하여 이미지 src를 획득할 때 획득 실패가 발생할 수 있습니다. 다음은 몇 가지 가능한 원인과 해당 해결 방법입니다.
- 들어오는 html이 불완전합니다
getImgSrc 함수에 전달된 $html 매개변수는 완전한 html 문서여야 하지만 때로는 페이지 콘텐츠의 일부만 가져오거나 html 문서 태그에 일부 불완전한 콘텐츠가 있는 경우도 있습니다. , 획득이 실패하게 됩니다. 이 시점에서 우리는 들어오는 HTML 문서가 완전하고 올바른지 확인해야 합니다.
- 이미지 src는 상대 경로를 사용합니다
때때로 이미지의 src 속성이 상대 경로를 사용하기 때문에 서버 측에서 이미지를 가져올 때 절대 경로로 변환해야 합니다. PHP의 dirname 함수와 parse_url 함수를 사용하여 상대 경로를 절대 경로로 변환할 수 있습니다.
function getAbsoluteUrl($base, $relative){ $parse_base = parse_url($base); if(!isset($parse_base['path'])){ $parse_base['path'] = '/'; } $dir = dirname($parse_base['path']); if($relative[0] == '/'){ $relative = substr($relative, 1); } if($relative[0] == '.'){ $i = 0; while(substr($relative, 0, 2) == './'){ $relative = substr($relative, 2); } $dir .= '/'; } $result = $parse_base['scheme']."://".$parse_base['host']; if(isset($parse_base['port']) && $parse_base['port'] != '80'){ $result .= ':'.$parse_base['port']; } $result .= $dir.$relative; return $result; }
위 함수에서 $base는 상대 경로의 기본 주소이고, $relative는 상대 경로입니다. dirname 함수를 사용하여 기본 주소의 디렉터리 경로 $dir을 얻은 다음 상대 경로를 기반으로 전체 절대 경로를 연결합니다.
- 네트워크 이유
사진 소스를 가져오는 것도 네트워크 환경의 영향을 받습니다. 네트워크가 불안정하거나 중단되면 획득이 실패합니다. 이때 다시 획득을 시도하거나, 네트워크가 안정될 때까지 기다렸다가 다시 획득을 시도할 수 있습니다.
요약하자면, 이 글에서는 PHP가 이미지 src를 얻을 수 없는 이유와 해결책을 소개합니다. 서버 측에서 이미지 소스를 얻는 것은 일반적인 개발 요구 사항입니다. 문제가 발생할 때 획득 방법과 일부 솔루션을 익히면 개발 효율성이 향상되고 문제의 영향을 줄일 수 있습니다.
위 내용은 PHP가 이미지 소스를 얻을 수 없습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 8의 JIT 컴파일은 자주 실행되는 코드를 컴퓨터 코드로 컴파일하여 성능을 향상시켜 계산이 많은 응용 프로그램에 도움이되고 실행 시간을 줄입니다.

이 기사는 코드 주입과 같은 취약점을 방지하기 위해 PHP 파일 업로드 보안에 대해 설명합니다. 파일 유형 유효성 검증, 보안 저장 및 오류 처리에 중점을 두어 응용 프로그램 보안을 향상시킵니다.

이 기사는 PHP 및 완화 전략의 OWASP Top 10 취약점에 대해 설명합니다. 주요 문제에는 PHP 응용 프로그램을 모니터링하고 보호하기위한 권장 도구가 포함 된 주입, 인증 파손 및 XSS가 포함됩니다.

이 기사는 PHP의 대칭 및 비대칭 암호화에 대해 논의하여 적합성, 성능 및 보안 차이를 비교합니다. 대칭 암호화는 더 빠르고 벌크 데이터에 적합하지만 안전한 키 교환에는 비대칭이 사용됩니다.

기사는 PHP, 커버 단계, 보안 측정, 최적화 기술 및 Solutions의 일반적인 오류를 사용하여 데이터베이스에서 데이터 검색에 대해 논의합니다. 문자 수 : 159

이 기사에서는 PHP에서 강력한 인증 및 승인을 구현하여 무단 액세스를 방지하고 모범 사례를 자세히 설명하고 보안 향상 도구를 권장합니다.

이 기사는 토큰 버킷 및 누출 된 버킷과 같은 알고리즘을 포함하여 PHP에서 API 요율 제한을 구현하고 Symfony/Rate-Limiter와 같은 라이브러리 사용 전략에 대해 설명합니다. 또한 모니터링, 동적 조정 요율 제한 및 손도 다룹니다.

이 기사는 CSRF 토큰, 동일한 사이트 쿠키 및 적절한 세션 관리를 포함하여 PHP의 CSRF 공격을 방지하는 전략에 대해 설명합니다.
