واجهة برمجة تطبيقات PHP مجانية لاستخراج النص والبيانات الوصفية من PDF والصور
مكتبة التعرف الضوئي على الأحرف (OCR) مفتوحة المصدر للـ PHP تسمح باستخراج النص، البيانات الوصفية وHTML من PDF، DOCX، الصور (JPEG، PNG) وغيرها من المستندات بعدة لغات داخل تطبيقات PHP.
في مجال تطوير البرمجيات، التعامل مع النص من أنواع مختلفة من الملفات قد يكون معقدًا لكنه مهمة شائعة. سواء كنت تنشئ نظامًا لإدارة المستندات، أداة لتحليل المحتوى، أو محرك بحث، فإن القدرة على استخراج النص من ملفات PDF، مستندات Word، جداول البيانات، وغيرها من صيغ الملفات أمر حاسم. هنا يأتي دور مكتبة PHP-Apache-Tika. Apache Tika هي مجموعة أدوات مرنة صُممت لإدارة مهام تحليل المحتوى. يمكنك استخدام Tika لاستخراج البيانات الوصفية والنص من صيغ ملفات مختلفة مثل PDF، ملفات Microsoft Office، والصور. تم كتابة Tika في البداية بلغة Java. غالبًا ما تُنشأ كخادم مستقل، مما يجعلها متاحة عبر HTTP. هذه الطريقة تسمح للغات برمجة مختلفة، مثل PHP، بالاستفادة من قدرات Tika القوية دون الحاجة إلى إنشاء عمليات تحليل معقدة من الصفر.
تدعم المكتبة العديد من الميزات مثل استخراج النص وHTML، استخراج البيانات الوصفية، تحسين معالجة الأخطاء، التعرف على OCR، بيانات وصفية موحدة للوثائق، دعم الموارد المحلية والبعيدة، والعديد غير ذلك. مكتبة PHP-Apache-Tika تربط تطبيقات PHP بخادم Apache Tika. بدلاً من بناء محولات أو محللات خاصة بك، يمكنك الاعتماد على هذه المكتبة لإرسال المستندات إلى خادم Tika واستلام النص أو البيانات الوصفية المستخرجة نظيفة. هذا لا يبسط عملية التطوير فحسب، بل يضمن أيضًا استفادة تطبيقك من التحسينات المستمرة ودعم الصيغ الواسع في Tika. سواء كنت تطور نظام إدارة مستندات معقد أو أداة تحليل محتوى خفيفة، توفر مكتبة PHP-Apache-Tika حلاً موثوقًا ومرنًا.
البدء مع PHP-Apache-Tika
الطريقة الموصى بها لتثبيت PHP-Apache-Tika هي استخدام Composer. يرجى استخدام الأمر التالي لتثبيت سلس.
تثبيت PHP-Apache-Tika عبر Composer
composer require vaites/php-apache-tikaتثبيت PHP-Apache-Tika عبر Github
git clone https://github.com/fizzday/OcrPHP.git يمكنك تنزيل المكتبة المشتركة المجمعة من مستودع Github.
استخراج النص وHTML عبر PHP
إحدى الميزات الأساسية لمكتبة PHP-Apache-Tika هي قدرتها على استخراج النص من صيغ مستندات متعددة. يمكن أن يكون هذا مفيدًا بشكل خاص عند تنفيذ وظائف البحث أو أدوات تحليل المحتوى. تدعم المكتبة استخراج النص العادي من المستندات، مما يسهل فهرستها أو البحث فيها أو تحليل محتواها. إليك مقتطف كود يوضح كيفية إرسال المستند إلى خادم Tika واسترجاع محتوى النص العادي، جاهزًا للمعالجة أو الفهرسة الإضافية.
كيفية استخراج النص من مستند داخل تطبيقات PHP؟
require_once 'vendor/autoload.php';
use Vaites\ApacheTika\TikaClient;
// Initialize the Tika client with the Tika server URL
$client = new TikaClient('http://localhost:9998');
// Define the path to the document (e.g., PDF, DOCX, etc.)
$filePath = '/path/to/your/document.pdf';
try {
// Extract text content from the document
$extractedText = $client->extract($filePath);
echo "Extracted Text:\n" . $extractedText;
} catch (\Exception $e) {
echo "Error extracting text: " . $e->getMessage();
}
استخراج البيانات الوصفية عبر مكتبة PHP
إلى جانب النص، غالبًا ما تحتوي المستندات على بيانات وصفية قيمة مثل معلومات المؤلف، تواريخ الإنشاء، وأنواع الملفات. يمكن لمكتبة PHP-Apache-Tika استخراج هذه البيانات الوصفية، مما يتيح لك بناء تطبيقات أكثر غنى. يوضح هذا المثال كيفية استرجاع البيانات الوصفية من مستند. يمكن أن يتضمن المصفوفة الناتجة تفاصيل مختلفة حسب نوع الملف ومحتوياته.
كيفية استخراج البيانات الوصفية باستخدام مكتبة PHP؟
require_once 'vendor/autoload.php';
use Vaites\ApacheTika\TikaClient;
// Initialize the Tika client
$client = new TikaClient('http://localhost:9998');
// Specify the document file path
$filePath = '/path/to/your/document.pdf';
try {
// Extract metadata from the document
$metadata = $client->getMetadata($filePath);
echo "Extracted Metadata:\n";
print_r($metadata);
} catch (\Exception $e) {
echo "Error extracting metadata: " . $e->getMessage();
}
معالجة صيغ ملفات متعددة
تكمن قوة Apache Tika في دعمها لصيغ ملفات متعددة. سواء كنت تتعامل مع ملفات PDF، DOC، صور، أو حتى صيغ أقل شيوعًا، تساعدك هذه المكتبة على استخراج البيانات المطلوبة دون القلق بشأن تفاصيل كل صيغة. تخيل أنك تطور نظام إدارة مستندات يسمح للمستخدمين بتحميل صيغ ملفات مختلفة. يمكنك استخدام المكتبة لتحديد كل من المحتوى والبيانات الوصفية لكل ملف: