これは、このサイトでの最初の質問です。私はphpを初めて使用しますが、アドバイスに従い、可能な限り不潔なものを手に入れました。残念ながら、私は作成しようとしているこの単純な Youtube アプリに少し困惑しています。
関連する質問がいくつかあることは知っていますが、私の問題に対する包括的な解決策はまだ見つかっていません。
とにかく、私がやろうとしているのは、YouTube チャンネルの動画の URL を取得し、動画 ID を抽出して配列を作成し、それを JavaScript 関数に渡して、いくつかのクールなクライアント側のものに渡すことです。
これまでの私のコードは次のとおりです。私の問題は、メソッド内外の配列と文字列および変数に関連していると確信しています。いずれにせよ、私の array_map 関数は機能せず、showFullFeed() 関数はリンクの配列ではなく 1 つの値のみを返します。
どんな助けでも大歓迎です。乾杯
クラスチャンネルフィード{
関数 __construct($ユーザー名) { $this->username=$ユーザー名; $this->feedUrl=$url=' http://gdata.youtube.com/feeds/api/users/ '.$username.'/favorites'; $this->feed=simplexml_load_file($url); }
public function getYTid() {
$ytURL = $this->feed->entry->link['href'];
$ytvIDlen = 11; // これは YouTube の動画 ID の長さです
// ID 文字列は "v=" の後に始まります。これは通常は直後です // "youtube.com/watch?" URLで $idStarts = strpos($ytURL, "?v=");
// 「?」の直後に「v=」がない場合 (可能性は低いですが、 // ベースがカバーされます)、「&」の後にあります: if($idStarts === FALSE) $idStarts = strpos($ytURL, "&v="); // それでも FALSE の場合、URL には vid ID がありません if($idStarts === FALSE) die("YouTube 動画 ID が見つかりません。URL を再確認してください。");
// ID 文字列の先頭に一致するように開始位置をオフセットします $idStarts +=3;
// ID 文字列を取得して返す $ytvID = substr($ytURL, $idStarts, $ytvIDlen);
$ytvID を返します。
} パブリック関数 showFullFeed() { foreach($this->feed->entry as $video){ return $vidarray[] = $video->link['href']; } } }; $youtube = new ChannelFeed('ユーザー名'); $vids = $youtube->showFullFeed(); $vidIDs = array_map(getYTid(),$vids);?>