Я использую некоторые регулярные выражения для анализа текста в стиле вики.
<?php
function wikiParser($data){
$data = preg_replace('/\[\[Youtube:([a-zA-Z0-9_]+)\]\]/', getYoutubeTitle("$1"), $data);
return $data;
}
?>
Эта функция ищет строки типа [[Youtube: b32hRITAAew ]] и вызывает другую функцию getYoutubeTitle ( b32hRITAAew ) .
<?php
function getYoutubeTitle($hash){
$url = 'http://gdata.youtube.com/feeds/api/videos?v=2&q='.$hash.'&max-results=1&fields=entry(title)&prettyprint=true';
$fp = fopen($url, 'r');
$page = '';
while(!feof($fp)){
$page .= fgets($fp, 4096);
}
$titre = eregi("<title>(.*)</title>", $page, $regs);
return $regs[1];
}
?>
Вторая функция анализирует данные ответа. В случае кода b32hRITAAew доступ к следующему URL-адресу
http://gdata.youtube.com/feeds/api/videos?v=2&q=b32hRITAAew&max-results=1&fields=entry(title)&prettyprint=true
Выводит:
<?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) HQ . Но по неизвестной причине он показывает мне случайный трюк с фотографией - простой стабилизатор изображения для любой камеры . Я упорно трудился, чтобы решить эту проблему, но до сих пор не может получить его, как это приходит.
Есть ли проблема с getYoutubeTitle("$1")
или чем-то еще?