Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Menghuraikan Fail .DOC dalam PHP dan Mengelak Ralat Tafsiran Aksara dengan Betul?

Bagaimana Menghuraikan Fail .DOC dalam PHP dan Mengelak Ralat Tafsiran Aksara dengan Betul?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 06:21:28831semak imbas

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

Membaca Fail .DOC dalam PHP

Membaca fail .DOC dalam PHP boleh mencabar kerana format binarinya. Walau bagaimanapun, anda boleh menghuraikannya menggunakan kod yang disediakan oleh seseorang, tetapi ia mungkin mengakibatkan tafsiran aksara yang salah.

Untuk menyelesaikan isu ini, anda perlu membuat pengubahsuaian berikut:

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

Perubahan ini menggantikan aksara chr(0x0D) dengan chr(0x0A). Windows menyimpan baris baharu sebagai rn (carriage return plus line feed), manakala sistem UNIX menggunakan n (line feed sahaja). Dengan menggunakan chr(0x0D), anda merawat aksara baris baharu DOS/Windows, tetapi fail itu disimpan dalam format Unix.

Selain itu, pertimbangkan kod berikut untuk membaca fail .docx dalam PHP:

<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>

Kod ini:

  • Membuka fail .docx sebagai arkib ZIP.
  • Mengekstrak fail "word/document.xml".
  • Menghuraikan kandungan XML.
  • Mengalih keluar teg dan aksara yang tidak diperlukan.
  • Mengembalikan kandungan teks yang dihuraikan.

Atas ialah kandungan terperinci Bagaimana Menghuraikan Fail .DOC dalam PHP dan Mengelak Ralat Tafsiran Aksara dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn