-1

ご存知のように、vimeo ビデオは通常、次のように表示されます。

http://vimeo.com/123456

しかし、昨日私が見たのは、次のようないくつかのビデオが異なっていることです。

https://vimeo.com/donialiechti/stranded

興味深いことに、リンクをクリックすると、アドレス バーに

http://vimeo.com/64334084

このビデオの埋め込みコードは次のとおりです。

<iframe src="http://player.vimeo.com/video/64334084"... ></iframe>

問題は、アプリが正しく動作するためにビデオ ID を知る必要があることです。 では、「わかりやすい」URL を通常の vimeo ID に変換するにはどうすればよいでしょうか?

前もって感謝します!

4

3 に答える 3

5

Vimeo はリダイレクト情報を HTTP ヘッダーで送信します。次のように取得できます。

function fetch_vimeo_id($url) {
    $headers = get_headers($url);
    # Reverse loop because we want the last matching header,
    # as Vimeo does multiple redirects with your `https` URL
    for($i = count($headers) - 1; $i >= 0; $i--) {
        $header = $headers[$i];
        if(strpos($header, "Location: /") === 0) {
            return substr($header, strlen("Location: /"));
        }
    }
    # Could not find id
    return null;
}

echo fetch_vimeo_id("https://vimeo.com/donialiechti/stranded");

出力:

64334084
于 2013-05-04T06:39:44.827 に答える
3

この問題を解決するより良い方法は、Vimeo の OEmbed APIを使用することです。

video_id は応答に含まれており、Vimeo の可能なすべてのビデオ エンドポイントを受け入れます。

于 2013-05-13T21:18:25.610 に答える
0

以下の解決策を確認してください。

すなわち:

http://vimeo.com/11111111
http://player.vimeo.com/video/11111111
http://vimeo.com/channels/channelname/11111111
http://vimeo.com/groups/groupname/11111111

コード :

    $vimeoUrl = 'http://vimeo.com/channels/staffpicks/11111111';
    $fetchVimeoIdArr = explode('/', $vimeoUrl);
    $idCounter = count($fetchVimeoIdArr) - 1;
    $vimeoId = $fetchVimeoIdArr[$idCounter];
于 2016-03-11T07:09:32.997 に答える