1 <sect3 id="zend.view.helpers.initial.headmeta">
2 <title>HeadMeta 助手</title>
5 HTML <code><meta></code>元素用来提供关于HTML文档的 meta 信息-如关键字,文档字符集,缓冲的 pragama 等。Meta标签可以是'http-equiv' 或 'name' 类型,必须包含'content'属性,并且也可以有 'lang' 或 'scheme' 修饰属性。
9 <code>HeadMeta</code> 助手提供下列方法来设置和添加 meta 标签:
13 <listitem><para><code>appendName($keyValue, $content,
14 $conditionalName)</code></para></listitem>
15 <listitem><para><code>offsetSetName($index, $keyValue, $content,
16 $conditionalName)</code></para></listitem>
17 <listitem><para><code>prependName($keyValue, $content,
18 $conditionalName)</code></para></listitem>
19 <listitem><para><code>setName($keyValue, $content,
20 $modifiers)</code></para></listitem>
21 <listitem><para><code>appendHttpEquiv($keyValue, $content,
22 $conditionalHttpEquiv)</code></para></listitem>
23 <listitem><para><code>offsetSetHttpEquiv($index, $keyValue, $content,
24 $conditionalHttpEquiv)</code></para></listitem>
25 <listitem><para><code>prependHttpEquiv($keyValue, $content,
26 $conditionalHttpEquiv)</code></para></listitem>
27 <listitem><para><code>setHttpEquiv($keyValue, $content,
28 $modifiers)</code></para></listitem>
32 <code>$keyValue</code> 参数用来定义'name'的值或'http-equive'键;<code>$content</code> 是'content' 键的值,<code>$modifiers</code> 是可选的包含'lang' 和/或 'scheme'键的联合数组。
36 也可以用 <code>headMeta()</code> 助手方法来设置 meta 标签:<code>headMeta($content, $keyValue, $keyType = 'name', $modifiers = array(), $placement = 'APPEND')</code>。<code>$keyValue</code> 是指定在 <code>$keyType</code> 里的键的内容,<code>$keyType</code> 应该是'name' 或 'http-equiv'。<code>$placement</code> 可以是 'SET' (覆盖所有先前存储的值), 'APPEND' (添加到栈尾)或 'PREPEND'(添加到栈顶)。
40 <code>HeadMeta</code> 覆盖每个 <code>append()</code>、<code>offsetSet()</code>、 <code>prepend()</code> 和 <code>set()</code> 来加强上面列出的特殊方法的用法。在内部,它存储每个条目为 <code>stdClass</code> 令牌,它稍后用 <code>itemToString()</code> 方法来序列化。这允许在堆栈的条目中执行检查,并可选地通过修改对象返回来修改这些条目。
44 <code>HeadMeta</code>助手是 <link linkend="zend.view.helpers.initial.placeholder"> 占位符助手 </link> 的一个具体实现。
47 <example id="zend.view.helpers.initial.headmeta.basicusage">
48 <title>HeadMeta 助手基本用法</title>
51 你可以在任何时候指定一个新的meta标签。例如指定客户端缓冲规则或SEO关键字。
55 例如,如果想指定SEO关键字,要创建带有名为'keywords'和内容(在页面上和关键字有关联的)的meta名称标签:
58 <programlisting role="php"><![CDATA[
59 <?php // setting meta keywords
60 $this->headMeta()->appendName('keywords', 'framework php productivity');
65 如果想设置一些客户端缓冲规则,最好设置带有想执行的规则的 http-equiv 标签:
68 <programlisting role="php"><![CDATA[
70 $this->headMeta()->appendHttpEquiv('expires', 'Wed, 26 Feb 1997 08:21:57 GMT')
71 ->appendHttpEquiv('pragma', 'no-cache')
72 ->appendHttpEquiv('Cache-Control', 'no-cache');
77 meta标签的另一个流行用法是设置内容类型,字符集和语言:
80 <programlisting role="php"><![CDATA[
81 <?php // setting content type and character set
82 $this->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8')
83 ->appendHttpEquiv('Content-Language', 'en-US');
88 最后一个例子,可以使用"meta refresh" 来让页面转向,一个简单的办法来显示过渡消息:
91 <programlisting role="php"><![CDATA[
92 <?php // 设置以下meta可使页面3秒钟后转向一个新的url
93 $this->headMeta()->appendHttpEquiv('Refresh', '3;URL=http://www.some.org/some.html');
98 在布局脚本(layout)中放置所有meta标签后,简单地echo助手,把所有内容输出:
101 <programlisting role="php"><![CDATA[
102 <?= $this->headMeta() ?>