2011-10-28 10 views
2

私がしようとしているのは、youtube/vimeoのビデオのURLをiframeに埋め込み、ビデオ埋め込みコードを自動化する新しいURLを返します。PHPはstr_replace、substr、strposを一緒に使用します

これは魅力的です。

$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; 

あなたは、私はそれがユーチューブの不要な部分を取り除き

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

echo $url; 

前に含めるとユーチューブの広告&で始まるすぎたURLへの醜い文字列を、知っているので、 url。しかし、内部に&のないvimeoコードは何も返されません。新しい行を追加した後、コード内のURLに&が表示されます。それ以外の場合は、$ urlをエコーし​​て、空白の画面を表示します。

2デイモーションのために、私は最初の後にすべてを取り除く必要があります_ dailymotionのサポートを含めるには、以下の行をどのように編集する必要がありますか?お答えするつもりは誰にも事前に

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

感謝:)

答えて

1

場合はstrpos()SUBSTRを混乱させる可能性があり、それはfalseを返しますのために、あなたが検索した文字を、見つけることができません()。あなたのコメントについては

$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, "_")); 
} 

あり、それを行うにはよりエレガントな方法(例:正規表現が。)ですが、これがどうなる

はこのような何かを試してみてください。この追加を許可するには、&または_をstringの最初の文字にすることはできません(条件に== false)。

+0

ひかり:ありがとう非常にありがとう:) これを編集するのは簡単に微調整する予定ですか? $ url = strpos($ url、 "&")? substr($ url、0、strpos($ url、 "&")):$ url; 最初に&または最初の_の後に何かを削除するようにしますか? –

+0

少し微調整を加えました。このショートカット表記をif-elseに使用することはできません。 –

+0

大変ありがとうございます。ひかり...ありがとうございます。私はチェックボックスをクリックしましたが、何らかの理由でメッセージに0〜1をつけさせません:) –

関連する問題