PHP를 사용하여 CSS 이미지 코드를 캡처하는 방법에 대한 자세한 설명
1. CSS에서 이미지 캡처:
> 1. 먼저 준비를 수행합니다.
> 첫 번째 단계는 CSS의 원래 경로를 $url 변수에 저장하는 것입니다. abc.css에 있습니다.
> 여러 CSS 파일이 자주 발견되는 점을 고려하여 Xiaoxie는 CSS 경로를 직접 입력하지 않았습니다.
> 대신 여러 CSS 파일의 내용을 병합하여 모두 abc.css 파일에 넣습니다.
$data = file_get_contents('abc.css')
> 그런 다음 CSS 파일의 내용을 $data 변수로 읽은 다음 정규식을 사용하여 도메인 이름을 추출합니다.
> 많은 이미지 파일이 /img/1.gif 및 img/1.gif와 같은 상대 루트 경로를 사용한다고 간주되기 때문입니다.
> 그러면 CSS의 원래 주소는 http://www.jb51.net/css/이므로 위 두 파일의 위치가 다릅니다.
> 첫 번째 파일은 경로가 상대 루트 경로를 사용하기 때문에 /upload/201109/20110926143903807.gif에 있습니다.
> 두 번째는 /upload/201109/20110926143903169.gif에 있으며 해당 경로는 일반적인 상대 경로입니다.
2. 이미지 저장 폴더 만들기:
> 여기에서 is_dir을 사용하여 폴더가 존재하는지 확인합니다.
> ㅎㅎ 그런데 is_file 함수를 사용하면 이 파일이 일반 파일인지, 존재하는지 확인할 수 있습니다.
> 하지만 file_exists()가 조금 더 우수합니다. Webmasterworld.com에서 누군가 이에 대해 논의하는 것을 본 적이 있기 때문입니다.
if (!is_dir('img')) { mkdir('img') }
> 3. 정규식을 사용하여 이미지의 상대 주소를 가져옵니다.
$regex = '/url('{ 0, 1}"{0,1}(.*?)'{0,1}"{0,1})/';
//여기서는 이미지 주소를 일치시키기 위해 정규식을 사용합니다. 즉, url( 1.gif) url('1.gif') url("1.gif")이 고려됩니다.
//이 세 가지 쓰기 방법을 모두 사용할 수 있으므로 위의 일반적인 규칙을 사용하여 안에 있는 1.gif를 꺼냅니다.
//'{0,1}은 작은따옴표가 1번 또는 0번 나타날 수 있음을 의미하고, "는 큰따옴표가 1번 또는 0번 나타날 수 있음을 의미합니다.
//지연 일치를 중간에 사용해야 하며, 그렇지 않으면 결과는 1입니다. .gif " 1.gif 새 대신 O(∩_∩)P.
preg_match_all($regex,$data,$result);
> 4. 다음 그림을 처리합니다.
> 먼저 루프를 사용하여 정규식을 사용하여 추출된 첫 번째 분기 콘텐츠 배열을 처리합니다.
> 여기서 첫 번째 분기는 정규 표현식의 첫 번째 대괄호를 나타냅니다. 하하 등등.
foreach ($result[1] as $val) { }
> 이 /upload/201109/20110926143903807.gif도 고려해야 하므로 정규식을 사용하여 결정하세요.
> 이는 다른 사람들처럼 /img/1.gif 또는 img/1.gif 대신 전체 경로를 사용합니다.
> 그러니 따로 판단한 후 이 두 가지를 판단하여 /img/1.gif인지 img/1.gif인지 확인하세요.
<?php //URL是远程的完整图片地址,不能为空, $filename 是另存为的图片名字 //默认把图片放在以此脚本相同的目录里 function GrabImage($url, $filename=""){ //$url 为空则返回 false; if($url == ""){return false;} $ext = strrchr($url, ".");//得到图片的扩展名 if($ext != ".gif" && $ext != ".jpg" && $ext != ".bmp"){echo "格式不支持!";return false;} if($filename == ""){$filename = time()."$ext";}//以时间戳另起名 //开始捕捉 ob_start(); readfile($url); $img = ob_get_contents(); ob_end_clean(); $size = strlen($img); $fp2 = fopen($filename , "a"); fwrite($fp2, $img); fclose($fp2); return $filename; } //测试 GrabImage("http://www.php.cn/images/logo.gif", "as.gif"); ?>
ob_start : 출력 버퍼링 켜기
이 함수는 출력 버퍼링이 활성화된 동안 스크립트에서 출력이 전송되지 않고(헤더 제외) 내부 버퍼에 저장됩니다.
//
readfile: 파일을 읽고 출력 버퍼에 씁니다.
파일에서 읽은 바이트 수를 반환합니다. 오류가 발생하면 FALSE를 반환하고 @readfile()로 호출하지 않으면 오류 메시지를 표시합니다.
//
ob_get_contents : 출력 버퍼의 내용 반환(출력 버퍼의 내용 반환)
출력 버퍼링이 활성화되지 않은 경우 출력 버퍼의 내용을 지우거나 FALSE로 반환합니다(열기). ), FALSE 반환)
//
ob_end_clean(): 출력 버퍼를 정리(삭제)하고 출력 버퍼링을 끕니다(출력 버퍼 지우기).
위 내용은 PHP를 사용하여 CSS 이미지 코드를 캡처하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 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.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.
