国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ バックエンド開発 PHPチュートリアル PHP を使用して Word、Excel、PowerPoint ファイルからテキストを抽出する方法

PHP を使用して Word、Excel、PowerPoint ファイルからテキストを抽出する方法

Nov 17, 2024 pm 07:42 PM

How to Extract Text from Word, Excel, and PowerPoint Files Using PHP?

PHP で Word およびその他の Office ファイルからテキストを抽出する方法

Word (.doc および .doc など) を含む Microsoft Office ドキュメントからテキストを取得するdocx)、Excel (.xlsx)、および PowerPoint (.pptx) は、文書コンテンツ內(nèi)の検索などのタスクに必要になることがよくあります。

Word 文書の読み取り

の場合.doc ファイルの場合は、バイナリ ファイルのアプローチを使用できます。

class DocxConversion{
    // ...
    private function read_doc() {
        $fileHandle = fopen($this->filename, "r");
        $line = @fread($fileHandle, filesize($this->filename));   
        $lines = explode(chr(0x0D),$line);
        $outtext = "";
        foreach($lines as $thisline)
          {
            $pos = strpos($thisline, chr(0x00));
            if (($pos !== FALSE)||(strlen($thisline)==0))
              {
              } else {
                $outtext .= $thisline." ";
              }
          }
         $outtext = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)]/","",$outtext);
        return $outtext;
    }
    // ...
}

本質(zhì)的に XML を含む zip ファイルである .docx ファイルの場合、次の操作を行う必要があります。

class DocxConversion{
    // ...
    private function read_docx(){
        $striped_content = '';
        $content = '';
        $zip = zip_open($this->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;
    }
    // ...
}

Excel ファイルの読み取り

これは、Excel ファイル內(nèi)の「xl/sharedStrings.xml」ファイルからテキストを抽出することで実行できます:

class DocxConversion{
    // ...
    function xlsx_to_text($input_file){
        $xml_filename = "xl/sharedStrings.xml"; //content file name
        $zip_handle = new ZipArchive;
        $output_text = "";
        if(true === $zip_handle->open($input_file)){
            if(($xml_index = $zip_handle->locateName($xml_filename)) !== false){
                $xml_datas = $zip_handle->getFromIndex($xml_index);
                $xml_handle = DOMDocument::loadXML($xml_datas, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
                $output_text = strip_tags($xml_handle->saveXML());
            }else{
                $output_text .="";
            }
            $zip_handle->close();
        }else{
        $output_text .="";
        }
        return $output_text;
    }
    // ...
}

PowerPoint の読み取りファイル

PowerPoint プレゼンテーションからテキストを抽出するには、zip コンテナー內(nèi)の各スライド (.xml) ファイルを開きます:

class DocxConversion{
    // ...
    function pptx_to_text($input_file){
        $zip_handle = new ZipArchive;
        $output_text = "";
        if(true === $zip_handle->open($input_file)){
            $slide_number = 1; //loop through slide files
            while(($xml_index = $zip_handle->locateName("ppt/slides/slide".$slide_number.".xml")) !== false){
                $xml_datas = $zip_handle->getFromIndex($xml_index);
                $xml_handle = DOMDocument::loadXML($xml_datas, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
                $output_text .= strip_tags($xml_handle->saveXML());
                $slide_number++;
            }
            if($slide_number == 1){
                $output_text .="";
            }
            $zip_handle->close();
        }else{
        $output_text .="";
        }
        return $output_text;
    }
    // ...
}

使用法

このクラスをファイル変換に使用するには、ファイル パスを使用してクラスをインスタンス化し、convertToText() メソッドを呼び出します。

$docObj = new DocxConversion("test.doc");
//$docObj = new DocxConversion("test.docx");
//$docObj = new DocxConversion("test.xlsx");
//$docObj = new DocxConversion("test.pptx");
echo $docText= $docObj->convertToText();

以上がPHP を使用して Word、Excel、PowerPoint ファイルからテキストを抽出する方法の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Stock Market GPT

Stock Market GPT

AIを活用した投資調(diào)査により賢明な意思決定を?qū)g現(xiàn)

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPの配列の操作方法 PHPの配列の操作方法 Aug 20, 2025 pm 07:01 PM

phparrayshanddedatacollectionseffictifictlyusingindexorassociativeStructures; they recreated witharray()または[]、AccessedViakeys、ModifiedByAssignment、Iterated with foreach、およびmanipulatedUsingfunctionslikecount()、in_array()、Array_key_exists()、Array_exists()、Array_exists()、Array_key_exists()、Array_key_exists()、Array_key_exists()、

PHPでのオブザーバーのデザインパターンとその実裝について説明してください。 PHPでのオブザーバーのデザインパターンとその実裝について説明してください。 Aug 15, 2025 pm 01:54 PM

theobserverdesignpatternablesablesはautomatic of dependentobjectswhenasubject'sstatechanges.1)itdefinesaone-to-manydependencybetweenobjects;

PHPの特性、抽象クラス、およびインターフェイスを?qū)g際のユースケースと比較対照します。 PHPの特性、抽象クラス、およびインターフェイスを?qū)g際のユースケースと比較対照します。 Aug 11, 2025 pm 11:17 PM

interfaceStodefinecontractsforunrelatedclasses、sulmentspecificmethodsを保証します

PHPで$ _Cookie変數(shù)を使用する方法 PHPで$ _Cookie変數(shù)を使用する方法 Aug 20, 2025 pm 07:00 PM

$ _COOKIEISAPHUPSUBLOBLOACCESSINGCOOKIESSENTBYTHESTHEBROWSER; CookiESARESETUSSETCOOKIE()beforeTput、readvia $ _cookie ['name']、updated byReshingWithNewvalues、およびdeletedBysettingAnexprideStampridectiCectiCESTAMPRAGTPRAGTPRAGTPRINESTIMESTAMPRAGTPRUCTIMESTAMPRINESTIMESTAMPRINESTIMESTAMPRINETIMESTAMPRINESTIMESTAM

MySQL支援PHPアプリケーションのデータベースインデックス作成戦略(B-Tree、フルテキストなど)を説明します。 MySQL支援PHPアプリケーションのデータベースインデックス作成戦略(B-Tree、フルテキストなど)を説明します。 Aug 13, 2025 pm 02:57 PM

b-TreeindexeSareBestformostphpapplications、astheisupportequalityandrangequeries、sorting、andareidealforumnsuseduseduseduseduseduseduseduseds; ororderbyclauses;

PHPで公開され、私的で、保護されているもの PHPで公開され、私的で、保護されているもの Aug 24, 2025 am 03:29 AM

公開メンバーに自由にアクセスできます。 2。プライベートメンバーはクラス內(nèi)でのみアクセスできます。 3。保護されたメンバーにクラスやサブクラスにアクセスできます。 4.合理的な使用により、コードのセキュリティと保守性が向上します。

PHPで更新クエリを?qū)g行する方法 PHPで更新クエリを?qū)g行する方法 Aug 24, 2025 am 05:04 AM

MySQLIオブジェクト指向の方法の使用:接続の確立、プリプロセス更新ステートメント、バインドパラメーター、結(jié)果を?qū)g行して確認し、最終的にリソースを閉じます。 2。MySQLI手順の使用方法:関數(shù)を介してデータベースに接続し、ステートメントを準備し、パラメーターをバインドし、更新を?qū)g行し、エラーを処理した後に接続を閉じます。 3. PDOを使用:PDOを介してデータベースに接続し、例外モードを設定し、前処理SQLを設定し、パラメーターをバインドし、更新を?qū)g行し、トライキャッチを使用して例外を処理し、最終的にリソースをリリースします。常に前処理ステートメントを使用して、SQLインジェクションを防ぎ、ユーザーの入力を検証し、時間內(nèi)に接続を密接にしてください。

PHPで日付と時間を操作する方法 PHPで日付と時間を操作する方法 Aug 20, 2025 pm 06:57 PM

UsedateTimeFordatesInphp:createwithnewdateTime()、formatwithformat()、modifyviaadd()ormodify()、setimezoneswithdatetimezone、およびcompareusingoperatorsordiff()togetIntervals。

See all articles