0

この関数を使用して、RSS vimeo から必要な情報を読み取り、表示します。

$url=array('http://vimeo.com/channels/hdnature/videos/rss'); 



foreach($url as $value){
$homepage = file_get_contents($value);
$movies = new SimpleXMLElement($homepage);
      foreach($movies->channel->item as $opt){


    $title= $opt->title;
    $tittle=mysql_real_escape_string($title);

    $link=$opt->link;
    $links=mysql_real_escape_string($link); 


    $des=$opt->description;
    $dess=mysql_real_escape_string($des);
    //Use that namespace
     $namespaces = $opt->getNameSpaces(true);
    //Now we don't have the URL hard-coded
     $dc = $opt->children($namespaces['dc']); 
    //echo $dc->publisher;
    //echo $dc->creator;
   //echo $link;


    $imgpattern = '/href="(.*?)"/i';
    preg_match($imgpattern, $des, $matches);
    $imageurl['image'] = $matches[1];
    echo $imageurl['image'];

    $tag = '/">(.*?)<\/a>/';
    preg_match($tag, $des, $matches);
    $tagurl['name'] = $matches[1];
    echo $tagurl['name'];

<description></description>フィールド内に次のタグのリストがあります。

<p><strong>Tags:</strong> 
<a href="http://vimeo.com/tag:art">Art</a>, 
<a href="http://vimeo.com/tag:film">Film</a>,
<a href="http://vimeo.com/tag:movie">Movie</a>,
<a href="http://vimeo.com/tag:cinema">Cinema</a>,
<a href="http://vimeo.com/tag:creation">Creation</a>,
<a href="http://vimeo.com/tag:concept">Concept</a>,
<a href="http://vimeo.com/tag:experimental">Experimental</a>,
<a href="http://vimeo.com/tag:sound">Sound</a>,
<a href="http://vimeo.com/tag:music">Music</a>,
<a href="http://vimeo.com/tag:motion">Motion</a>,
<a href="http://vimeo.com/tag:copyleft">Copyleft</a>
and 
<a href="http://vimeo.com/tag:videoart">Videoart</a>
</p>

Art、Movie、Cinema などの単語のみをデータベースに保存するために検索します。

括弧付きのリストを保存する必要があり、preg_match を使用しようとしています。

私はこの機能を持っています:

$tag = '/</strong>(.*?)</a></p>/';
preg_match($tag, $des, $matches);
$taglist['name'] = $matches[1];
echo $taglist['name'];

しかし、私は望んでいる結果ではなく、エラーのみを受け取ります。

4

1 に答える 1

0

これを試して

$des = '<p><strong>Tags:</strong> 
<a href="http://vimeo.com/tag:art">Art</a>, 
<a href="http://vimeo.com/tag:film">Film</a>,
<a href="http://vimeo.com/tag:movie">Movie</a>,
<a href="http://vimeo.com/tag:cinema">Cinema</a>,
<a href="http://vimeo.com/tag:creation">Creation</a>,
<a href="http://vimeo.com/tag:concept">Concept</a>,
<a href="http://vimeo.com/tag:experimental">Experimental</a>,
<a href="http://vimeo.com/tag:sound">Sound</a>,
<a href="http://vimeo.com/tag:music">Music</a>,
<a href="http://vimeo.com/tag:motion">Motion</a>,
<a href="http://vimeo.com/tag:copyleft">Copyleft</a>
and 
<a href="http://vimeo.com/tag:videoart">Videoart</a>
</p>';
$tag = '/">(.*?)<\/a>/';
preg_match_all($tag, $des, $matches);
print_r($matches[1]);
于 2013-02-17T01:23:27.427 に答える