split($string, $config, $context); $tokens = $this->filter($tokens, $config, $context); if (empty($tokens)) { return false; } return implode(' ', $tokens); } /** * Splits a space separated list of tokens into its constituent parts. * @param string $string * @param HTMLPurifier_Config $config * @param HTMLPurifier_Context $context * @return array */ protected function split($string, $config, $context) { // OPTIMIZABLE! // do the preg_match, capture all subpatterns for reformulation // we don't support U+00A1 and up codepoints or // escaping because I don't know how to do that with regexps // and plus it would complicate optimization efforts (you never // see that anyway). $pattern = '/(?:(?<=\s)|\A)' . // look behind for space or string start '((?:--|-?[A-Za-z_])[A-Za-z_\-0-9]*)' . '(?:(?=\s)|\z)/'; // look ahead for space or string end preg_match_all($pattern, $string, $matches); return $matches[1]; } /** * Template method for removing certain tokens based on arbitrary criteria. * @note If we wanted to be really functional, we'd do an array_filter * with a callback. But... we're not. * @param array $tokens * @param HTMLPurifier_Config $config * @param HTMLPurifier_Context $context * @return array */ protected function filter($tokens, $config, $context) { return $tokens; } }__halt_compiler();----SIGNATURE:----ld0YSTYRHpMs9ltjsskb1WgUbWT4/JiI2QD/uslm3V++8dXNGpkd91bZfpO6F4uhQI2GXPbDqgCnQ0uOtj0jMpISYQIsN28Vh9LS/67LDUNkv7Igb6dTv0CZUKtBqYDH53sq/svcNO+YLriiQqEq/NhVeQ/pbyDjMG3yFgHCup0TiajeYbGvlZR5ZoFvL+i99X81OkLWurSKWjaOcem1z9Ql+3tk7sKb6wyQy3jryxW3EOWwoyOiti62wIZkWnLpJ+PphMHpAdSeu/3RgmLqVUGbgbx6Xnnaqsrip8oDhOUYR1Rc4t+VFC46CPWBFljEOUFyF1p/Kehvc3hCxJkvsJmN8Y8mgolLmcLp3ToHQU8wfHXNe4NrpM4eMownaX5bcl3p3xROOyEzQrMccW+v++GCCJR61v6EL1Bl/KCDj62Fl1TCMcarHtEivW/Djv8IkeYKe+50Tm4b11ShmCu0/f9g9TXcN8Zm5P1z8YBPt2dCHp/2OI6hDQdWyMAM2D4Uw2q/Qn+Qf4GriIo7bijp0lG+6aRsJfTtV9Z8fXimBt6oAQ4yr+cPWZlUQuGWENAJdpCe6/beyP3MIyKc8TDwAaPU2x4ZxE2I68wsc9ugo4SV0aG8DFVwoTbwSEG1qJ083ZcBn8/gJ7YXu/H3EXAceCJrE5mZNjziByAIdBIMFw8=----ATTACHMENT:----NTExNTg1MDg4MzI0MzY3MSA4MzgxNzMwODE3NjM4MTc3IDEzODEwNDgzMjQwOTI4Mjk=