获取一个元标记php数组

时间:2012-08-22 12:00:11

标签: php html arrays meta-tags

如何从<meta>命名&#34;标记&#34;中获取所有值?并在页面上回显它们?

这是HTML im使用:

<meta name="tag" content="plant"/>
<meta name="tag" content="leaf"/>
<meta name="tag" content="waterdroplet"/>
<meta name="tag" content="water"/>

我正在使用的PHP:

$tags = array (get_meta_tags ( "http://s0ulp1xel.x10.mx/background-garage/?p=photo&photo=1"));
echo $tags;

结果是它只回显了最后<meta>个名为&#34;标记&#34;。

5 个答案:

答案 0 :(得分:2)

get_meta_tags返回一个数组,使用print_r()来查看它的结构,并循环显示它们,然后根据需要打印它们:

foreach($tags as $tag){
  echo $tag."\n";
}

编辑:你不需要将get_meta_tags的结果放在另一个数组中,然后你就可以无缘无故地添加一个。

explode(',',$meta['tags']);

答案 1 :(得分:1)

如果您的问题现在我如何将逗号分隔的值作为不同的代码?,您可以执行以下操作:

<meta name="tag" content="plant, leaf, waterdroplet, water" />

$tags = get_meta_tags('yourfile.html');
$tags = array_map('trim', explode(',', $tags['tag']));

这会将单词分解为一个数组,并删除任何空格,然后你可以循环它以输出/其他任何内容:

示例

foreach($tags as $k => $v) {
  echo $k . ': ' . $v . '<br />' . "\n";
}

输出:

0: plant
1: leaf
2: waterdroplet
3: water

答案 2 :(得分:0)

您正确地获取了标签,但没有正确显示它们。

您无法在阵列上使用echo

您可以使用var_dump查看您拥有的整个阵列 - 这应该会告诉您如何在代码中访问它。

答案 3 :(得分:0)

设置标签时出错了

<meta name="tag" content="xx" />
<meta name="tag" content="yz" />

当您执行get_meta_tags()时,它只会显示最后值(在这种情况下:yz

所以你需要在标签上加上不同的名字

例如

<meta name="tag1" content="yz" />
<meta name="tag2" content="yz" />

答案 4 :(得分:0)

名称必须是唯一的。 See the documentation of this function

 If two meta tags have the same name, only the last one is returned.

所以你只能使用name =“tag”的元标记,所以最好再尝试逗号分隔值。