Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP YouTube API视频标题解析_Php_Regex_Api_Youtube_Youtube Api - Fatal编程技术网

PHP YouTube API视频标题解析

PHP YouTube API视频标题解析,php,regex,api,youtube,youtube-api,Php,Regex,Api,Youtube,Youtube Api,我正在使用一些正则表达式来解析wiki样式的文本 <?php function wikiParser($data){ $data = preg_replace('/\[\[Youtube:([a-zA-Z0-9_]+)\]\]/', getYoutubeTitle("$1"), $data); return $data; } ?> 此函数搜索像[[Youtube:b32hRITAAew]这样的字符串,并调用另一个函数getYoutubeTitle(b32hRITAAew)

我正在使用一些正则表达式来解析wiki样式的文本

<?php
function wikiParser($data){
 $data = preg_replace('/\[\[Youtube:([a-zA-Z0-9_]+)\]\]/', getYoutubeTitle("$1"), $data);
 return $data;
}
?>

此函数搜索像[[Youtube:b32hRITAAew]这样的字符串,并调用另一个函数getYoutubeTitle(b32hRITAAew


第二个函数解析响应数据。对于b32hRITAAew代码,访问以下url

它输出:

<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom'>
    <entry>
        <title>The Lord of the Rings Symphony (1) HQ</title>
    </entry>
</feed>

指环王交响乐团(1)总部
标题应该是《指环王交响曲》(1)HQ。但不知什么原因,它向我展示了一些随机的摄影技巧-任何相机的简易图像稳定器。我一直在努力解决这个问题,但还是不知道怎么解决。
getYoutubeTitle($1”)
或其他任何东西有问题吗?

您可以像这样使用preg\u replace\u回调函数:

function wikiParser($data){
 $data = preg_replace_callback('/\[\[Youtube:([a-zA-Z0-9_]+)\]\]/', "getYoutubeTitle", $data);
 return $data;
}

function getYoutubeTitle($array){
 // $array looks like this: Array ( [0] => [[Youtube:b32hRITAAew]] [1] => b32hRITAAew )
 $hash = array_pop($array);
 $url = 'http://gdata.youtube.com/feeds/api/videos?v=2&q='.$hash.'&max-results=1&fields=entry(title)&prettyprint=true';
 ...
}

您可以像这样使用preg\u replace\u回调函数:

function wikiParser($data){
 $data = preg_replace_callback('/\[\[Youtube:([a-zA-Z0-9_]+)\]\]/', "getYoutubeTitle", $data);
 return $data;
}

function getYoutubeTitle($array){
 // $array looks like this: Array ( [0] => [[Youtube:b32hRITAAew]] [1] => b32hRITAAew )
 $hash = array_pop($array);
 $url = 'http://gdata.youtube.com/feeds/api/videos?v=2&q='.$hash.'&max-results=1&fields=entry(title)&prettyprint=true';
 ...
}