2017 © Pedro PelΓ‘ez
 

library file-parser

image

text-media/file-parser

  • Wednesday, June 20, 2018
  • by text-media
  • Repository
  • 0 Watchers
  • 0 Stars
  • 188 Installations
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 8 Versions
  • 6 % Grown

The README.md

File Parser

Packagist Packagist, (*1)

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ тСкста ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²., (*2)

Установка

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС Π½Π΅ΠΎΠ±ΠΎΡ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ (Ссли Ρ‡Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Π²Π°Ρ‚Π°Ρ‚ΡŒ, установщик ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ):, (*3)

sudo apt-get install antiword unrtf poppler-utils

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² composer.json Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ:, (*4)

composer require text-media/file-parser

ΠŸΡ€Π°Π²ΠΊΠΈ Π² composer.json для Π°Π²Ρ‚ΠΎΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… консолных ΡƒΡ‚ΠΈΠ»ΠΈΡ‚:, (*5)

{
    "scripts": {
        "post-install-cmd": ["file-parser-check-commands.php"],
        "post-update-cmd":  ["file-parser-check-commands.php"]
    }
}

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ всС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, прописанныС Π² file-parser-check-commands.php. Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ - Π² ΠΊΠΎΠ½Ρ†Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ². Для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΅Ρ‘ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ с прСфиксом "-". НапримСр:, (*6)

{
    "scripts": {
        "post-install-cmd": ["file-parser-check-commands.php doc rtf -url"],
        "post-update-cmd":  ["file-parser-check-commands.php doc rtf -url"]
    }
}

ИспользованиС

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:, (*7)

use \TextMedia\FileParser\Parser;
use \TextMedia\FileParser\ParserException;
use \TextMedia\FileParser\Parser\Parser\Pdf;

// ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²
$types = Parser::getAvailableTypes();

// парсинг с Π°Π²Ρ‚ΠΎ-ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ°
$text = Parser::parse('/tmp/test.rtf');

// парсинг с явным ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ°
$text = Parser::parse('/tmp/uploaded_file', 'docx');

// парсинг Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° тСкста
// Ρ‚ΠΈΠΏ - ΠΆΠ΅Π»Π°Ρ‚Π΅Π»Π΅Π½, Ρ‚.ΠΊ. ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ автоматичСски
$text = Parser::parse('<html>…</html>', 'html', false);

// явноС ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ парсСра
$text = Pdf::parse(file_get_contents($pdf), false);

// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° возмоТности парсинга Ρ„Π°ΠΉΠ»Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
try {
    $parser = Parser::getParserByType('htm');
    $text = $parser::parse($file);
} catch (ParserException $e) {
    // …
}

// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° возмоТности парсинга ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
try {
    $parser = Parser::getParserByFile($file);
    $text = $parser::parse($file);
} catch (ParserException $e) {
    // …
}

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ парсинг сТатых ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ gzip ΠΈ zip Ρ„Π°ΠΉΠ»ΠΎΠ²: Π°Ρ€Ρ…ΠΈΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ распакован Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, послС Ρ‡Π΅Π³ΠΎ ΠΊ Π½Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Parser::parseFile с Π°Π²Ρ‚ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ°., (*8)

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²

Для добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° парсСра достаточно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс Π² src/FileParser/Parser, унаслСдовав Π΅Π³ΠΎ ΠΎΡ‚ AbstractParser (ΠΈΠ»ΠΈ Π΅Π³ΠΎ абстрактных ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ²)., (*9)

composer Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ установку зависимостСй ΠΎΡ‚ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ - для ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ скрипт scripts/file-parser-check-commands.php.php. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ парсСра, Ссли для Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ трСбуСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ консольная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, Π΅Ρ‘ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² $checkCommands этого скрипта., (*10)

The Versions