1

如何从<meta>命名的“标签”中获取所有值并在页面上回显它们?

这是使用的 HTML 即时消息:

<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>命名的“标签”。

4

5 回答 5

2

get_meta_tags返回一个数组,用于print_r()查看它的结构,然后循环遍历它们以根据需要打印它们:

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

编辑:而且你不需要将结果粘贴get_meta_tags在另一个数组中,那么你就会无缘无故地多出一个。

explode(',',$meta['tags']);
于 2012-08-22T12:04:20.110 回答
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
于 2012-08-22T12:28:28.433 回答
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" />
于 2012-08-22T12:06:44.943 回答
0

您正确获取标签,但未正确显示它们。

您不能echo在数组上使用。

您可以使用var_dump查看您拥有的整个数组 - 它应该向您展示如何在代码中访问它。

于 2012-08-22T12:02:55.223 回答
0

名称必须是唯一的。请参阅此功能的文档

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

因此,您只能使用 name="tag" 的元标记,因此最好尝试使用逗号分隔的值。

于 2012-08-22T12:08:03.120 回答