1

<meta>名前付きの「タグ」からすべての値を取得し、ページに表示するにはどうすればよいですか?

これは、使用している 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>その結果、最後に名前が付けられた「タグ」のみがエコーされます。

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

名前は一意である必要があります。この関数のドキュメントを参照してください

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

したがって、name = "tag"のメタタグしか使用できないため、カンマ区切りの値を試してみてください。

于 2012-08-22T12:08:03.120 に答える
0

タグを正しく取得していますが、正しく表示されていません。

echo配列では使用できません。

var_dumpを使用して、配列全体を表示できます。これにより、コードで配列にアクセスする方法が示されます。

于 2012-08-22T12:02:55.223 に答える
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 に答える