0

私はyoutubeビデオのbbcodeを作成しています。ユーザーは[youtube]http://www.youtube.com/watch?v=ihK2pPcDSHM[/youtube]のようにbbcodeとしてビデオを投稿できます。次に、HTMLコードに変換しますが、動画の代わりに動画の画像も表示したいと思います。だから私はこのようにします:

$string = preg_replace("~\[yt]http://www.youtube.com/watch\?v=(.*)\[/yt]~Uis","<img src=\"http://img.youtube.com/vi/\\1/0.jpg\" />", $string);

画像が表示されますが、誰かが次のようなURLを入力すると次のようになります。

http://www.youtube.com/watch?v=ihK2pPcDSHM&feature=channel

次に、画像のURLはhttp://img.youtube.com/vi/ihK2pPcDSHM&feature=channel1/0.jpg、有効な画像につながらないものになります。に変更しようとして\\1".substr('\\1', 0,11)."ますが、結果がありません。

これを解決するための提案はありますか?ありがとう!

4

2 に答える 2

0

次のような別のパターンを試してください。

~\[yt]http://www\.youtube\.com/watch\?v=([a-z0-9-_]+).*?\[/yt]~is
于 2010-12-12T17:30:57.523 に答える
0

&正規表現に最初の文字で停止するように指示するだけです。

$string = preg_replace("~\[yt]http://www.youtube.com/watch\?v=([^\\&]*)\[/yt]~Uis","<img src=\"http://img.youtube.com/vi/\\1/0.jpg\" />", $string);
于 2010-12-12T17:34:38.920 に答える