35.1.1. 概述


35.1.2. 新建一个URI
如果仅有一个模式被传递给Zend_Uri::factory(),Zend_Uri将从头构造一个新的URI.

例 35.1. 使用Zend_Uri::factory()创建一个新的URI

<?phprequire_once 'Zend/Uri.php';// 重新创建一个新的URI,仅传递模式.
$uri = Zend_Uri::factory('http');// $uri instanceof Zend_Uri_Http?>

从头创建一个的新的URI,仅仅需要传递模式给Zend_Uri::factory()[17] . 如果传递了一个未支持的模式,Zend_Uri_Exception异常将被抛出.

如果传递的模式或者URI被支持,Zend_Uri::factory()返回一个它本身的 适应于特定模式(scheme)的 子类


35.1.3. 操作现有的URI
要操作一个现有的URL,把整个URI传递给Zend_Uri::factory().

例 35.2. 使用Zend_Uri::factory()操作一个现有的URI

<?phprequire_once 'Zend/Uri.php';// 操作一个现有的URI,把他传入到Zend_Uri::factory().
$uri = Zend_Uri::factory('http://www.zend.com');// $uri instanceof Zend_Uri_Http?>

这个URI将被解析并且验证.如果发现它是无效的,Zend_Uri_Exception异常立即抛出.否则Zend_Uri::factory() 返回一个它本身的 适应于特定模式(scheme)的 子类


35.1.4. URI 验证

Zend_Uri::check() 函数仅在需要验证一个现有的URI时使用.

例 35.3. 使用Zend_Uri::check()进行URI 验证

<?phprequire_once 'Zend/Uri.php';// 验证一个给定的URI是否是格式良好的
$valid = Zend_Uri::check('http://uri.in.question');// 对于一个有效的URI,$valid为TRUE,否则为FALSE?>

Zend_Uri::check() 返回布尔值,它比使用Zend_Uri::factory()更便捷,并且能够捕获异常.


35.1.5. 公共实例方法

每个Zend_Uri子类的实例(如:Zend_Uri_Http)有多个 有用的 处理任何类型的 URI的实例方法.

35.1.5.1. 取得URI的Schema
URI模式是冒号之前的部分.例如http://www.zend.com的模式是http.

例 35.4. 从Zend_Uri_* 对象取得模式

<?phprequire_once 'Zend/Uri.php';$uri = Zend_Uri::factory('http://www.zend.com');$scheme = $uri->getScheme();  // "http"?>

getScheme()实例方法仅返回URI对象的模式部分.


35.1.5.2. 取得整个URI

例 35.5. 从一个Zend_Uri_* 对象取得整个URI

<?phprequire_once 'Zend/Uri.php';$uri = Zend_Uri::factory('http://www.zend.com');echo $uri->getUri();  // "http://www.zend.com"?>

getUri()方法返回整个URI的字符串标识.


35.1.5.3. 验证URI

Zend_Uri::factory()总是验证传递给它的任何URI,如果给定的URI被认为是无效的,它将不会实例化一个新的Zend_Uri 子类.但是 Zend_Uri子类为 一个新URI 或者 一个现有的有效的URL 被实例化后,在操作后 该URI可能会变得无效.

例 35.6. 验证一个 Zend_Uri_* 对象
valid()实例方法检查URI对象是否仍是有效的.

<?phprequire_once 'Zend/Uri.php';$uri = Zend_Uri::factory('http://www.zend.com');$isValid = $uri->valid();  // TRUE?>

[17] 在撰写本文时,Zend_Uri仅支持HTTP和HTTPS模式.

6. Zend_Uri相关推荐

  1. Magento安装后无法访问

    Magento安装后无法访问,提示"Illegal scheme supplied, only alphanumeric characters are permitted",找到m ...

  2. magento|使用亚马逊的ses服务进行邮件营销

    邮件作为外贸电商系统中很重要的一个范畴,如何保证在大批量的发送邮件而不被邮箱系统误认为是垃圾邮件而拦截就是很重要的一个功能.我们的客户有使用免费的163企业邮,有使用付费的邮箱如阿里云企业邮箱,zoh ...

  3. 理解 Zend 框架

    第 1 部分: 基础 Zend 框架究竟是什么呢?Zend 框架具有以下特征: 是基于 PHP 建立的. 是面向对象的. 使用 MVC 范例. 具有开放源码贡献者. 有贡献者负责保证他们的代码不是他人 ...

最新文章

  1. 多通道ADC一致性的高精度测量方法
  2. 【ABAP】在线预览文档对象的开发实现
  3. Docker 私服Registry简介与使用Docker-Compose安装Registry
  4. C#获取本机可用端口
  5. Flask-admin 学习及一些笔记
  6. java final内存机制_Java中的内存处理机制和final、static、final static总结
  7. 计算机绘图理论试题库,CAD理论试卷及答案「最新」
  8. vue baidu map之获取选中点的经纬度
  9. NLP之路-Deep Learning for NLP 文章列举
  10. android的辅助代码,跟App相关的Android辅助类
  11. .net知识和学习方法系列(二十一)CLR-枚举
  12. bboss v5.5.3 发布,Elasticsearch Rest Client
  13. java attachment_Java 接收邮件(接收多附件)
  14. PHP自动识别电话名字地址,你用PHP,如何实现地址自动识别的功能
  15. 03-数据解析_xpath(04 【实战】豆瓣电影、电影天堂爬虫)
  16. Unity打包篇:能够解决Unity打包Gradle遇到的所有问题方法整合!(持续更新中!)
  17. 别人教我学计算机的作文,我教舅妈学电脑优秀作文.doc
  18. magento mysql4-install_MAGENTO与表,数据字段的对应关系
  19. 室内定位技术研发简介
  20. 共享锁和排它锁(ReentrantReadWriteLock)

热门文章

  1. http://www.ajaxload.info/
  2. codeforces 701A A. Cards(水题)
  3. openDrive has Free Direct Linking !
  4. 【Sql查询数据】for 日、月、年
  5. Sip 响应状态码 对照 详解
  6. c语言的基本案例猴子,[转载]猴子选大王问题(C语言实现)
  7. Linux基础命令---cat
  8. git cherry-pick合并某个commit
  9. Linux 入门记录:五、vi、vim 编辑器
  10. label字符自动换行(转自网络)