<span><?php </span><span>/** </span><span> * Created by PhpStorm. </span><span> * User: kungyu </span><span> * Date: 2015/12/3 </span><span> * Time: 15:30 </span><span> */ </span><span>class </span>mhtparse { <span>var </span><span>$file </span><span>= </span><span>''</span><span>; </span><span>var </span><span>$boundary </span><span>= </span><span>''</span><span>; </span><span>var </span><span>$filedata </span><span>= </span><span>''</span><span>; </span><span>var </span><span>$countparts </span><span>= </span><span>1</span><span>; </span><span>var </span><span>$log </span><span>= </span><span>''</span><span>; </span><span>function </span>extract() { <span>$this</span><span>-></span>read_filedata ()<span>; </span><span>$this</span><span>-></span>file_parts ()<span>; </span><span>return </span><span>1</span><span>; </span>} <span>function </span>set_file(<span>$p</span>) { <span>$this</span><span>-></span>file <span>= </span><span>$p</span><span>; </span>} <span>function </span>get_log() { <span>return </span><span>$this</span><span>-></span>log<span>; </span>} <span>function </span>file_parts() { <span>$lines </span><span>= </span>explode ( <span>"</span><span>\n</span><span>"</span>, substr ( <span>$this</span><span>-></span>filedata, <span>0</span>, <span>8192 </span>) )<span>; </span><span>foreach </span>( <span>$lines </span><span>as </span><span>$line </span>) { <span>$line </span><span>= </span>trim ( <span>$line </span>)<span>; </span><span>if </span>(strpos ( <span>$line</span>, <span>'=' </span>) <span>!== </span><span>FALSE</span>) { <span>if </span>(strpos ( <span>$line</span>, <span>'boundary'</span>, <span>0 </span>) <span>!== </span><span>FALSE</span>) { <span>$range </span><span>= </span><span>$this</span><span>-></span>getrange ( <span>$line</span>, <span>'"'</span>, <span>'"'</span>, <span>0 </span>)<span>; </span><span>$this</span><span>-></span>boundary <span>= </span><span>"--" </span><span>. </span><span>$range </span><span>[</span><span>'range'</span><span>]</span><span>; </span><span>$this</span><span>-></span>filedata <span>= </span>str_replace ( <span>$line</span>, <span>''</span>, <span>$this</span><span>-></span>filedata )<span>; </span><span>break</span><span>; </span>} } } <span>if </span>(<span>$this</span><span>-></span>boundary <span>!= </span><span>''</span>) { <span>$this</span><span>-></span>filedata <span>= </span>explode ( <span>$this</span><span>-></span>boundary, <span>$this</span><span>-></span>filedata )<span>; </span><span>unset </span>( <span>$this</span><span>-></span>filedata <span>[</span><span>0</span><span>] </span>)<span>; </span><span>$this</span><span>-></span>filedata <span>= </span>array_values ( <span>$this</span><span>-></span>filedata )<span>; </span><span>$this</span><span>-></span>countparts <span>= </span>count ( <span>$this</span><span>-></span>filedata )<span>; </span>} <span>else </span>{ <span>$tmp </span><span>= </span><span>$this</span><span>-></span>filedata<span>; </span><span>$this</span><span>-></span>filedata <span>= </span><span>array </span>( <span>$tmp </span>)<span>; </span>} } <span>function </span>get_all_part_file() { <span>return </span><span>$this</span><span>-></span>filedata<span>; </span>} <span>function </span>get_part_to_file(<span>$i</span>) { <span>$line_dat<strong>a_star</strong>t </span><span>= </span><span>0</span><span>; </span><span>$encoding </span><span>= </span><span>''</span><span>; </span><span>$part_lines </span><span>= </span>explode ( <span>"</span><span>\n</span><span>"</span>, ltrim ( <span>$this</span><span>-></span>filedata <span>[</span><span>$i</span><span>] </span>) )<span>; </span><span>foreach </span>( <span>$part_lines </span><span>as </span><span>$line_id </span>=> <span>$line </span>) { <span>$line </span><span>= </span>trim ( <span>$line </span>)<span>; </span><span>if </span>(<span>$line </span><span>== </span><span>''</span>) { <span>if </span>(trim ( <span>$part_lines </span><span>[</span><span>0</span><span>] </span>) <span>== </span><span>'--'</span>) <span>return </span><span>1</span><span>; </span><span>$line_dat<strong>a_star</strong>t </span><span>= </span><span>$line_id</span><span>; </span><span>break</span><span>; </span>} <span>if </span>(strpos ( <span>$line</span>, <span>':' </span>) <span>!== </span><span>FALSE</span>) { <span>$pos </span><span>= </span>strpos ( <span>$line</span>, <span>':' </span>)<span>; </span><span>$k </span><span>= </span>strtolower ( trim ( substr ( <span>$line</span>, <span>0</span>, <span>$pos </span>) ) )<span>; </span><span>$v </span><span>= </span>trim ( substr ( <span>$line</span>, <span>$pos </span><span>+ </span><span>1</span>, strlen ( <span>$line </span>) ) )<span>; </span><span>if </span>(<span>$k </span><span>== </span><span>'content-transfer-encoding'</span>) { <span>$encoding </span><span>= </span><span>$v</span><span>; </span>} <span>if </span>(<span>$k </span><span>== </span><span>'content-location'</span>) { <span>$location </span><span>= </span><span>$v</span><span>; </span>} <span>if </span>(<span>$k </span><span>== </span><span>'content-type'</span>) { <span>$contenttype </span><span>= </span><span>$v</span><span>; </span>} } } <span>foreach </span>( <span>$part_lines </span><span>as </span><span>$line_id </span>=> <span>$line </span>) { <span>if </span>(<span>$line_id </span><span><span>$line_dat<strong>a_star</strong>t</span>) <span>$part_lines </span><span>[</span><span>$line_id</span><span>] = </span><span>''</span><span>; </span>} <span>$part_lines </span><span>= </span>implode ( <span>''</span>, <span>$part_lines </span>)<span>; </span><span>if </span>(<span>$encoding </span><span>== </span><span>'base64'</span>) <span>$part_lines </span><span>= </span>base64_decode ( <span>$part_lines </span>)<span>; </span><span>elseif </span>(<span>$encoding </span><span>== </span><span>'quoted-printable'</span>) <span>$part_lines </span><span>= </span>imap_qprint ( <span>$part_lines </span>)<span>; </span><span>return </span><span>$part_lines</span><span>; </span>} <span>function </span>read_filedata() { <span>$handle </span><span>= </span>fopen ( <span>$this</span><span>-></span>file, <span>'r' </span>)<span>; </span><span>$this</span><span>-></span>filedata <span>= </span>fread ( <span>$handle</span>, filesize ( <span>$this</span><span>-></span>file ) )<span>; </span>fclose ( <span>$handle </span>)<span>; </span>} <span>function </span>getrange(<span>&</span><span>$subject</span>, <span>$Beginmark_str </span><span>= </span><span>'{'</span>, <span>$Endmark_str </span><span>= </span><span>'}'</span>, <span>$Start_pos </span><span>= </span><span>0</span>) { <span>/* </span><span> * $str="sssss { x { xx } {xx{xx } x} x} sssss"; $range=string::getRange($str,'{','}',0); echo $range['range']; //tulem: " x { xx } {xx{xx } x} x" echo $range['behin']; //tulem: 6 echo $range['end']; //tulem: 30 (' ') -- l5pum?¤rgist j?¤rgnev out: array('range'=>$Range,'begin'=>$Begin_firstOccurence_pos,'end'=>$End_sequel_pos) | false v1.1 2004-2006,Uku-Kaarel J5esaar,ukjoesaar@hot.ee,http://www.hot.ee/ukjoesaar,+3725110693 </span><span> */ </span><span>if </span>(<span>empty </span>( <span>$Beginmark_str </span>)) <span>$Beginmark_str </span><span>= </span><span>'{'</span><span>; </span><span>$Beginmark_str_len </span><span>= </span>strlen ( <span>$Beginmark_str </span>)<span>; </span><span>if </span>(<span>empty </span>( <span>$Endmark_str </span>)) <span>$Endmark_str </span><span>= </span><span>'}'</span><span>; </span><span>$Endmark_str_len </span><span>= </span>strlen ( <span>$Endmark_str </span>)<span>; </span><span>/* $Start_pos_cache = 0; */ </span><span>do </span>{ <span>/* !algus */ </span><span>if </span>(<span>! </span>is_int ( <span>$Begin_firstOccurence_pos </span>)) <span>$Start_pos_cache </span><span>= </span><span>$Start_pos</span><span>; </span><span>/* ?algus-test */ </span><span>$Start_pos_cache </span><span>= @</span>strpos ( <span>$subject</span>, <span>$Beginmark_str</span>, <span>$Start_pos_cache </span>)<span>; </span><span>/* this is possible start for range */ </span><span>if </span>(is_int ( <span>$Start_pos_cache </span>)) { <span>/* skip */ </span><span>$Start_pos_cache </span><span>= </span>(<span>$Start_pos_cache </span><span>+ </span><span>$Beginmark_str_len</span>)<span>; </span><span>/* test possible range start pos */ </span><span>if </span>(is_int ( <span>$Begin_firstOccurence_pos </span>)) { <span>if </span>(<span>$Start_pos_cache </span><span><span>$range_end_pos</span>) <span>$rangeClean </span><span>= </span><span>0</span><span>; </span><span>elseif </span>(<span>$Start_pos_cache </span><span>> </span><span>$range_end_pos</span>) <span>$rangeClean </span><span>= </span><span>1</span><span>; </span>} <span>/* here it is */ </span><span>if </span>(<span>! </span>is_int ( <span>$Begin_firstOccurence_pos </span>)) <span>$Begin_firstOccurence_pos </span><span>= </span><span>$Start_pos_cache</span><span>; </span>} <span>/* VIGA NR 0 ALGUST EI OLE */ </span><span>if </span>(<span>! </span>is_int ( <span>$Start_pos_cache </span>)) { <span>/* !algus */ </span><span> /* VIGA NR 1 ALGUSMARKI EI LEITUD : VIIMANE VOIMALIK ALGUS */ </span><span>if </span>(is_int ( <span>$Begin_firstOccurence_pos </span>) <span>and </span>(<span>$Start_pos_cache </span><span><span>$range_end_pos</span>)) <span>$rangeClean </span><span>= </span><span>1</span><span>; </span><span>else </span><span> return false</span><span>; </span>} <span>if </span>(is_int ( <span>$Begin_firstOccurence_pos </span>) <span>and </span>(<span>$rangeClean </span><span>!= </span><span>1</span>)) { <span>if </span>(<span>! </span>is_int ( <span>$End_pos_cache </span>)) <span>$End_sequel_pos </span><span>= </span><span>$Begin_firstOccurence_pos</span><span>; </span><span>$End_pos_cache </span><span>= </span>strpos ( <span>$subject</span>, <span>$Endmark_str</span>, <span>$End_sequel_pos </span>)<span>; </span><span>/* ok */ </span><span>if </span>(is_int ( <span>$End_pos_cache </span>) <span>and </span>(<span>$rangeClean </span><span>!= </span><span>1</span>)) { <span>$range_current_lenght </span><span>= </span>(<span>$End_pos_cache </span><span>- </span><span>$Begin_firstOccurence_pos</span>)<span>; </span><span>$End_sequel_pos </span><span>= </span>(<span>$End_pos_cache </span><span>+ </span><span>$Endmark_str_len</span>)<span>; </span><span>$range_end_pos </span><span>= </span><span>$End_pos_cache</span><span>; </span>} <span>/* VIGA NR 2 LOPPU EI LEITUD */ </span><span>if </span>(<span>! </span>is_int ( <span>$End_pos_cache </span>)) <span>if </span>(<span>$End_pos_cache </span><span>== </span><span>false</span>) <span>return false</span><span>; </span>} } <span>while </span>( <span>$rangeClean </span><span><span>1 </span>)<span>; </span><span>if </span>(is_int ( <span>$Begin_firstOccurence_pos </span>) <span>and </span>is_int ( <span>$range_current_lenght </span>)) <span>$Range </span><span>= </span>substr ( <span>$subject</span>, <span>$Begin_firstOccurence_pos</span>, <span>$range_current_lenght </span>)<span>; </span><span>else </span><span> return false</span><span>; </span><span>return array </span>( <span>'range' </span>=> <span>$Range</span>, <span>'begin' </span>=> <span>$Begin_firstOccurence_pos</span>, <span>'end' </span>=> <span>$End_sequel_pos </span>)<span>; </span>} <span>// end getrange() </span>} <span>// class </span><span>/*$filename = './test.mht'; </span><span>if (file_exists ( $filename )) { </span><span> if (is_dir ( $filename )) return false; </span><span> $filename = strtolower ( $filename ); </span><span> if (strpos ( $filename, '.mht', 1 ) == FALSE) return false; </span><span> $o_mhtml = new mhtparse (); </span><span> $o_mhtml->set_file ( $filename ); </span><span> $o_mhtml->extract (); </span><span> $res = $o_mhtml->get_part_to_file(0); </span><span> var_dump($res); </span><span>}*/</span></span></span></span></span></span>
위 내용은 a_star 콘텐츠를 포함하여 PHP의 mht 파일 처리 방법을 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP는 현대화 프로세스에서 많은 웹 사이트 및 응용 프로그램을 지원하고 프레임 워크를 통해 개발 요구에 적응하기 때문에 여전히 중요합니다. 1.PHP7은 성능을 향상시키고 새로운 기능을 소개합니다. 2. Laravel, Symfony 및 Codeigniter와 같은 현대 프레임 워크는 개발을 단순화하고 코드 품질을 향상시킵니다. 3. 성능 최적화 및 모범 사례는 응용 프로그램 효율성을 더욱 향상시킵니다.

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

PHP에서는 클론 키워드를 사용하여 객체 사본을 만들고 \ _ \ _ Clone Magic 메소드를 통해 클로닝 동작을 사용자 정의하십시오. 1. 복제 키워드를 사용하여 얕은 사본을 만들어 객체의 속성을 복제하지만 객체의 속성은 아닙니다. 2. \ _ \ _ 클론 방법은 얕은 복사 문제를 피하기 위해 중첩 된 물체를 깊이 복사 할 수 있습니다. 3. 복제의 순환 참조 및 성능 문제를 피하고 클로닝 작업을 최적화하여 효율성을 향상시키기 위해주의를 기울이십시오.

PHP는 웹 개발 및 컨텐츠 관리 시스템에 적합하며 Python은 데이터 과학, 기계 학습 및 자동화 스크립트에 적합합니다. 1.PHP는 빠르고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 데 잘 작동하며 WordPress와 같은 CMS에서 일반적으로 사용됩니다. 2. Python은 Numpy 및 Tensorflow와 같은 풍부한 라이브러리를 통해 데이터 과학 및 기계 학습 분야에서 뛰어난 공연을했습니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

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

WebStorm Mac 버전
유용한 JavaScript 개발 도구

Dreamweaver Mac版
시각적 웹 개발 도구

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