Alat ini menyediakan binding APACHE Tika untuk PHP, memungkinkan untuk mengekstrak teks dan metadata dari dokumen, gambar, dan format lainnya.
Mode berikut didukung:
Mode server disarankan karena 5 kali lebih cepat, tetapi beberapa host bersama tidak mengizinkan proses menjalankan di latar belakang.
Meskipun perpustakaan berisi daftar versi yang didukung, versi apache Tika harus kompatibel selama kompatibilitas mundur dipertahankan oleh tim Tika. Oleh karena itu, tidak perlu menunggu pembaruan perpustakaan untuk bekerja dengan versi baru dari alat ini.
Catatan : Versi PHP yang didukung akan tetap disinkronkan dengan yang didukung oleh tim PHP terbaru
Instal Menggunakan Komposer:
composer require vaites/php-apache-tikaJika Anda ingin menggunakan OCR, Anda harus menginstal Tesseract:
sudo yum install tesseract (gunakan dnf bukan yum pada fedora 22 atau lebih)sudo apt-get install tesseract-ocrbrew install tesseract (Menggunakan Homebrew)scoop install tesseract (menggunakan scoop) Perpustakaan mengasumsikan tesseract Binary ada di jalur, sehingga Anda dapat mengkompilasinya sendiri atau menginstal menggunakan metode lain.
Mulai server Apache Tika dengan hati -hati:
java -jar tika-server-x.xx.jarJika Anda menggunakan JRE bukan JDK, Anda harus menjalankan jika Anda memiliki Java 9 atau lebih besar:
java --add-modules java.se.ee -jar tika-server-x.xx.jarInstantiate kelas, memeriksa apakah stoples ada atau server berjalan:
$ client = Vaites ApacheTika Client:: make ( ' localhost ' , 9998 ); // server mode (default)
$ client = Vaites ApacheTika Client:: make ( ' /path/to/tika-app.jar ' ); // app mode Jika Anda ingin menggunakan injeksi ketergantungan, membuat serial kelas atau menunda cek:
$ client = Vaites ApacheTika Client:: prepare ( ' localhost ' , 9998 );
$ client = Vaites ApacheTika Client:: prepare ( ' /path/to/tika-app.jar ' ); Anda juga dapat menggunakan URL:
$ client = Vaites ApacheTika Client:: make ( ' http://localhost:9998 ' );
$ client = Vaites ApacheTika Client:: prepare ( ' http://localhost:9998 ' );Gunakan kelas untuk mengekstrak teks dari dokumen:
$ language = $ client -> getLanguage ( ' /path/to/your/document ' );
$ metadata = $ client -> getMetadata ( ' /path/to/your/document ' );
$ html = $ client -> getHTML ( ' /path/to/your/document ' );
$ text = $ client -> getText ( ' /path/to/your/document ' );Atau gunakan untuk mengekstrak teks dari gambar:
$ client = Vaites ApacheTika Client:: make ( $ host , $ port );
$ metadata = $ client -> getMetadata ( ' /path/to/your/image ' );
$ text = $ client -> getText ( ' /path/to/your/image ' ); Anda dapat menggunakan URL alih -alih jalur file dan perpustakaan akan mengunduh file dan meneruskannya ke Apache Tika. Tidak perlu menambahkan -enableUnsecureFeatures -enableFileUrl ke baris perintah saat memulai server, seperti yang dijelaskan di sini.
Jika Anda menggunakan Apache Tika> = 2.0.0, Anda dapat mendefinisikan httpfetcher dan menggunakan opsi -enableUnsecureFeatures -enableFileUrl ketika memulai server untuk membuat server mengunduh file jarak jauh saat melewati URL alih -alih nama file. Untuk melakukannya, Anda harus mengatur nama httpfetcher menggunakan $client->setFetcherName('yourFetcherName') .
Berikut adalah daftar lengkap metode yang tersedia
Metode Terkait File Tika:
$ client -> getMetadata ( $ file );
$ client -> getRecursiveMetadata ( $ file , ' text ' );
$ client -> getLanguage ( $ file );
$ client -> getMIME ( $ file );
$ client -> getHTML ( $ file );
$ client -> getXHTML ( $ file ); // only CLI mode
$ client -> getText ( $ file );
$ client -> getMainText ( $ file );Metode Terkait Tika Lainnya:
$ client -> getSupportedMIMETypes ();
$ client -> getIsMIMETypeSupported ( ' application/pdf ' );
$ client -> getAvailableDetectors ();
$ client -> getAvailableParsers ();
$ client -> getVersion ();Metode pengkodean:
$ client -> getEncoding ();
$ client -> setEncoding ( ' UTF-8 ' );Metode Terkait Versi yang Didukung:
$ client -> getSupportedVersions ();
$ client -> isVersionSupported ( $ version );Set/Dapatkan panggilan balik untuk bacaan berurutan dari respons:
$ client -> setCallback ( $ callback );
$ client -> getCallback ();Set/Dapatkan ukuran chunk untuk baca sekuensial:
$ client -> setChunkSize ( $ size );
$ client -> getChunkSize ();Aktifkan/Nonaktifkan Pengunduh File Remote Internal:
$ client -> setDownloadRemote ( true );
$ client -> getDownloadRemote ();Atur Nama Fetcher:
$ client -> setFetcherName ( $ fetcher ); // one of FileSystemFetcher, HttpFetcher, S3Fetcher, GCSFetcher, or SolrFetcher
$ client -> getFetcherName ();Set/Get Jar/Java Paths (hanya mode CLI):
$ client -> setPath ( $ path );
$ client -> getPath ();
$ client -> setJava ( $ java );
$ client -> getJava ();
$ client -> setJavaArgs ( ' -JXmx4g ' );
$ client -> getJavaArgs ();
$ client -> setEnvVars ([ ' LANG ' => ' es_ES.UTF-8 ' ]);
$ client -> getEnvVars ();Atur/Dapatkan Properti Host
$ client -> setHost ( $ host );
$ client -> getHost ();
$ client -> setPort ( $ port );
$ client -> getPort ();
$ client -> setUrl ( $ url );
$ client -> getUrl ();
$ client -> setRetries ( $ retries );
$ client -> getRetries ();Mengatur/Dapatkan Opsi Klien Curl
$ client -> setOptions ( $ options );
$ client -> getOptions ();
$ client -> setOption ( $ option , $ value );
$ client -> getOption ( $ option );Set/Dapatkan waktu tunggu:
$ client -> setTimeout ( $ seconds );
$ client -> getTimeout ();Set/dapatkan header http (lihat Tikaserver):
$ client -> setHeader ( ' Foo ' , ' bar ' );
$ client -> getHeader ( ' Foo ' );
$ client -> setHeaders ([ ' Foo ' => ' bar ' , ' Bar ' => ' baz ' ]);
$ client -> getHeaders ();Set/dapatkan bahasa OCR (lihat Tikaocr):
$ client -> setOCRLanguage ( $ language );
$ client -> setOCRLanguages ( $ languages );
$ client -> getOCRLanguages ();Setel nama fetcher http (untuk tika> = 2.0.0 saja, lihat https://cwiki.apache.org/confluence/display/tika/tika-pipes)
$ client -> setFetcherName ( $ fetcherName )Karena versi 1.0 ada beberapa perubahan yang melanggar:
$client->getRecursiveMetadata() mengembalikan array seperti yang diharapkanClient::getSupportedVersions() dan Client::isVersionSupported() Metode tidak dapat disebut secara statisClient::getAvailableDetectors() dan Client::getAvailableParsers() identik dan memiliki definisi baruLihat Changelog.md untuk lebih jelasnya.
Perpustakaan ini hanya proxy jadi jika Anda mendapatkan respons empy atau hasil yang tidak terduga, penyebab paling umum adalah Tika itu sendiri. Tes sederhana menggunakan GUI untuk memeriksa respons:
java -jar tika-app-x.xx.jarJika hasilnya sama, Anda harus melihat Jira Tika dan membuka masalah jika perlu.
Secara default teks yang dikembalikan dikodekan dengan Metode UTF-8, dan Client::setEncoding() memungkinkan untuk mengatur penyandian yang diharapkan.
Tes dirancang untuk mencakup semua fitur untuk semua versi yang didukung Apache Tika dalam mode aplikasi dan mode server. Ada beberapa sampel untuk diuji melawan:
Ada beberapa masalah yang ditemukan selama tes, tidak terkait dengan perpustakaan ini: