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 ファイルからテキストを抽出する方法の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

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

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

n 1クエリの問題を避け、関連するデータを事前にロードすることにより、データベースクエリの數(shù)を減らします。 2.必要なフィールドのみを選択して、メモリと帯域幅を保存するために完全なエンティティをロードしないようにします。 3. DoctrineのセカンダリキャッシュやRedis Cacheの高周波クエリ結(jié)果など、キャッシュ戦略を合理的に使用します。 4.エンティティのライフサイクルを最適化し、クリア()を定期的に呼び出してメモリを解放してメモリオーバーフローを防ぎます。 5.データベースインデックスが存在し、生成されたSQLステートメントを分析して、非効率的なクエリを避けます。 6.変更が不要なシナリオで自動変更追跡を無効にし、パフォーマンスを改善するためにアレイまたは軽量モードを使用します。 ORMを正しく使用するには、SQLモニタリング、キャッシュ、バッチ処理、適切な最適化を組み合わせて、開発効率を維持しながらアプリケーションのパフォーマンスを確保する必要があります。

readonlypropertiesinphp8.2canonlybeassignedonedonedontheconstructoraturatiddeclaration andcannotBemodifiedifiedifiedifiedifiedifiedifiedifiadtivedabilityattthelanguagelele.2.

BREFにより、PHP開発者は、サーバーを管理せずにスケーラブルで費(fèi)用対効果の高いアプリケーションを構(gòu)築できます。 1.Brefは、最適化されたPHPランタイムレイヤーを提供し、PHP8.3およびその他のバージョンをサポートし、LaravelやSymfonyなどのフレームワークとシームレスに統(tǒng)合することにより、PHPをAwslambdaにもたらします。 2。展開手順には、次のものが含まれます。Composerを使用してBREFのインストール、httpエンドポイントや職人コマンドなどの関數(shù)とイベントを定義するためにserverless.ymlの構(gòu)成。 3. serverlessdeployコマンドを?qū)g行して、展開を完了し、Apigatewayを自動的に構(gòu)成し、アクセスURLを生成します。 4。Lambdaの制限については、Brefは解決策を提供します。

PHPのゴミ収集メカニズムは參照カウントに基づいていますが、周期的な円形のゴミコレクターによって円形の參照を処理する必要があります。 1。変數(shù)への參照がない場合、參照カウントはすぐにメモリを解放します。 2.參照參照により、メモリを自動的にリリースできなくなり、GCを検出およびクリーニングすることがGCに依存します。 3。GCは、「可能なルート」ZVALがしきい値に到達(dá)するか、GC_COLLECT_CYCLES()を手動で呼び出すとトリガーされます。 4.長期実行PHPアプリケーションは、メモリの漏れを避けるために、gc_status()を監(jiān)視し、gc_collect_cycles()を呼び出す必要があります。 5.ベストプラクティスには、gc_disable()を使用してパフォーマンスキー領(lǐng)域を最適化し、ormのclear()メソッドを介して繰り返しのオブジェクトを最適化する回路參照の回避が含まれます。

usearestapitobridgephpandmlmodelsbyrunningthemodelinpythonviaflaskorapiandapiandcallingtfromphpusingcurlorguzzle.2.runpythosscriptsdirectlyfrompurspusingec()orshell_exec()

bcmathisentialforAccuratecurateptocurrencycalcatulationsinphpbecuseating-pointarithmeticincecceptesuncectesubleroundingErrors.1..2 Yieldimimpreciseresults(e.g.、0.300000000000000000000000000precyptowsyptowyprectoyptoyprecyptoyprecyptoyppowsyptowprecyptowprecyptowprecyptowprecyptowprecyptowprecyptowprecyptowpreciseResults)

rawStringsindomain-drivenApplicationsは、ValueObjedStopReventBugsAndimproveTypeTytyのValueObue obue obue obtedsopreated; 1. 1.SustoprimiteObsessionを使用します

phpevaluates constantexpressionsionsatimeTimetoepperpeperformandenableerrordetection.1.constantexpressionevaluationmeansComputingValuesduring during during during duringは、constantslikeliterals、class Conconstants、またはcledefinedconstants.2.phphphse
