File Parser
, (*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)