Хотя верно, что запрос регулярных выражений для синтаксического анализа произвольного HTML похож на прошение начинающему писать операционную систему, иногда бывает целесообразно проанализировать ограниченный , известный набор HTML.
Если у вас есть небольшой набор HTML-страниц, которые вы хотите очистить данные, а затем вложить в базу данных, регулярные выражения могут работать нормально. Например, недавно я хотел получить имена, партии и округа австралийских федеральных представителей, которые я сошел с веб-сайта парламента. Это была ограниченная одноразовая работа.
Regexes отлично справились со мной и были очень быстрыми, чтобы настроить.
Прежде всего вам понадобится расширение PHP intl , поскольку расширение Twig построено поверх этого. Расширение Twig Intl выдаст исключение, если расширение внутреннего интерфейса PHP не включено. Инструкции по установке можно найти в официальной документации PHP.
На машинах Ubuntu / Debian это так же просто, как выполнение следующей команды:
sudo apt-get install php5-intl
На компьютерах Windows вам, вероятно, придется раскомментировать следующую строку в php.ini:
extension=php_intl.dll
Для CentOS или других архитектур следуйте инструкциям здесь . Обратите внимание, что CentOS требует установки как PECL, так и компилятора GCC C ++: yum install php-pear
и yum install gcc-c++
.
После добавления расширения в php.ini перезапустите веб-сервер.
Далее вам понадобится пакет Twig Extensions (который, в частности, содержит расширение Intl), который может быть установлен с помощью Composer. Запустите эту команду в командной строке:
composer require twig/extensions ^1.2
Это добавит зависимость к вашему composer.json
и загрузит ее.
Примечание: фильтры localizednumber
и localizedcurrency
были введены в версии 1.2.0, поэтому вам нужна хотя бы эта версия, если вы хотите их использовать.
Если вы используете Twig в простой PHP project, вы можете добавить расширение с помощью метода addExtension()
.
$twig = new Twig_Environment($loader);
$twig->addExtension(new Twig_Extensions_Extension_Intl());
Если вы используете приложение Symfony, вы можете добавьте расширение в Twig, используя конфигурацию службы в app/config/services.yml
:
services:
twig.extension.intl:
class: Twig_Extensions_Extension_Intl
tags:
- { name: twig.extension }
Locale::setDefault('nl-NL');
Редактировать app/config/config.yml
:
parameters:
locale: nl