-4

重複の可能性:
URL からビデオ ID を取得するにはどうすればよいですか? (デイリーモーション)

ビデオのデイリーモーションサムネイルを取得するためのこのコードがあります:

<?php
    $url = get_the_content(); 
    if (preg_match('????????????', $url, $match)) {
        $video_id_dailymotion = $match[1];
    }
?>

<?php if($video_id_dailymotion): ?>
    <img class="video-thumbnail" src="http://dailymotion.com/thumbnail/video/<?php echo $video_id_dailymotion; ?>" alt="" width="190">
<?php endif; ?>

ただし、 preg_match 関数部分については助けが必要です。????????????の代わりに何を入れればいいですか?最初の引数として?

Dailymotion ビデオの形式は次のとおりです。

http://www.dailymotion.com/video/xulmeo_osama-bin-laden-for-dummies_shortfilms

ところで。$url変数には、YouTube オブジェクト コード、大量のテキストなどの他のものが含まれており、dailymotion ビデオが埋め込まれている場合もあります。

編集: YouTubeの場合、次のようなものを使用していました:

if (preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match)) {
    $video_id_youtube = $match[1];
}

そしてそれは機能していましたが、今ではdailymotionに似たものが必要です。

編集 2: preg_matchを使用し て実行し、その正規表現条件で Dailymotion.com を使用する必要があります

編集 3: preg_match で処理する必要がある $url のコードは、次のようになります。

And here is the video <iframe src="http://www.dailymotion.com/embed/video/xsqxky" frameborder="0" width="480" height="270"></iframe>
What do you think? Let us know. Peace!
4

2 に答える 2

4

Dailymotion の場合、ビデオ ID は 3 番目の URL セグメントの最初の文字列 (最初の _ の前) です。あなたの例によると

www.dailymotion.com/video/ xulmeo _osama-bin-laden-for-dummies_shortfilms

の動画 ID はxulmeoです。したがって、アンダースコアが最初に出現する前に文字列を抽出するだけです。

コード :

$slice=explode('/',$url);
$video_id_dailymotion=explode('_',$slice[2]);

または単に

$video_id_dailymotion=strtok(basename($url), '_');

参照: strtokベース名を
爆発させる


編集:指摘したように、dailymotion リンクが表示される方法はさまざまです。

  1. http://www.dailymotion.com/embed/video/xulmeo
  2. http://www.dailymotion.com/video/xulmeo_osama-bin-laden-for-dummies_shortfilms

ケース 2 については前のスニペットを参照し、両方のケースでこのコードを使用します

$slice=explode('/',$url);
$video_id_dailymotion=(strlen($slice[2])==6?$slice[2]:explode('_',$slice[2]));
// All dailymotion video id's are 6 in length
于 2012-11-01T12:16:01.943 に答える
0

まず、HTML パーサーを使用してすべてのリンクを抽出します。これにより、好みの形式で情報を取得できます。

次に、基礎となる仕様、つまりRFC3986 セクション 6に従ってすべてのリンクを正規化します

これで、すべての URL が比較と分析に使用できる形式になりました。たとえば、正規表現を使用します。

これらの 3 つのステップには、ツールと回答があります。

  1. DOMDocumentおよびDOMXPath- PHP で HTML を解析および処理する方法を参照してください。
  2. Net_Url2- XPath クエリと HTML を参照 - アンカー タグ内の特定の HREF を検索
  3. preg_match- URL からビデオ ID を取得する方法を参照してください。(デイリーモーション)

通常、質問をする前に宿題をすることが期待されますが、この一般的な手順は、「問題を抱えているだけ」で木を見て木を見ないあなたと将来の訪問者のためにここに残しておきます.

于 2012-11-01T13:08:16.620 に答える