26

PHP文字列Youtubeビデオ リンクを見つけて、埋め込みコード変換しますか?

埋め込みコード:

<iframe width="420" height="315" src="//www.youtube.com/embed/0GfCP5CWHO0" frameborder="0" allowfullscreen></iframe>

PHP コード/文字列:

<?php echo $post_details['description']; ?>

ユーチューブリンク:

http://www.youtube.com/watch?v=0GfCP5CWHO0
4

13 に答える 13

32

Joran のソリューションを少し強化して、YouTube の短い URL 形式も処理します。

function convertYoutube($string) {
    return preg_replace(
        "/\s*[a-zA-Z\/\/:\.]*youtu(be.com\/watch\?v=|.be\/)([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i",
        "<iframe src=\"//www.youtube.com/embed/$2\" allowfullscreen></iframe>",
        $string
    );
}

ここでこの機能をオンラインでテストできます

于 2014-12-05T13:56:49.733 に答える
3

これが古いスレッドであることは承知していますが、この問題に直面していて支援を求めている人のために、GitHub で PHP クラスを見つけました - Embera

基本的には、任意の文字列の YouTube URL を関連する iframe 要素に変換する oembed ライブラリです。私はそれを使っています、そしてどこでもそれを使い続けます!

于 2016-07-02T04:23:14.260 に答える
0

文字列がユーザー入力によるものである場合、または何らかの形で予測できない場合は、RegEx の使用を忘れてください...真剣に。それはあなたのためにワームの缶を開けます。

代わりに、HTML パーサーを使用して、特定のルールとセレクターに基づいて URL を抽出することを検討してください。

私は主に ColdFsuion / Java を使用していますが、JSoup はこの種の作業に最適で、はるかに簡単で安全です。

http://jsoup.org/

PHPでは、次のようなものを使用できるようです。

http://code.google.com/p/phpquery/

コードサンプルを提供したいのですが、PHP についてよく知りません。しかし、それを試してみてください。

マイキー。

于 2013-09-27T12:57:27.780 に答える