2011-12-16 30 views
1

私は書き直す必要のあるデータベースにいくつかのYouTubeのURLを保存しています。YoutubeのURLを書き直してください

彼らは、この形式で保存されます

私は彼らがこのように見えるように書き直されている必要があり
$http://youtu.be/IkZuQ-aTIs0 

$http://youtube.com/v/IkZuQ-aTIs0 

これらの値は、変数$ VideoTypeとして保存されている

私はこのような変数を呼び出しています:

$<?php if ($video['VideoType']){ 
$echo "<a rel=\"shadowbox;width=700;height=400;player=swf\" href=\"" . $video['VideoType'] . "\">View Video</a>"; 
$}?> 

どのように書き直しますか?

ありがとうございました。

答えて

5

あなたはpreg_replace機能を使用したい:あなたはあなたのためにこれを行うには、正規表現を使用することができます

$oldurl = 'youtu.be/blah'; 
$pattern = '/youtu.be/'; 
$replacement = 'youtube.com/v'; 
$newurl = preg_replace($pattern, $replacement, $string); 
1

:よう

何かを。あなたのデータベースに保存されているYouTubeのURLが1つしかない場合は、最後のスラッシュ 'IkZuQaTIs0'の後ろにある部分を取り出し、 'http://www.youtube.com/'の後のsrc属性に配置すれば十分です。

この単純な解決策では、このような何か:私は、現時点ではそれをテストすることはできません

<?php 
    if ($video['VideoType']) { 
     $last_slash_position = strrpos($video['VideoType'], "/"); 
     $youtube_url_code = substr($video['VideoType'], $last_slash_position); 
     echo "<a rel=\"shadowbox;width=700;height=400;player=swf\" 
       href=\"http://www.youtube.com/".$youtube_url_code."\"> 
       View Video</a>"; 
    } 
?> 

を、多分あなたはあなたがまた持つことができ出現など、最後のスラッシュの位置を実験しようとすることができますしかし

http://www.php.net/manual/en/function.substr.php

http://www.php.net/manual/en/function.strrpos.php

、の点に注意してください。関数定義を見て パフォーマンス。あなたのデータベースを陳腐化させ、すべてのURLを変換するか、各エントリに短いURLと長いURLを格納するスクリプトを作成します。ビュー内の正規表現は決して良い考えではないからです。

UPDATE:すべてのエントリのデータベースにYouTube動画識別子/ URLコードのみを格納する方が良いでしょう。したがって、例の場合はIkZuQ-aTIs0となります。

+0

ありがとうございます。 "href ="という行にこのエラーが表示されています... 構文エラー:予期しない構文エラーT_CONSTANT_ENCAPSED_STRING – cpcdev

+0

申し訳ありませんが、ここではテストできません。タイプミスがあるようです。私の編集したコード – CppChris

+0

を使ってみてください!ありがとうございました:) Happy Holidays! – cpcdev

関連する問題