> 백엔드 개발 > PHP 튜토리얼 > PHP에서 .DOC 파일을 올바르게 구문 분석하고 문자 해석 오류를 방지하는 방법은 무엇입니까?

PHP에서 .DOC 파일을 올바르게 구문 분석하고 문자 해석 오류를 방지하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-30 06:21:28
원래의
890명이 탐색했습니다.

How to Properly Parse .DOC Files in PHP and Avoid Character Interpretation Errors?

PHP에서 .DOC 파일 읽기

PHP에서 .DOC 파일을 읽는 것은 바이너리 형식으로 인해 어려울 수 있습니다. 하지만 누군가가 제공한 코드를 사용하면 구문 분석할 수 있지만 잘못된 문자 해석이 발생할 수 있습니다.

이 문제를 해결하려면 다음과 같이 수정해야 합니다.

<code class="php">$line = @fread($fileHandle, filesize($userDoc));
$lines = explode(chr(0x0A),$line);</code>
로그인 후 복사

이 변경 사항은 문자 chr(0x0D)를 chr(0x0A)로 대체합니다. Windows에서는 줄 바꿈을 rn(캐리지 리턴과 줄 바꿈)으로 저장하는 반면 UNIX 시스템은 n(줄 바꿈만)을 사용합니다. chr(0x0D)를 사용하면 DOS/Windows 개행 문자를 처리하지만 파일은 Unix 형식으로 저장됩니다.

또한 PHP에서 .docx 파일을 읽으려면 다음 코드를 고려하세요.

<code class="php">function read_file_docx($filename){

    $striped_content = '';
    $content = '';

    if(!$filename || !file_exists($filename)) return false;

    $zip = zip_open($filename);

    if (!$zip || is_numeric($zip)) return false;

    while ($zip_entry = zip_read($zip)) {

        if (zip_entry_open($zip, $zip_entry) == FALSE) continue;

        if (zip_entry_name($zip_entry) != "word/document.xml") continue;

        $content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

        zip_entry_close($zip_entry);
    }// end while

    zip_close($zip);

    $content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);
    $content = str_replace('</w:r></w:p>', "\r\n", $content);
    $striped_content = strip_tags($content);

    return $striped_content;
}</code>
로그인 후 복사

이 코드:

  • .docx 파일을 ZIP 아카이브로 엽니다.
  • "word/document.xml" 파일을 추출합니다.
  • XML 콘텐츠를 구문 분석합니다.
  • 불필요한 태그와 문자를 제거합니다.
  • 파싱된 텍스트 콘텐츠를 반환합니다.

위 내용은 PHP에서 .DOC 파일을 올바르게 구문 분석하고 문자 해석 오류를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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