> 백엔드 개발 > PHP 문제 > PHP에서 네트워크 이미지를 가져와 base64로 변환하는 방법

PHP에서 네트워크 이미지를 가져와 base64로 변환하는 방법

PHPz
풀어 주다: 2023-03-29 10:26:44
원래의
2065명이 탐색했습니다.

웹사이트 개발 및 디자인에서는 페이지의 콘텐츠와 미학을 풍부하게 하기 위해 외부 이미지를 사용해야 하는 경우가 많습니다. 그러나 어떤 이유로 네트워크 이미지를 base64 문자열 형식으로 변환해야 하는 경우가 있습니다. 이 기사에서는 PHP를 사용하여 네트워크 이미지를 얻고 이를 base64 형식으로 변환하는 방법을 소개합니다.

1. PHP를 사용하여 웹 이미지 얻기

먼저 웹 이미지의 바이너리 데이터를 얻어야 합니다. PHP에서는 컬 라이브러리를 사용하여 네트워크 리소스를 얻을 수 있습니다. 컬 라이브러리를 사용하려면 다음 단계가 필요합니다.

1. 컬 초기화:
curl_init() 함수를 사용하여 컬을 초기화하면 리소스 확보, 옵션 설정 등과 같은 후속 작업에 사용할 수 있는 컬 핸들이 반환됩니다. . 초기화 후, curl_setopt() 함수를 사용하여 컬 옵션을 설정할 수 있습니다.

$ch = curl_init();
로그인 후 복사

2. 컬 옵션 설정:
컬 옵션을 설정하여 네트워크 리소스를 요청하고 바이너리 데이터를 얻습니다. 설정해야 하는 옵션으로는 URL, 요청 방식, 헤더 정보 포함 여부 등이 있습니다.

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
로그인 후 복사

그 중 $url 은 얻어오려는 네트워크 이미지의 URL 주소이고, CURLOPT_RETURNTRANSFER 옵션은 컬_exec() 함수의 내용을 직접 출력하지 않고 문자열로 반환하고, CURLOPT_BINARYTRANSFER 옵션은 그 내용을 반환합니다. HTTP 헤더 없이.

3. 컬 요청 실행:
curl_exec() 함수를 사용하여 컬 요청을 실행하고 응답 바이너리 데이터를 반환합니다.

$image_data = curl_exec($ch);
로그인 후 복사

4. 컬 리소스 핸들 닫기:
컬 리소스 핸들을 닫으려면 컬_close() 함수를 사용하세요.

curl_close($ch);
로그인 후 복사

지금까지 우리는 컬을 사용하여 네트워크 이미지의 바이너리 데이터를 얻었습니다. 다음으로 이러한 바이너리 데이터를 base64 문자열 형식으로 변환하는 방법을 다루겠습니다.

2. 바이너리 데이터를 base64 문자열 형식으로 변환

PHP는 바이너리 데이터를 base64 문자열 형식으로 변환하는 base64_encode() 함수를 제공합니다. 이 함수를 사용하는 간단한 예는 다음과 같습니다.

$image_base64 = base64_encode($image_data);
로그인 후 복사

여기서 $image_data는 이전 단계에서 얻은 네트워크 이미지의 바이너리 데이터이고 $image_base64는 base64 문자열 형식으로 변환된 데이터입니다. 변환된 base64 문자열에는 접두사 "data:image/png;base64,"가 포함되어 있지 않다는 점에 주목할 필요가 있습니다. 이 접두사를 추가해야 하는 경우 다음 코드를 사용할 수 있습니다.

$image_base64 = "data:image/png;base64," . base64_encode($image_data);
로그인 후 복사

3. 네트워크 이미지를 직접 base64 문자열 형식

curl을 사용하여 네트워크 이미지의 바이너리 데이터를 얻는 것 외에도 PHP는 file_get_contents() 함수를 제공하여 네트워크 이미지를 직접 가져와 base64 문자열 형식으로 변환합니다. 네트워크 이미지를 얻기 위해 이 방법을 사용하는 코드는 매우 간결합니다:

$image_data = file_get_contents($url);
$image_base64 = "data:image/png;base64," . base64_encode($image_data);
로그인 후 복사

네트워크 리소스를 얻기 위해 file_get_contents() 함수를 직접 사용하면 PHP 프로세스가 차단되며 후속 작업에 영향을 주지 않도록 비동기 작업으로 처리되어야 합니다. 운영.

요약하자면, 컬이나 file_get_contents 함수를 사용하면 웹 이미지를 base64 문자열 형식으로 변환하여 웹사이트 디자인을 풍부하게 할 수 있습니다.

위 내용은 PHP에서 네트워크 이미지를 가져와 base64로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿