JOOMLA中国
  • Joomla中国首页
  • 社区
  • 教程
  • 应用市场
  • B计划
Joomla! Framework TM
  • Namespace
  • Class
  • Tree
  • Deprecated

Namespaces

  • Composer
    • Autoload
  • Joomla
    • Application
      • Cli
        • Output
          • Processor
      • Web
    • Data
    • DI
      • Exception
    • Event
    • Filter
    • Input
    • Ldap
    • Registry
      • Format
    • Session
      • Storage
    • String
    • Uri
    • Utilities
  • None
  • PasswordCompat
    • binary
  • PHP
  • Psr
    • Log
  • Symfony
    • Component
      • Yaml
        • Exception
    • Polyfill
      • Util

Classes

  • CallbackFilterIterator
  • ComposerAutoloaderInit205c915b9c7d3e718e7c95793ee67ffe
  • easyparse
  • EasyPeasyICS
  • FOFAutoloaderComponent
  • FOFAutoloaderFof
  • FOFConfigDomainDispatcher
  • FOFConfigDomainTables
  • FOFConfigDomainViews
  • FOFConfigProvider
  • FOFController
  • FOFDatabase
  • FOFDatabaseDriver
  • FOFDatabaseDriverJoomla
  • FOFDatabaseDriverMysql
  • FOFDatabaseDriverMysqli
  • FOFDatabaseDriverOracle
  • FOFDatabaseDriverPdo
  • FOFDatabaseDriverPdomysql
  • FOFDatabaseDriverPostgresql
  • FOFDatabaseDriverSqlazure
  • FOFDatabaseDriverSqlite
  • FOFDatabaseDriverSqlsrv
  • FOFDatabaseFactory
  • FOFDatabaseInstaller
  • FOFDatabaseIterator
  • FOFDatabaseIteratorAzure
  • FOFDatabaseIteratorMysql
  • FOFDatabaseIteratorMysqli
  • FOFDatabaseIteratorOracle
  • FOFDatabaseIteratorPdo
  • FOFDatabaseIteratorPdomysql
  • FOFDatabaseIteratorPostgresql
  • FOFDatabaseIteratorSqlite
  • FOFDatabaseIteratorSqlsrv
  • FOFDatabaseQuery
  • FOFDatabaseQueryElement
  • FOFDatabaseQueryMysql
  • FOFDatabaseQueryMysqli
  • FOFDatabaseQueryOracle
  • FOFDatabaseQueryPdo
  • FOFDatabaseQueryPdomysql
  • FOFDatabaseQueryPostgresql
  • FOFDatabaseQuerySqlazure
  • FOFDatabaseQuerySqlite
  • FOFDatabaseQuerySqlsrv
  • FOFDispatcher
  • FOFDownload
  • FOFDownloadAdapterAbstract
  • FOFDownloadAdapterCurl
  • FOFDownloadAdapterFopen
  • FOFEncryptAes
  • FOFEncryptAesAbstract
  • FOFEncryptAesMcrypt
  • FOFEncryptAesOpenssl
  • FOFEncryptBase32
  • FOFEncryptRandval
  • FOFEncryptTotp
  • FOFForm
  • FOFFormFieldAccesslevel
  • FOFFormFieldActions
  • FOFFormFieldButton
  • FOFFormFieldCachehandler
  • FOFFormFieldCalendar
  • FOFFormFieldCaptcha
  • FOFFormFieldCheckbox
  • FOFFormFieldCheckboxes
  • FOFFormFieldComponents
  • FOFFormFieldEditor
  • FOFFormFieldEmail
  • FOFFormFieldGroupedbutton
  • FOFFormFieldGroupedlist
  • FOFFormFieldHidden
  • FOFFormFieldImage
  • FOFFormFieldImagelist
  • FOFFormFieldInteger
  • FOFFormFieldLanguage
  • FOFFormFieldList
  • FOFFormFieldMedia
  • FOFFormFieldModel
  • FOFFormFieldOrdering
  • FOFFormFieldPassword
  • FOFFormFieldPlugins
  • FOFFormFieldPublished
  • FOFFormFieldRadio
  • FOFFormFieldRelation
  • FOFFormFieldRules
  • FOFFormFieldSelectrow
  • FOFFormFieldSessionhandler
  • FOFFormFieldSpacer
  • FOFFormFieldSql
  • FOFFormFieldTag
  • FOFFormFieldTel
  • FOFFormFieldText
  • FOFFormFieldTextarea
  • FOFFormFieldTimezone
  • FOFFormFieldTitle
  • FOFFormFieldUrl
  • FOFFormFieldUser
  • FOFFormFieldUsergroup
  • FOFFormHeader
  • FOFFormHeaderAccesslevel
  • FOFFormHeaderField
  • FOFFormHeaderFielddate
  • FOFFormHeaderFieldfilterable
  • FOFFormHeaderFieldsearchable
  • FOFFormHeaderFieldselectable
  • FOFFormHeaderFieldsql
  • FOFFormHeaderFilterdate
  • FOFFormHeaderFilterfilterable
  • FOFFormHeaderFiltersearchable
  • FOFFormHeaderFilterselectable
  • FOFFormHeaderFiltersql
  • FOFFormHeaderLanguage
  • FOFFormHeaderModel
  • FOFFormHeaderOrdering
  • FOFFormHeaderPublished
  • FOFFormHeaderRowselect
  • FOFFormHelper
  • FOFHalDocument
  • FOFHalLink
  • FOFHalLinks
  • FOFHalRenderJson
  • FOFInflector
  • FOFInput
  • FOFIntegrationJoomlaFilesystem
  • FOFIntegrationJoomlaPlatform
  • FOFLayoutFile
  • FOFLayoutHelper
  • FOFLess
  • FOFLessFormatterClassic
  • FOFLessFormatterCompressed
  • FOFLessFormatterJoomla
  • FOFLessFormatterLessjs
  • FOFLessParser
  • FOFModel
  • FOFModelBehavior
  • FOFModelBehaviorAccess
  • FOFModelBehaviorEmptynonzero
  • FOFModelBehaviorEnabled
  • FOFModelBehaviorFilters
  • FOFModelBehaviorLanguage
  • FOFModelBehaviorPrivate
  • FOFModelDispatcherBehavior
  • FOFModelField
  • FOFModelFieldBoolean
  • FOFModelFieldDate
  • FOFModelFieldNumber
  • FOFModelFieldText
  • FOFPlatform
  • FOFPlatformFilesystem
  • FOFQueryAbstract
  • FOFRenderAbstract
  • FOFRenderJoomla
  • FOFRenderJoomla3
  • FOFRenderStrapper
  • FOFStringUtils
  • FOFTable
  • FOFTableBehavior
  • FOFTableBehaviorAssets
  • FOFTableBehaviorContenthistory
  • FOFTableBehaviorTags
  • FOFTableDispatcherBehavior
  • FOFTableNested
  • FOFTableRelations
  • FOFTemplateUtils
  • FOFToolbar
  • FOFUtilsArray
  • FOFUtilsCacheCleaner
  • FOFUtilsConfigHelper
  • FOFUtilsFilescheck
  • FOFUtilsIniParser
  • FOFUtilsInstallscript
  • FOFUtilsIp
  • FOFUtilsObject
  • FOFUtilsObservableDispatcher
  • FOFUtilsObservableEvent
  • FOFUtilsPhpfunc
  • FOFUtilsTimer
  • FOFUtilsUpdate
  • FOFUtilsUpdateCollection
  • FOFUtilsUpdateExtension
  • FOFUtilsUpdateJoomla
  • FOFView
  • FOFViewCsv
  • FOFViewForm
  • FOFViewHtml
  • FOFViewJson
  • FOFViewRaw
  • idna_convert
  • JAccess
  • JAccessRule
  • JAccessRules
  • JAccessWrapperAccess
  • JAdapter
  • JAdapterInstance
  • JApplication
  • JApplicationAdministrator
  • JApplicationBase
  • JApplicationCli
  • JApplicationCms
  • JApplicationDaemon
  • JApplicationHelper
  • JApplicationSite
  • JApplicationWeb
  • JApplicationWebRouter
  • JApplicationWebRouterBase
  • JApplicationWebRouterRest
  • JArchive
  • JArchiveBzip2
  • JArchiveGzip
  • JArchiveTar
  • JArchiveWrapperArchive
  • JArchiveZip
  • JArrayHelper
  • JAssociationExtensionHelper
  • JAuthentication
  • JAuthenticationHelper
  • JAuthenticationResponse
  • JBrowser
  • JBuffer
  • JButton
  • JCache
  • JCacheController
  • JCacheControllerCallback
  • JCacheControllerOutput
  • JCacheControllerPage
  • JCacheControllerView
  • JCacheStorage
  • JCacheStorageApc
  • JCacheStorageApcu
  • JCacheStorageCachelite
  • JCacheStorageFile
  • JCacheStorageHelper
  • JCacheStorageMemcache
  • JCacheStorageMemcached
  • JCacheStorageRedis
  • JCacheStorageWincache
  • JCacheStorageXcache
  • JCaptcha
  • JCategories
  • JCategoryNode
  • JClassLoader
  • JCli
  • JClientFtp
  • JClientHelper
  • JClientLdap
  • JClientWrapperHelper
  • JComponentHelper
  • JComponentRecord
  • JComponentRouterBase
  • JComponentRouterLegacy
  • JComponentRouterRulesMenu
  • JComponentRouterRulesNomenu
  • JComponentRouterRulesStandard
  • JComponentRouterView
  • JComponentRouterViewconfiguration
  • JControllerAdmin
  • JControllerBase
  • JControllerForm
  • JControllerLegacy
  • JCrypt
  • JCryptCipher3Des
  • JCryptCipherBlowfish
  • JCryptCipherCrypto
  • JCryptCipherMcrypt
  • JCryptCipherRijndael256
  • JCryptCipherSimple
  • JCryptKey
  • JCryptPasswordSimple
  • JDaemon
  • JDatabase
  • JDatabaseDriver
  • JDatabaseDriverMysql
  • JDatabaseDriverMysqli
  • JDatabaseDriverOracle
  • JDatabaseDriverPdo
  • JDatabaseDriverPdomysql
  • JDatabaseDriverPostgresql
  • JDatabaseDriverSqlazure
  • JDatabaseDriverSqlite
  • JDatabaseDriverSqlsrv
  • JDatabaseExporter
  • JDatabaseExporterMysql
  • JDatabaseExporterMysqli
  • JDatabaseExporterPdomysql
  • JDatabaseExporterPostgresql
  • JDatabaseFactory
  • JDatabaseImporter
  • JDatabaseImporterMysql
  • JDatabaseImporterMysqli
  • JDatabaseImporterPdomysql
  • JDatabaseImporterPostgresql
  • JDatabaseInterface
  • JDatabaseIterator
  • JDatabaseIteratorMysql
  • JDatabaseIteratorMysqli
  • JDatabaseIteratorOracle
  • JDatabaseIteratorPdo
  • JDatabaseIteratorPdomysql
  • JDatabaseIteratorPostgresql
  • JDatabaseIteratorSqlazure
  • JDatabaseIteratorSqlite
  • JDatabaseIteratorSqlsrv
  • JDatabaseMysql
  • JDatabaseMysqli
  • JDatabaseQuery
  • JDatabaseQueryElement
  • JDatabaseQueryLimitable
  • JDatabaseQueryMysql
  • JDatabaseQueryMysqli
  • JDatabaseQueryOracle
  • JDatabaseQueryPdo
  • JDatabaseQueryPdomysql
  • JDatabaseQueryPostgresql
  • JDatabaseQueryPreparable
  • JDatabaseQuerySqlazure
  • JDatabaseQuerySqlite
  • JDatabaseQuerySqlsrv
  • JDatabaseSqlazure
  • JDatabaseSqlsrv
  • JDate
  • JDispatcher
  • JDocument
  • JDocumentError
  • JDocumentFeed
  • JDocumentHtml
  • JDocumentImage
  • JDocumentJson
  • JDocumentOpensearch
  • JDocumentRaw
  • JDocumentRenderer
  • JDocumentRendererAtom
  • JDocumentRendererComponent
  • JDocumentRendererFeedAtom
  • JDocumentRendererFeedRss
  • JDocumentRendererHead
  • JDocumentRendererHtmlComponent
  • JDocumentRendererHtmlHead
  • JDocumentRendererHtmlMessage
  • JDocumentRendererHtmlModule
  • JDocumentRendererHtmlModules
  • JDocumentRendererMessage
  • JDocumentRendererModule
  • JDocumentRendererModules
  • JDocumentRendererRSS
  • JDocumentXml
  • JEditor
  • JError
  • JErrorPage
  • JEvent
  • JEventDispatcher
  • JExtension
  • JFacebook
  • JFacebookAlbum
  • JFacebookCheckin
  • JFacebookComment
  • JFacebookEvent
  • JFacebookGroup
  • JFacebookLink
  • JFacebookNote
  • JFacebookOAuth
  • JFacebookObject
  • JFacebookPhoto
  • JFacebookPost
  • JFacebookStatus
  • JFacebookUser
  • JFacebookVideo
  • JFactory
  • JFeed
  • JFeedEnclosure
  • JFeedEntry
  • JFeedFactory
  • JFeedImage
  • JFeedItem
  • JFeedLink
  • JFeedParser
  • JFeedParserAtom
  • JFeedParserRss
  • JFeedParserRssItunes
  • JFeedParserRssMedia
  • JFeedPerson
  • JFile
  • JFilesystemHelper
  • JFilesystemPatcher
  • JFilesystemWrapperFile
  • JFilesystemWrapperFolder
  • JFilesystemWrapperPath
  • JFilterInput
  • JFilterOutput
  • JFilterWrapperOutput
  • JFolder
  • JForm
  • JFormField
  • JFormFieldAccessLevel
  • JFormFieldAliastag
  • JFormFieldAuthor
  • JFormFieldCacheHandler
  • JFormFieldCalendar
  • JFormFieldCaptcha
  • JFormFieldCategory
  • JFormFieldCheckbox
  • JFormFieldCheckboxes
  • JFormFieldChromeStyle
  • JFormFieldColor
  • JFormFieldCombo
  • JFormFieldComponentlayout
  • JFormFieldComponents
  • JFormFieldContenthistory
  • JFormFieldContentlanguage
  • JFormFieldContenttype
  • JFormFieldDatabaseConnection
  • JFormFieldEditor
  • JFormFieldEMail
  • JFormFieldFile
  • JFormFieldFileList
  • JFormFieldFolderList
  • JFormFieldFrontend_Language
  • JFormFieldGroupedList
  • JFormFieldHeadertag
  • JFormFieldHelpsite
  • JFormFieldHidden
  • JFormFieldImageList
  • JFormFieldInteger
  • JFormFieldLanguage
  • JFormFieldLastvisitDateRange
  • JFormFieldLimitbox
  • JFormFieldList
  • JFormFieldMedia
  • JFormFieldMenu
  • JFormFieldMenuitem
  • JFormFieldMeter
  • JFormFieldModulelayout
  • JFormFieldModuleOrder
  • JFormFieldModulePosition
  • JFormFieldModuletag
  • JFormFieldNote
  • JFormFieldNumber
  • JFormFieldOrdering
  • JFormFieldPassword
  • JFormFieldPlugin_Status
  • JFormFieldPlugins
  • JFormFieldPredefinedList
  • JFormFieldRadio
  • JFormFieldRange
  • JFormFieldRegistrationDateRange
  • JFormFieldRepeatable
  • JFormFieldRules
  • JFormFieldSessionHandler
  • JFormFieldSpacer
  • JFormFieldSQL
  • JFormFieldStatus
  • JFormFieldSubform
  • JFormFieldTag
  • JFormFieldTel
  • JFormFieldTemplatestyle
  • JFormFieldText
  • JFormFieldTextarea
  • JFormFieldTimezone
  • JFormFieldUrl
  • JFormFieldUser
  • JFormFieldUserActive
  • JFormFieldUsergroup
  • JFormFieldUserGroupList
  • JFormFieldUserState
  • JFormHelper
  • JFormRule
  • JFormRuleBoolean
  • JFormRuleCalendar
  • JFormRuleCaptcha
  • JFormRuleColor
  • JFormRuleEmail
  • JFormRuleEquals
  • JFormRuleNotequals
  • JFormRuleNumber
  • JFormRuleOptions
  • JFormRulePassword
  • JFormRuleRules
  • JFormRuleTel
  • JFormRuleUrl
  • JFormRuleUsername
  • JFormWrapperHelper
  • JFTP
  • JGithub
  • JGithubAccount
  • JGithubCommits
  • JGithubForks
  • JGithubHooks
  • JGithubHttp
  • JGithubMeta
  • JGithubMilestones
  • JGithubObject
  • JGithubPackage
  • JGithubPackageActivity
  • JGithubPackageActivityEvents
  • JGithubPackageActivityNotifications
  • JGithubPackageActivityStarring
  • JGithubPackageActivityWatching
  • JGithubPackageAuthorization
  • JGithubPackageData
  • JGithubPackageDataBlobs
  • JGithubPackageDataCommits
  • JGithubPackageDataRefs
  • JGithubPackageDataTags
  • JGithubPackageDataTrees
  • JGithubPackageGists
  • JGithubPackageGistsComments
  • JGithubPackageGitignore
  • JGithubPackageIssues
  • JGithubPackageIssuesAssignees
  • JGithubPackageIssuesComments
  • JGithubPackageIssuesEvents
  • JGithubPackageIssuesLabels
  • JGithubPackageIssuesMilestones
  • JGithubPackageMarkdown
  • JGithubPackageOrgs
  • JGithubPackageOrgsMembers
  • JGithubPackageOrgsTeams
  • JGithubPackagePulls
  • JGithubPackagePullsComments
  • JGithubPackageRepositories
  • JGithubPackageRepositoriesCollaborators
  • JGithubPackageRepositoriesComments
  • JGithubPackageRepositoriesCommits
  • JGithubPackageRepositoriesContents
  • JGithubPackageRepositoriesDownloads
  • JGithubPackageRepositoriesForks
  • JGithubPackageRepositoriesHooks
  • JGithubPackageRepositoriesKeys
  • JGithubPackageRepositoriesMerging
  • JGithubPackageRepositoriesStatistics
  • JGithubPackageRepositoriesStatuses
  • JGithubPackageSearch
  • JGithubPackageUsers
  • JGithubPackageUsersEmails
  • JGithubPackageUsersFollowers
  • JGithubPackageUsersKeys
  • JGithubRefs
  • JGithubStatuses
  • JGoogle
  • JGoogleAuth
  • JGoogleAuthOauth2
  • JGoogleData
  • JGoogleDataAdsense
  • JGoogleDataCalendar
  • JGoogleDataPicasa
  • JGoogleDataPicasaAlbum
  • JGoogleDataPicasaPhoto
  • JGoogleDataPlus
  • JGoogleDataPlusActivities
  • JGoogleDataPlusComments
  • JGoogleDataPlusPeople
  • JGoogleEmbed
  • JGoogleEmbedAnalytics
  • JGoogleEmbedMaps
  • JGrid
  • JHelp
  • JHelper
  • JHelperContent
  • JHelperContenthistory
  • JHelperMedia
  • JHelperRoute
  • JHelperTags
  • JHelperUsergroups
  • JHtml
  • JHtmlAccess
  • JHtmlActionsDropdown
  • JHtmlBatch
  • JHtmlBehavior
  • JHtmlBootstrap
  • JHtmlCategory
  • JHtmlContent
  • JHtmlContentLanguage
  • JHtmlDate
  • JHtmlDebug
  • JHtmlDropdown
  • JHtmlEmail
  • JHtmlForm
  • JHtmlFormbehavior
  • JHtmlGrid
  • JHtmlIcons
  • JHtmlJGrid
  • JHtmlJquery
  • JHtmlLinks
  • JHtmlList
  • JHtmlMenu
  • JHtmlNumber
  • JHtmlRules
  • JHtmlSearchtools
  • JHtmlSelect
  • JHtmlSidebar
  • JHtmlSliders
  • JHtmlSortablelist
  • JHtmlString
  • JHtmlTabs
  • JHtmlTag
  • JHtmlTel
  • JHtmlUser
  • JHttp
  • JHttpFactory
  • JHttpResponse
  • JHttpTransportCurl
  • JHttpTransportSocket
  • JHttpTransportStream
  • JHttpWrapperFactory
  • JImage
  • JImageFilter
  • JImageFilterBackgroundfill
  • JImageFilterBrightness
  • JImageFilterContrast
  • JImageFilterEdgedetect
  • JImageFilterEmboss
  • JImageFilterGrayscale
  • JImageFilterNegate
  • JImageFilterSketchy
  • JImageFilterSmooth
  • JInput
  • JInputCli
  • JInputCookie
  • JInputFiles
  • JInputJSON
  • JInstaller
  • JInstallerAdapter
  • JInstallerAdapterComponent
  • JInstallerAdapterFile
  • JInstallerAdapterLanguage
  • JInstallerAdapterLibrary
  • JInstallerAdapterModule
  • JInstallerAdapterPackage
  • JInstallerAdapterPlugin
  • JInstallerAdapterTemplate
  • JInstallerComponent
  • JInstallerExtension
  • JInstallerFile
  • JInstallerHelper
  • JInstallerLanguage
  • JInstallerLibrary
  • JInstallerManifest
  • JInstallerManifestLibrary
  • JInstallerManifestPackage
  • JInstallerModule
  • JInstallerPackage
  • JInstallerPlugin
  • JInstallerScript
  • JInstallerTemplate
  • JKeychain
  • JLanguage
  • JLanguageAssociations
  • JLanguageHelper
  • JLanguageMultilang
  • JLanguageStemmer
  • JLanguageStemmerPorteren
  • JLanguageTransliterate
  • JLanguageWrapperHelper
  • JLanguageWrapperText
  • JLanguageWrapperTransliterate
  • JLayoutBase
  • JLayoutFile
  • JLayoutHelper
  • JLDAP
  • JLess
  • JLessFormatterJoomla
  • JLibraryHelper
  • JLinkedin
  • JLinkedinCommunications
  • JLinkedinCompanies
  • JLinkedinGroups
  • JLinkedinJobs
  • JLinkedinOauth
  • JLinkedinObject
  • JLinkedinPeople
  • JLinkedinStream
  • JLoader
  • JLog
  • JLogEntry
  • JLogger
  • JLogLogger
  • JLogLoggerCallback
  • JLogLoggerDatabase
  • JLogLoggerEcho
  • JLogLoggerFormattedtext
  • JLogLoggerMessagequeue
  • JLogLoggerSyslog
  • JLogLoggerW3c
  • JMail
  • JMailHelper
  • JMailWrapperHelper
  • JMediawiki
  • JMediawikiCategories
  • JMediawikiHttp
  • JMediawikiImages
  • JMediawikiLinks
  • JMediawikiObject
  • JMediawikiPages
  • JMediawikiSearch
  • JMediawikiSites
  • JMediawikiUsers
  • JMenu
  • JMenuAdministrator
  • JMenuItem
  • JMenuSite
  • JMicrodata
  • JModelAdmin
  • JModelBase
  • JModelDatabase
  • JModelForm
  • JModelItem
  • JModelLegacy
  • JModelList
  • JModuleHelper
  • JNode
  • JOAuth1Client
  • JOAuth2Client
  • JObject
  • JObservable
  • JObserver
  • JObserverMapper
  • JObserverUpdater
  • JObserverWrapperMapper
  • JOpenSearchImage
  • JOpenSearchUrl
  • JOpenstreetmap
  • JOpenstreetmapChangesets
  • JOpenstreetmapElements
  • JOpenstreetmapGps
  • JOpenstreetmapInfo
  • JOpenstreetmapOauth
  • JOpenstreetmapObject
  • JOpenstreetmapUser
  • JPagination
  • JPaginationObject
  • JPath
  • JPathway
  • JPathwaySite
  • JPlatform
  • JPlugin
  • JPluginHelper
  • JProfiler
  • JRequest
  • JResponse
  • JResponseJson
  • JRoute
  • JRouter
  • JRouterAdministrator
  • JRouterSite
  • JRouteWrapperRoute
  • JRule
  • JRules
  • JSchemaChangeitem
  • JSchemaChangeitemMysql
  • JSchemaChangeitemPostgresql
  • JSchemaChangeitemSqlsrv
  • JSchemaChangeset
  • JSearchHelper
  • JSession
  • JSessionHandlerJoomla
  • JSessionHandlerNative
  • JSessionStorage
  • JSessionStorageApc
  • JSessionStorageDatabase
  • JSessionStorageMemcache
  • JSessionStorageMemcached
  • JSessionStorageNone
  • JSessionStorageWincache
  • JSessionStorageXcache
  • JSimplecrypt
  • JSimplepieFactory
  • JStream
  • JStreamString
  • JString
  • JStringController
  • JStringPunycode
  • JStringWrapperNormalise
  • JStringWrapperPunycode
  • JTable
  • JTableAsset
  • JTableCategory
  • JTableContent
  • JTableContenthistory
  • JTableContenttype
  • JTableCorecontent
  • JTableExtension
  • JTableInterface
  • JTableLanguage
  • JTableMenu
  • JTableMenuType
  • JTableModule
  • JTableNested
  • JTableObserver
  • JTableObserverContenthistory
  • JTableObserverTags
  • JTableSession
  • JTableUcm
  • JTableUpdate
  • JTableUpdatesite
  • JTableUser
  • JTableUsergroup
  • JTableViewlevel
  • JText
  • JToolbar
  • JToolbarButton
  • JToolbarButtonConfirm
  • JToolbarButtonCustom
  • JToolbarButtonHelp
  • JToolbarButtonLink
  • JToolbarButtonPopup
  • JToolbarButtonSeparator
  • JToolbarButtonSlider
  • JToolbarButtonStandard
  • JTree
  • JTwitter
  • JTwitterBlock
  • JTwitterDirectmessages
  • JTwitterFavorites
  • JTwitterFriends
  • JTwitterHelp
  • JTwitterLists
  • JTwitterOAuth
  • JTwitterObject
  • JTwitterPlaces
  • JTwitterProfile
  • JTwittersearch
  • JTwitterStatuses
  • JTwitterTrends
  • JTwitterUsers
  • JUcmBase
  • JUcmContent
  • JUcmType
  • JUpdate
  • JUpdateAdapter
  • JUpdater
  • JUpdaterCollection
  • JUpdaterExtension
  • JUri
  • JUser
  • JUserHelper
  • JUserWrapperHelper
  • JUtility
  • JVersion
  • JViewBase
  • JViewCategories
  • JViewCategory
  • JViewCategoryfeed
  • JViewHtml
  • JViewLegacy
  • JWeb
  • JWebClient
  • JXMLElement
  • lessc
  • lessc_formatter_classic
  • lessc_formatter_compressed
  • lessc_formatter_lessjs
  • lessc_parser
  • lessify
  • Net_IDNA_php4
  • nodecounter
  • ntlm_sasl_client_class
  • PHPMailer
  • PHPMailerOAuth
  • PHPMailerOAuthGoogle
  • POP3
  • SimplePie
  • SimplePie_Author
  • SimplePie_Autoloader
  • SimplePie_Cache
  • SimplePie_Cache_DB
  • SimplePie_Cache_File
  • SimplePie_Cache_Memcache
  • SimplePie_Cache_MySQL
  • SimplePie_Caption
  • SimplePie_Category
  • SimplePie_Content_Type_Sniffer
  • SimplePie_Copyright
  • SimplePie_Core
  • SimplePie_Credit
  • SimplePie_Decode_HTML_Entities
  • SimplePie_Enclosure
  • SimplePie_File
  • SimplePie_gzdecode
  • SimplePie_HTTP_Parser
  • SimplePie_IRI
  • SimplePie_Item
  • SimplePie_Locator
  • SimplePie_Misc
  • SimplePie_Net_IPv6
  • SimplePie_Parse_Date
  • SimplePie_Parser
  • SimplePie_Rating
  • SimplePie_Registry
  • SimplePie_Restriction
  • SimplePie_Sanitize
  • SimplePie_Source
  • SimplePie_XML_Declaration_Parser
  • SMTP
  • tagparse
  • TypeError

Interfaces

  • FOFConfigDomainInterface
  • FOFDatabaseInterface
  • FOFDatabaseQueryLimitable
  • FOFDatabaseQueryPreparable
  • FOFDownloadInterface
  • FOFEncryptAesInterface
  • FOFEncryptRandvalinterface
  • FOFFormField
  • FOFHalRenderInterface
  • FOFPlatformFilesystemInterface
  • FOFPlatformInterface
  • JArchiveExtractable
  • JAssociationExtensionInterface
  • JCacheException
  • JComponentRouterInterface
  • JComponentRouterRulesInterface
  • JController
  • JCryptCipher
  • JCryptPassword
  • JFeedParserNamespace
  • JHttpTransport
  • JLayout
  • JModel
  • JObservableInterface
  • JObserverInterface
  • JObserverUpdaterInterface
  • JSessionHandlerInterface
  • JsonSerializable
  • JUcm
  • JView
  • SimplePie_Cache_Base

Exceptions

  • Error
  • JAccessExceptionNotallowed
  • JCacheExceptionConnecting
  • JCacheExceptionUnsupported
  • JComponentExceptionMissing
  • JDatabaseException
  • JDatabaseExceptionConnecting
  • JDatabaseExceptionExecuting
  • JDatabaseExceptionUnsupported
  • JException
  • JSessionExceptionUnsupported
  • LogException
  • phpmailerException
  • SimplePie_Exception

Constants

  • JERROR_CALLBACK_NOT_CALLABLE
  • JERROR_ILLEGAL_MODE
  • JERROR_ILLEGAL_OPTIONS
  • JREQUEST_ALLOWHTML
  • JREQUEST_ALLOWRAW
  • JREQUEST_NOTRIM
  • JROUTER_MODE_RAW
  • JROUTER_MODE_SEF

Functions

  • __autoload
  • array_column
  • boolval
  • composerRequire205c915b9c7d3e718e7c95793ee67ffe
  • gzopen
  • gzseek
  • gztell
  • hash_equals
  • hash_pbkdf2
  • HTMLFilter
  • jexit
  • jimport
  • json_last_error_msg
  • ldap_escape
  • password_get_info
  • password_hash
  • password_needs_rehash
  • password_verify
  • PHPMailerAutoload
  • random_bytes
  • random_int
  • RandomCompat_intval
  • RandomCompat_strlen
  • RandomCompat_substr
  • tln_body2div
  • tln_casenormalize
  • tln_deent
  • tln_defang
  • tln_findnxreg
  • tln_findnxstr
  • tln_fixatts
  • tln_fixstyle
  • tln_fixurl
  • tln_getnxtag
  • tln_sanitize
  • tln_skipspace
  • tln_tagprint
  • tln_unspace
  • utf8_accents_to_ascii
  • utf8_bad_explain
  • utf8_bad_find
  • utf8_bad_findall
  • utf8_bad_identify
  • utf8_bad_replace
  • utf8_bad_strip
  • utf8_byte_position
  • utf8_compliant
  • utf8_from_unicode
  • utf8_ireplace
  • utf8_is_ascii
  • utf8_is_ascii_ctrl
  • utf8_is_valid
  • utf8_is_word_chars
  • utf8_locate_current_chr
  • utf8_locate_next_chr
  • utf8_ltrim
  • utf8_ord
  • utf8_rtrim
  • utf8_specials_pattern
  • utf8_str_pad
  • utf8_str_split
  • utf8_strcasecmp
  • utf8_strcspn
  • utf8_strip_ascii_ctrl
  • utf8_strip_non_ascii
  • utf8_strip_non_ascii_ctrl
  • utf8_strip_specials
  • utf8_stristr
  • utf8_strlen
  • utf8_strpos
  • utf8_strrev
  • utf8_strrpos
  • utf8_strspn
  • utf8_strtolower
  • utf8_strtoupper
  • utf8_substr
  • utf8_substr_replace
  • utf8_to_unicode
  • utf8_trim
  • utf8_ucfirst
  • utf8_ucwords
  • utf8_ucwords_callback
  1 <?php
  2 /**
  3  * SimplePie
  4  *
  5  * A PHP-Based RSS and Atom Feed Framework.
  6  * Takes the hard work out of managing a complete RSS/Atom solution.
  7  *
  8  * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
  9  * All rights reserved.
 10  *
 11  * Redistribution and use in source and binary forms, with or without modification, are
 12  * permitted provided that the following conditions are met:
 13  *
 14  *  * Redistributions of source code must retain the above copyright notice, this list of
 15  *    conditions and the following disclaimer.
 16  *
 17  *  * Redistributions in binary form must reproduce the above copyright notice, this list
 18  *    of conditions and the following disclaimer in the documentation and/or other materials
 19  *    provided with the distribution.
 20  *
 21  *  * Neither the name of the SimplePie Team nor the names of its contributors may be used
 22  *    to endorse or promote products derived from this software without specific prior
 23  *    written permission.
 24  *
 25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
 26  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 27  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
 28  * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 29  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 30  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 31  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 32  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 33  * POSSIBILITY OF SUCH DAMAGE.
 34  *
 35  * @package SimplePie
 36  * @version 1.3.1
 37  * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
 38  * @author Ryan Parman
 39  * @author Geoffrey Sneddon
 40  * @author Ryan McCue
 41  * @link http://simplepie.org/ SimplePie
 42  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
 43  */
 44 
 45 
 46 /**
 47  * Date Parser
 48  *
 49  * @package SimplePie
 50  * @subpackage Parsing
 51  */
 52 class SimplePie_Parse_Date
 53 {
 54     /**
 55      * Input data
 56      *
 57      * @access protected
 58      * @var string
 59      */
 60     var $date;
 61 
 62     /**
 63      * List of days, calendar day name => ordinal day number in the week
 64      *
 65      * @access protected
 66      * @var array
 67      */
 68     var $day = array(
 69         // English
 70         'mon' => 1,
 71         'monday' => 1,
 72         'tue' => 2,
 73         'tuesday' => 2,
 74         'wed' => 3,
 75         'wednesday' => 3,
 76         'thu' => 4,
 77         'thursday' => 4,
 78         'fri' => 5,
 79         'friday' => 5,
 80         'sat' => 6,
 81         'saturday' => 6,
 82         'sun' => 7,
 83         'sunday' => 7,
 84         // Dutch
 85         'maandag' => 1,
 86         'dinsdag' => 2,
 87         'woensdag' => 3,
 88         'donderdag' => 4,
 89         'vrijdag' => 5,
 90         'zaterdag' => 6,
 91         'zondag' => 7,
 92         // French
 93         'lundi' => 1,
 94         'mardi' => 2,
 95         'mercredi' => 3,
 96         'jeudi' => 4,
 97         'vendredi' => 5,
 98         'samedi' => 6,
 99         'dimanche' => 7,
100         // German
101         'montag' => 1,
102         'dienstag' => 2,
103         'mittwoch' => 3,
104         'donnerstag' => 4,
105         'freitag' => 5,
106         'samstag' => 6,
107         'sonnabend' => 6,
108         'sonntag' => 7,
109         // Italian
110         'lunedì' => 1,
111         'martedì' => 2,
112         'mercoledì' => 3,
113         'giovedì' => 4,
114         'venerdì' => 5,
115         'sabato' => 6,
116         'domenica' => 7,
117         // Spanish
118         'lunes' => 1,
119         'martes' => 2,
120         'miércoles' => 3,
121         'jueves' => 4,
122         'viernes' => 5,
123         'sábado' => 6,
124         'domingo' => 7,
125         // Finnish
126         'maanantai' => 1,
127         'tiistai' => 2,
128         'keskiviikko' => 3,
129         'torstai' => 4,
130         'perjantai' => 5,
131         'lauantai' => 6,
132         'sunnuntai' => 7,
133         // Hungarian
134         'hétfő' => 1,
135         'kedd' => 2,
136         'szerda' => 3,
137         'csütörtok' => 4,
138         'péntek' => 5,
139         'szombat' => 6,
140         'vasárnap' => 7,
141         // Greek
142         'Δευ' => 1,
143         'Τρι' => 2,
144         'Τετ' => 3,
145         'Πεμ' => 4,
146         'Παρ' => 5,
147         'Σαβ' => 6,
148         'Κυρ' => 7,
149     );
150 
151     /**
152      * List of months, calendar month name => calendar month number
153      *
154      * @access protected
155      * @var array
156      */
157     var $month = array(
158         // English
159         'jan' => 1,
160         'january' => 1,
161         'feb' => 2,
162         'february' => 2,
163         'mar' => 3,
164         'march' => 3,
165         'apr' => 4,
166         'april' => 4,
167         'may' => 5,
168         // No long form of May
169         'jun' => 6,
170         'june' => 6,
171         'jul' => 7,
172         'july' => 7,
173         'aug' => 8,
174         'august' => 8,
175         'sep' => 9,
176         'september' => 8,
177         'oct' => 10,
178         'october' => 10,
179         'nov' => 11,
180         'november' => 11,
181         'dec' => 12,
182         'december' => 12,
183         // Dutch
184         'januari' => 1,
185         'februari' => 2,
186         'maart' => 3,
187         'april' => 4,
188         'mei' => 5,
189         'juni' => 6,
190         'juli' => 7,
191         'augustus' => 8,
192         'september' => 9,
193         'oktober' => 10,
194         'november' => 11,
195         'december' => 12,
196         // French
197         'janvier' => 1,
198         'février' => 2,
199         'mars' => 3,
200         'avril' => 4,
201         'mai' => 5,
202         'juin' => 6,
203         'juillet' => 7,
204         'août' => 8,
205         'septembre' => 9,
206         'octobre' => 10,
207         'novembre' => 11,
208         'décembre' => 12,
209         // German
210         'januar' => 1,
211         'februar' => 2,
212         'märz' => 3,
213         'april' => 4,
214         'mai' => 5,
215         'juni' => 6,
216         'juli' => 7,
217         'august' => 8,
218         'september' => 9,
219         'oktober' => 10,
220         'november' => 11,
221         'dezember' => 12,
222         // Italian
223         'gennaio' => 1,
224         'febbraio' => 2,
225         'marzo' => 3,
226         'aprile' => 4,
227         'maggio' => 5,
228         'giugno' => 6,
229         'luglio' => 7,
230         'agosto' => 8,
231         'settembre' => 9,
232         'ottobre' => 10,
233         'novembre' => 11,
234         'dicembre' => 12,
235         // Spanish
236         'enero' => 1,
237         'febrero' => 2,
238         'marzo' => 3,
239         'abril' => 4,
240         'mayo' => 5,
241         'junio' => 6,
242         'julio' => 7,
243         'agosto' => 8,
244         'septiembre' => 9,
245         'setiembre' => 9,
246         'octubre' => 10,
247         'noviembre' => 11,
248         'diciembre' => 12,
249         // Finnish
250         'tammikuu' => 1,
251         'helmikuu' => 2,
252         'maaliskuu' => 3,
253         'huhtikuu' => 4,
254         'toukokuu' => 5,
255         'kesäkuu' => 6,
256         'heinäkuu' => 7,
257         'elokuu' => 8,
258         'suuskuu' => 9,
259         'lokakuu' => 10,
260         'marras' => 11,
261         'joulukuu' => 12,
262         // Hungarian
263         'január' => 1,
264         'február' => 2,
265         'március' => 3,
266         'április' => 4,
267         'május' => 5,
268         'június' => 6,
269         'július' => 7,
270         'augusztus' => 8,
271         'szeptember' => 9,
272         'október' => 10,
273         'november' => 11,
274         'december' => 12,
275         // Greek
276         'Ιαν' => 1,
277         'Φεβ' => 2,
278         'Μάώ' => 3,
279         'Μαώ' => 3,
280         'Απρ' => 4,
281         'Μάι' => 5,
282         'Μαϊ' => 5,
283         'Μαι' => 5,
284         'Ιούν' => 6,
285         'Ιον' => 6,
286         'Ιούλ' => 7,
287         'Ιολ' => 7,
288         'Αύγ' => 8,
289         'Αυγ' => 8,
290         'Σεπ' => 9,
291         'Οκτ' => 10,
292         'Νοέ' => 11,
293         'Δεκ' => 12,
294     );
295 
296     /**
297      * List of timezones, abbreviation => offset from UTC
298      *
299      * @access protected
300      * @var array
301      */
302     var $timezone = array(
303         'ACDT' => 37800,
304         'ACIT' => 28800,
305         'ACST' => 34200,
306         'ACT' => -18000,
307         'ACWDT' => 35100,
308         'ACWST' => 31500,
309         'AEDT' => 39600,
310         'AEST' => 36000,
311         'AFT' => 16200,
312         'AKDT' => -28800,
313         'AKST' => -32400,
314         'AMDT' => 18000,
315         'AMT' => -14400,
316         'ANAST' => 46800,
317         'ANAT' => 43200,
318         'ART' => -10800,
319         'AZOST' => -3600,
320         'AZST' => 18000,
321         'AZT' => 14400,
322         'BIOT' => 21600,
323         'BIT' => -43200,
324         'BOT' => -14400,
325         'BRST' => -7200,
326         'BRT' => -10800,
327         'BST' => 3600,
328         'BTT' => 21600,
329         'CAST' => 18000,
330         'CAT' => 7200,
331         'CCT' => 23400,
332         'CDT' => -18000,
333         'CEDT' => 7200,
334         'CET' => 3600,
335         'CGST' => -7200,
336         'CGT' => -10800,
337         'CHADT' => 49500,
338         'CHAST' => 45900,
339         'CIST' => -28800,
340         'CKT' => -36000,
341         'CLDT' => -10800,
342         'CLST' => -14400,
343         'COT' => -18000,
344         'CST' => -21600,
345         'CVT' => -3600,
346         'CXT' => 25200,
347         'DAVT' => 25200,
348         'DTAT' => 36000,
349         'EADT' => -18000,
350         'EAST' => -21600,
351         'EAT' => 10800,
352         'ECT' => -18000,
353         'EDT' => -14400,
354         'EEST' => 10800,
355         'EET' => 7200,
356         'EGT' => -3600,
357         'EKST' => 21600,
358         'EST' => -18000,
359         'FJT' => 43200,
360         'FKDT' => -10800,
361         'FKST' => -14400,
362         'FNT' => -7200,
363         'GALT' => -21600,
364         'GEDT' => 14400,
365         'GEST' => 10800,
366         'GFT' => -10800,
367         'GILT' => 43200,
368         'GIT' => -32400,
369         'GST' => 14400,
370         'GST' => -7200,
371         'GYT' => -14400,
372         'HAA' => -10800,
373         'HAC' => -18000,
374         'HADT' => -32400,
375         'HAE' => -14400,
376         'HAP' => -25200,
377         'HAR' => -21600,
378         'HAST' => -36000,
379         'HAT' => -9000,
380         'HAY' => -28800,
381         'HKST' => 28800,
382         'HMT' => 18000,
383         'HNA' => -14400,
384         'HNC' => -21600,
385         'HNE' => -18000,
386         'HNP' => -28800,
387         'HNR' => -25200,
388         'HNT' => -12600,
389         'HNY' => -32400,
390         'IRDT' => 16200,
391         'IRKST' => 32400,
392         'IRKT' => 28800,
393         'IRST' => 12600,
394         'JFDT' => -10800,
395         'JFST' => -14400,
396         'JST' => 32400,
397         'KGST' => 21600,
398         'KGT' => 18000,
399         'KOST' => 39600,
400         'KOVST' => 28800,
401         'KOVT' => 25200,
402         'KRAST' => 28800,
403         'KRAT' => 25200,
404         'KST' => 32400,
405         'LHDT' => 39600,
406         'LHST' => 37800,
407         'LINT' => 50400,
408         'LKT' => 21600,
409         'MAGST' => 43200,
410         'MAGT' => 39600,
411         'MAWT' => 21600,
412         'MDT' => -21600,
413         'MESZ' => 7200,
414         'MEZ' => 3600,
415         'MHT' => 43200,
416         'MIT' => -34200,
417         'MNST' => 32400,
418         'MSDT' => 14400,
419         'MSST' => 10800,
420         'MST' => -25200,
421         'MUT' => 14400,
422         'MVT' => 18000,
423         'MYT' => 28800,
424         'NCT' => 39600,
425         'NDT' => -9000,
426         'NFT' => 41400,
427         'NMIT' => 36000,
428         'NOVST' => 25200,
429         'NOVT' => 21600,
430         'NPT' => 20700,
431         'NRT' => 43200,
432         'NST' => -12600,
433         'NUT' => -39600,
434         'NZDT' => 46800,
435         'NZST' => 43200,
436         'OMSST' => 25200,
437         'OMST' => 21600,
438         'PDT' => -25200,
439         'PET' => -18000,
440         'PETST' => 46800,
441         'PETT' => 43200,
442         'PGT' => 36000,
443         'PHOT' => 46800,
444         'PHT' => 28800,
445         'PKT' => 18000,
446         'PMDT' => -7200,
447         'PMST' => -10800,
448         'PONT' => 39600,
449         'PST' => -28800,
450         'PWT' => 32400,
451         'PYST' => -10800,
452         'PYT' => -14400,
453         'RET' => 14400,
454         'ROTT' => -10800,
455         'SAMST' => 18000,
456         'SAMT' => 14400,
457         'SAST' => 7200,
458         'SBT' => 39600,
459         'SCDT' => 46800,
460         'SCST' => 43200,
461         'SCT' => 14400,
462         'SEST' => 3600,
463         'SGT' => 28800,
464         'SIT' => 28800,
465         'SRT' => -10800,
466         'SST' => -39600,
467         'SYST' => 10800,
468         'SYT' => 7200,
469         'TFT' => 18000,
470         'THAT' => -36000,
471         'TJT' => 18000,
472         'TKT' => -36000,
473         'TMT' => 18000,
474         'TOT' => 46800,
475         'TPT' => 32400,
476         'TRUT' => 36000,
477         'TVT' => 43200,
478         'TWT' => 28800,
479         'UYST' => -7200,
480         'UYT' => -10800,
481         'UZT' => 18000,
482         'VET' => -14400,
483         'VLAST' => 39600,
484         'VLAT' => 36000,
485         'VOST' => 21600,
486         'VUT' => 39600,
487         'WAST' => 7200,
488         'WAT' => 3600,
489         'WDT' => 32400,
490         'WEST' => 3600,
491         'WFT' => 43200,
492         'WIB' => 25200,
493         'WIT' => 32400,
494         'WITA' => 28800,
495         'WKST' => 18000,
496         'WST' => 28800,
497         'YAKST' => 36000,
498         'YAKT' => 32400,
499         'YAPT' => 36000,
500         'YEKST' => 21600,
501         'YEKT' => 18000,
502     );
503 
504     /**
505      * Cached PCRE for SimplePie_Parse_Date::$day
506      *
507      * @access protected
508      * @var string
509      */
510     var $day_pcre;
511 
512     /**
513      * Cached PCRE for SimplePie_Parse_Date::$month
514      *
515      * @access protected
516      * @var string
517      */
518     var $month_pcre;
519 
520     /**
521      * Array of user-added callback methods
522      *
523      * @access private
524      * @var array
525      */
526     var $built_in = array();
527 
528     /**
529      * Array of user-added callback methods
530      *
531      * @access private
532      * @var array
533      */
534     var $user = array();
535 
536     /**
537      * Create new SimplePie_Parse_Date object, and set self::day_pcre,
538      * self::month_pcre, and self::built_in
539      *
540      * @access private
541      */
542     public function __construct()
543     {
544         $this->day_pcre = '(' . implode(array_keys($this->day), '|') . ')';
545         $this->month_pcre = '(' . implode(array_keys($this->month), '|') . ')';
546 
547         static $cache;
548         if (!isset($cache[get_class($this)]))
549         {
550             $all_methods = get_class_methods($this);
551 
552             foreach ($all_methods as $method)
553             {
554                 if (strtolower(substr($method, 0, 5)) === 'date_')
555                 {
556                     $cache[get_class($this)][] = $method;
557                 }
558             }
559         }
560 
561         foreach ($cache[get_class($this)] as $method)
562         {
563             $this->built_in[] = $method;
564         }
565     }
566 
567     /**
568      * Get the object
569      *
570      * @access public
571      */
572     public static function get()
573     {
574         static $object;
575         if (!$object)
576         {
577             $object = new SimplePie_Parse_Date;
578         }
579         return $object;
580     }
581 
582     /**
583      * Parse a date
584      *
585      * @final
586      * @access public
587      * @param string $date Date to parse
588      * @return int Timestamp corresponding to date string, or false on failure
589      */
590     public function parse($date)
591     {
592         foreach ($this->user as $method)
593         {
594             if (($returned = call_user_func($method, $date)) !== false)
595             {
596                 return $returned;
597             }
598         }
599 
600         foreach ($this->built_in as $method)
601         {
602             if (($returned = call_user_func(array($this, $method), $date)) !== false)
603             {
604                 return $returned;
605             }
606         }
607 
608         return false;
609     }
610 
611     /**
612      * Add a callback method to parse a date
613      *
614      * @final
615      * @access public
616      * @param callback $callback
617      */
618     public function add_callback($callback)
619     {
620         if (is_callable($callback))
621         {
622             $this->user[] = $callback;
623         }
624         else
625         {
626             trigger_error('User-supplied function must be a valid callback', E_USER_WARNING);
627         }
628     }
629 
630     /**
631      * Parse a superset of W3C-DTF (allows hyphens and colons to be omitted, as
632      * well as allowing any of upper or lower case "T", horizontal tabs, or
633      * spaces to be used as the time seperator (including more than one))
634      *
635      * @access protected
636      * @return int Timestamp
637      */
638     public function date_w3cdtf($date)
639     {
640         static $pcre;
641         if (!$pcre)
642         {
643             $year = '([0-9]{4})';
644             $month = $day = $hour = $minute = $second = '([0-9]{2})';
645             $decimal = '([0-9]*)';
646             $zone = '(?:(Z)|([+\-])([0-9]{1,2}):?([0-9]{1,2}))';
647             $pcre = '/^' . $year . '(?:-?' . $month . '(?:-?' . $day . '(?:[Tt\x09\x20]+' . $hour . '(?::?' . $minute . '(?::?' . $second . '(?:.' . $decimal . ')?)?)?' . $zone . ')?)?)?$/';
648         }
649         if (preg_match($pcre, $date, $match))
650         {
651             /*
652             Capturing subpatterns:
653             1: Year
654             2: Month
655             3: Day
656             4: Hour
657             5: Minute
658             6: Second
659             7: Decimal fraction of a second
660             8: Zulu
661             9: Timezone ±
662             10: Timezone hours
663             11: Timezone minutes
664             */
665 
666             // Fill in empty matches
667             for ($i = count($match); $i <= 3; $i++)
668             {
669                 $match[$i] = '1';
670             }
671 
672             for ($i = count($match); $i <= 7; $i++)
673             {
674                 $match[$i] = '0';
675             }
676 
677             // Numeric timezone
678             if (isset($match[9]) && $match[9] !== '')
679             {
680                 $timezone = $match[10] * 3600;
681                 $timezone += $match[11] * 60;
682                 if ($match[9] === '-')
683                 {
684                     $timezone = 0 - $timezone;
685                 }
686             }
687             else
688             {
689                 $timezone = 0;
690             }
691 
692             // Convert the number of seconds to an integer, taking decimals into account
693             $second = round($match[6] + $match[7] / pow(10, strlen($match[7])));
694 
695             return gmmktime($match[4], $match[5], $second, $match[2], $match[3], $match[1]) - $timezone;
696         }
697         else
698         {
699             return false;
700         }
701     }
702 
703     /**
704      * Remove RFC822 comments
705      *
706      * @access protected
707      * @param string $data Data to strip comments from
708      * @return string Comment stripped string
709      */
710     public function remove_rfc2822_comments($string)
711     {
712         $string = (string) $string;
713         $position = 0;
714         $length = strlen($string);
715         $depth = 0;
716 
717         $output = '';
718 
719         while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
720         {
721             $output .= substr($string, $position, $pos - $position);
722             $position = $pos + 1;
723             if ($string[$pos - 1] !== '\\')
724             {
725                 $depth++;
726                 while ($depth && $position < $length)
727                 {
728                     $position += strcspn($string, '()', $position);
729                     if ($string[$position - 1] === '\\')
730                     {
731                         $position++;
732                         continue;
733                     }
734                     elseif (isset($string[$position]))
735                     {
736                         switch ($string[$position])
737                         {
738                             case '(':
739                                 $depth++;
740                                 break;
741 
742                             case ')':
743                                 $depth--;
744                                 break;
745                         }
746                         $position++;
747                     }
748                     else
749                     {
750                         break;
751                     }
752                 }
753             }
754             else
755             {
756                 $output .= '(';
757             }
758         }
759         $output .= substr($string, $position);
760 
761         return $output;
762     }
763 
764     /**
765      * Parse RFC2822's date format
766      *
767      * @access protected
768      * @return int Timestamp
769      */
770     public function date_rfc2822($date)
771     {
772         static $pcre;
773         if (!$pcre)
774         {
775             $wsp = '[\x09\x20]';
776             $fws = '(?:' . $wsp . '+|' . $wsp . '*(?:\x0D\x0A' . $wsp . '+)+)';
777             $optional_fws = $fws . '?';
778             $day_name = $this->day_pcre;
779             $month = $this->month_pcre;
780             $day = '([0-9]{1,2})';
781             $hour = $minute = $second = '([0-9]{2})';
782             $year = '([0-9]{2,4})';
783             $num_zone = '([+\-])([0-9]{2})([0-9]{2})';
784             $character_zone = '([A-Z]{1,5})';
785             $zone = '(?:' . $num_zone . '|' . $character_zone . ')';
786             $pcre = '/(?:' . $optional_fws . $day_name . $optional_fws . ',)?' . $optional_fws . $day . $fws . $month . $fws . $year . $fws . $hour . $optional_fws . ':' . $optional_fws . $minute . '(?:' . $optional_fws . ':' . $optional_fws . $second . ')?' . $fws . $zone . '/i';
787         }
788         if (preg_match($pcre, $this->remove_rfc2822_comments($date), $match))
789         {
790             /*
791             Capturing subpatterns:
792             1: Day name
793             2: Day
794             3: Month
795             4: Year
796             5: Hour
797             6: Minute
798             7: Second
799             8: Timezone ±
800             9: Timezone hours
801             10: Timezone minutes
802             11: Alphabetic timezone
803             */
804 
805             // Find the month number
806             $month = $this->month[strtolower($match[3])];
807 
808             // Numeric timezone
809             if ($match[8] !== '')
810             {
811                 $timezone = $match[9] * 3600;
812                 $timezone += $match[10] * 60;
813                 if ($match[8] === '-')
814                 {
815                     $timezone = 0 - $timezone;
816                 }
817             }
818             // Character timezone
819             elseif (isset($this->timezone[strtoupper($match[11])]))
820             {
821                 $timezone = $this->timezone[strtoupper($match[11])];
822             }
823             // Assume everything else to be -0000
824             else
825             {
826                 $timezone = 0;
827             }
828 
829             // Deal with 2/3 digit years
830             if ($match[4] < 50)
831             {
832                 $match[4] += 2000;
833             }
834             elseif ($match[4] < 1000)
835             {
836                 $match[4] += 1900;
837             }
838 
839             // Second is optional, if it is empty set it to zero
840             if ($match[7] !== '')
841             {
842                 $second = $match[7];
843             }
844             else
845             {
846                 $second = 0;
847             }
848 
849             return gmmktime($match[5], $match[6], $second, $month, $match[2], $match[4]) - $timezone;
850         }
851         else
852         {
853             return false;
854         }
855     }
856 
857     /**
858      * Parse RFC850's date format
859      *
860      * @access protected
861      * @return int Timestamp
862      */
863     public function date_rfc850($date)
864     {
865         static $pcre;
866         if (!$pcre)
867         {
868             $space = '[\x09\x20]+';
869             $day_name = $this->day_pcre;
870             $month = $this->month_pcre;
871             $day = '([0-9]{1,2})';
872             $year = $hour = $minute = $second = '([0-9]{2})';
873             $zone = '([A-Z]{1,5})';
874             $pcre = '/^' . $day_name . ',' . $space . $day . '-' . $month . '-' . $year . $space . $hour . ':' . $minute . ':' . $second . $space . $zone . '$/i';
875         }
876         if (preg_match($pcre, $date, $match))
877         {
878             /*
879             Capturing subpatterns:
880             1: Day name
881             2: Day
882             3: Month
883             4: Year
884             5: Hour
885             6: Minute
886             7: Second
887             8: Timezone
888             */
889 
890             // Month
891             $month = $this->month[strtolower($match[3])];
892 
893             // Character timezone
894             if (isset($this->timezone[strtoupper($match[8])]))
895             {
896                 $timezone = $this->timezone[strtoupper($match[8])];
897             }
898             // Assume everything else to be -0000
899             else
900             {
901                 $timezone = 0;
902             }
903 
904             // Deal with 2 digit year
905             if ($match[4] < 50)
906             {
907                 $match[4] += 2000;
908             }
909             else
910             {
911                 $match[4] += 1900;
912             }
913 
914             return gmmktime($match[5], $match[6], $match[7], $month, $match[2], $match[4]) - $timezone;
915         }
916         else
917         {
918             return false;
919         }
920     }
921 
922     /**
923      * Parse C99's asctime()'s date format
924      *
925      * @access protected
926      * @return int Timestamp
927      */
928     public function date_asctime($date)
929     {
930         static $pcre;
931         if (!$pcre)
932         {
933             $space = '[\x09\x20]+';
934             $wday_name = $this->day_pcre;
935             $mon_name = $this->month_pcre;
936             $day = '([0-9]{1,2})';
937             $hour = $sec = $min = '([0-9]{2})';
938             $year = '([0-9]{4})';
939             $terminator = '\x0A?\x00?';
940             $pcre = '/^' . $wday_name . $space . $mon_name . $space . $day . $space . $hour . ':' . $min . ':' . $sec . $space . $year . $terminator . '$/i';
941         }
942         if (preg_match($pcre, $date, $match))
943         {
944             /*
945             Capturing subpatterns:
946             1: Day name
947             2: Month
948             3: Day
949             4: Hour
950             5: Minute
951             6: Second
952             7: Year
953             */
954 
955             $month = $this->month[strtolower($match[2])];
956             return gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]);
957         }
958         else
959         {
960             return false;
961         }
962     }
963 
964     /**
965      * Parse dates using strtotime()
966      *
967      * @access protected
968      * @return int Timestamp
969      */
970     public function date_strtotime($date)
971     {
972         $strtotime = strtotime($date);
973         if ($strtotime === -1 || $strtotime === false)
974         {
975             return false;
976         }
977         else
978         {
979             return $strtotime;
980         }
981     }
982 }
983 
984 
Joomla! Framework TM API documentation generated by ApiGen 2.8.0
Joomla!® and Joomla! Framework™ are trademarks of Open Source Matters, Inc. in the United States and other countries.