Введение в Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  • Zend_Gdata
  • Zend_Http
  • Zend_InfoCard
  • Zend_Json
  • Zend_Layout
  • Zend_Ldap
  • Zend_Loader
  • Zend_Locale
  • Zend_Log
  • Zend_Mail
  • Zend_Markup
  • Zend_Measure
  • Zend_Memory
  • Zend_Mime
  • Zend_Navigation
  • Zend_Oauth
  • Zend_OpenId
  • Zend_Paginator
  • Zend_Pdf
  • Zend_ProgressBar
  • Zend_Queue
  • Zend_Reflection
  • Zend_Registry
  • Zend_Rest

  • Zend_Search_Lucene
  • Zend_Serializer
  • Zend_Server
  • Zend_Service
  • Zend_Session
  • Zend_Soap
  • Zend_Tag
  • Zend_Test
  • Zend_Text
  • Zend_TimeSync
  • Zend_Tool
  • Zend_Tool_Framework
  • Zend_Tool_Project
  • Zend_Translate
  • Zend_Uri
  • Zend_Validate
  • Zend_Version
  • Zend_View
  • Zend_Wildfire
  • Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Ttranslation 27.4% Update 2010-11-28 - Revision 23238 - Version ZF 1.11.x

    Глава 34. Zend_Filter

    Содержание

    34.1. Введение
    34.1.1. Что есть фильтр?
    34.1.2. Основы использования фильтров
    34.1.3. Использование статического метода get()
    34.2. Standard Filter Classes
    34.2.1. Alnum
    34.2.1.1. Supported options for Zend_Filter_Alnum
    34.2.1.2. Basic usage
    34.2.1.3. Allow whitespaces
    34.2.2. Alpha
    34.2.2.1. Supported options for Zend_Filter_Alpha
    34.2.2.2. Basic usage
    34.2.2.3. Allow whitespace characters
    34.2.3. BaseName
    34.2.3.1. Supported options for Zend_Filter_BaseName
    34.2.3.2. Basic usage
    34.2.4. Boolean
    34.2.4.1. Supported options for Zend_Filter_Boolean
    34.2.4.2. Default behaviour for Zend_Filter_Boolean
    34.2.4.3. Changing behaviour for Zend_Filter_Boolean
    34.2.4.4. Localized booleans
    34.2.4.5. Disable casting
    34.2.5. Callback
    34.2.5.1. Supported options for Zend_Filter_Callback
    34.2.5.2. Basic usage
    34.2.5.3. Default parameters within a callback
    34.2.6. Compress and Decompress
    34.2.6.1. Supported options for Zend_Filter_Compress and Zend_Filter_Decompress
    34.2.6.2. Supported compression adapters
    34.2.6.3. Generic handling
    34.2.6.4. Creating an archive
    34.2.6.5. Decompressing an archive
    34.2.6.6. Bz2 Adapter
    34.2.6.7. Gz Adapter
    34.2.6.8. Lzf Adapter
    34.2.6.9. Rar Adapter
    34.2.6.10. Tar Adapter
    34.2.6.11. Zip Adapter
    34.2.7. Digits
    34.2.7.1. Supported options for Zend_Filter_Digits
    34.2.7.2. Basic usage
    34.2.8. Dir
    34.2.8.1. Supported options for Zend_Filter_Dir
    34.2.8.2. Basic usage
    34.2.9. Encrypt and Decrypt
    34.2.9.1. Supported options for Zend_Filter_Encrypt and Zend_Filter_Decrypt
    34.2.9.2. Adapter usage
    34.2.9.3. Encryption with Mcrypt
    34.2.9.4. Decryption with Mcrypt
    34.2.9.5. Encryption with OpenSSL
    34.2.9.5.1. Simplified usage with Openssl
    34.2.9.5.2. Compressing the content
    34.2.9.6. Decryption with OpenSSL
    34.2.10. HtmlEntities
    34.2.10.1. Supported options for Zend_Filter_HtmlEntities
    34.2.10.2. Basic usage
    34.2.10.3. Quote Style
    34.2.10.4. Helper Methods
    34.2.11. Int
    34.2.11.1. Supported options for Zend_Filter_Int
    34.2.11.2. Basic usage
    34.2.12. LocalizedToNormalized and NormalizedToLocalized
    34.2.12.1. Supported options for Zend_Filter_LocalizedToNormalized and Zend_Filter_NormalizedToLocalized
    34.2.12.2. Workflow
    34.2.12.3. Normalization for numbers
    34.2.12.4. Normalization for date and time
    34.2.12.5. Localization for numbers
    34.2.12.6. Localization for date and time
    34.2.13. Null
    34.2.13.1. Supported options for Zend_Filter_Null
    34.2.13.2. Default behaviour for Zend_Filter_Null
    34.2.13.3. Changing behaviour for Zend_Filter_Null
    34.2.14. PregReplace
    34.2.14.1. Supported options for Zend_Filter_PregReplace
    34.2.14.2. Basic usage
    34.2.15. RealPath
    34.2.15.1. Supported options for Zend_Filter_RealPath
    34.2.15.2. Basic usage
    34.2.15.3. Non existing paths
    34.2.16. StringToLower
    34.2.16.1. Supported options for Zend_Filter_StringToLower
    34.2.16.2. Basic usage
    34.2.16.3. Different encoded strings
    34.2.17. StringToUpper
    34.2.17.1. Supported options for Zend_Filter_StringToUpper
    34.2.17.2. Basic usage
    34.2.17.3. Different encoded strings
    34.2.18. StringTrim
    34.2.18.1. Supported options for Zend_Filter_StringTrim
    34.2.18.2. Basic usage
    34.2.18.3. Default behaviour for Zend_Filter_StringTrim
    34.2.19. StripNewLines
    34.2.19.1. Supported options for Zend_Filter_StripNewLines
    34.2.19.2. Basic usage
    34.2.20. StripTags
    34.2.20.1. Supported options for Zend_Filter_StripTags
    34.2.20.2. Basic usage
    34.2.20.3. Allowing defined tags
    34.2.20.4. Allowing defined attributes
    34.3. Цепочки фильтров
    34.4. Написание фильтров
    34.5. Zend_Filter_Input
    34.5.1. Declaring Filter and Validator Rules
    34.5.2. Creating the Filter and Validator Processor
    34.5.3. Retrieving Validated Fields and other Reports
    34.5.3.1. Querying if the input is valid
    34.5.3.2. Getting Invalid, Missing, or Unknown Fields
    34.5.3.3. Getting Valid Fields
    34.5.4. Using Metacommands to Control Filter or Validator Rules
    34.5.4.1. The FIELDS metacommand
    34.5.4.2. The PRESENCE metacommand
    34.5.4.3. The DEFAULT_VALUE metacommand
    34.5.4.4. The ALLOW_EMPTY metacommand
    34.5.4.5. The BREAK_CHAIN metacommand
    34.5.4.6. The MESSAGES metacommand
    34.5.4.7. Using options to set metacommands for all rules
    34.5.5. Adding Filter Class Namespaces
    34.6. Zend_Filter_Inflector
    34.6.1. Operation
    34.6.2. Setting Paths To Alternate Filters
    34.6.3. Setting the Inflector Target
    34.6.4. Inflection Rules
    34.6.4.1. Static Rules
    34.6.4.2. Filter Inflector Rules
    34.6.4.3. Setting Many Rules At Once
    34.6.5. Utility Methods
    34.6.6. Using Zend_Config with Zend_Filter_Inflector

    34.1. Введение

    Компонента Zend_Filter предоставляет набор наиболее часто используемых фильтров данных. Она также предоставляет простой механизм формирования цепочек фильтров данных, с использованием которого одни и те же данные могут обрабатываться несколькими фильтрами в порядке, заданном пользователем.

    34.1.1. Что есть фильтр?

    В материальном мире фильтр обычно используется для удаления нежелательных частей ввода. Желаемые части ввода проходят сквозь фильтр и являются выводом фильтра. В таких сценариях фильтр является опрератором, который выделяет подмножество ввода. Этот тип фильтра полезен для веб-приложений - удаление недопустимого ввода, лишних пробельных символов и т.д.

    Это базовое определение фильтра может быть расширено включением общих преобразований ввода. Часто встречающееся в веб-приложениях преобразование - экранирование сущностей HTML (HTML entities). Например, если поле формы автоматически заполняется ненадежными данными (например, данными из веб-броузера), то это значение не должно включать в себя сущности HTML, либо эти сущности должны быть экранированы, для предотвращения нежелательного поведения и угроз безопасности. В соответствии с этими требованиями сущности HTML должны быть удалены или экранированы - выбор подхода зависит от ситуации. Фильтр, который экранирует сущности HTML, тем не менее, преобразовывает ввод (например, "&" преобразовывается в "&"). Поддержка таких случаев использования важна для веб-разработчиков и "фильтрация" в контексте использования Zend_Filter подразумевает выполнение некоторых преобразований над входными данными.

    34.1.2. Основы использования фильтров

    Такое определение фильтра дает основу для Zend_Filter_Interface, который требует от классов фильтров реализации одного метода с именем filter().

    Ниже приведен пример использования фильтра с двумя вариантами входных данных - амперсандом (&) и двойными кавычками (").

    $htmlEntities = new Zend_Filter_HtmlEntities();

    echo 
    $htmlEntities->filter('&'); // &
    echo $htmlEntities->filter('"'); // "

    34.1.3. Использование статического метода get()

    Каждый раз загружать нужный класс фильтра и создавать его экземпляр довольно неудобно, поэтому был создан статический метод Zend_Filter::get(), который можно использовать как альтернативный способ вызова. Первым агрументом этого метода является значение входных данных, которое требуется передать методу filter(). Вторым аргументом является строка, которая соответствует базовому имени класса фильтра относительно пространства имен Zend_Filter. Метод get() автоматически загружает класс, создает его экземпляр и применяет метод filter() к входным данным.

    echo Zend_Filter::get('&''HtmlEntities');

    Можно также передавать массив аргументов для конструктора, если это необходимо для используемого класса фильтра.

    echo Zend_Filter::get('"''HtmlEntities', array(ENT_QUOTES));

    Использование метода get() может быть удобным для единичного вызова фильтра. Но если нужно пропустить через один и тот же фильтр несколько значений, то более эффективным будет создавать экземпляр фильтра и вызывать его метод filter(), как это было показано в первом примере.

    Zend_Filter_Input также позволяет инстанцировать и запускать несколько фильтров и валидаторов для обработки наборов данных. Более подробную информацию читайте в Раздел 34.5, «Zend_Filter_Input».

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...