2

私がやろうとしているのは、youtube/vimeo のビデオの URL を変換して、iframe に埋め込むことができる新しい URL を返し、ビデオの埋め込みコードを自動化することです。

これは魅力のように機能しています。

$url  = "http://vimeo.com/29431603";
$orj_value = array("watch?v=", "http://vimeo.com/");
$new_value   = array("embed/", "http://player.vimeo.com/video/");
$url = str_replace($orj_value, $new_value, $url);
echo $url;

ご存知のように、YouTube 広告は & で始まる URL に醜い文字列も挿入するので、含めると

$url = substr($url, 0, strpos($url, "&")); 

echo $url;

YouTube URL の不要な部分を取り除きます。しかし、内部に & がない vimeo コードは、何も返さないだけです。新しい行を追加した後、コードは URL 内に & を見たいと考えているようです。それ以外の場合は $url var を echo すると、空白の画面が表示されます。

2- Dailymotion の場合、最初の _ 以降をすべて削除する必要があります。dailymotion のサポートも含めるには、以下の行をどのように編集すればよいですか?

$url = substr($url, 0, strpos($url, "&")); 

答えてくれる人に前もって感謝します:)

4

1 に答える 1

1

strpos() が検索する文字を見つけられない場合、false が返され、substr() が混乱する可能性があります。

次のようなことを試してください:

$url = strpos($url, "&") ? substr($url, 0, strpos($url, "&")) : $url;

あなたのコメントについて:

if(strpos($url, "&")) {
    $url = substr($url, 0, strpos($url, "&"));
} else if(strpos($url, "_")) {
    $url = substr($url, 0, strpos($url, "_"));
}

もっと洗練された方法がありますが (例: REGEX)、これで十分です。& または _ を文字列の最初の文字にできないことに注意してください。これを許可する場合は、条件に !== false を追加してください。

于 2011-10-28T15:31:29.450 に答える