1

Wordpressに動画を埋め込む簡単な機能を構築しています。[youku: xxAAAJFSK]投稿の内容を読み、iframeに置き換えたい:<iframe src="http://player.youku.com/embed/xxAAAJFSK"></iframe>

正規表現を使用して置換を行う必要があると思いますが、正しい表現が見つからないようです...試しました:

$pattern = '/youku\.com\/([^\/]*)/i';
if (preg_match($pattern, $content, $matches)){
  $id_video = $matches[1];
  return "<iframe src='http://player.youku.com/embed/" . $id_video . "></iframe>";
}

これは私のサイトを壊すだけです..

次のようなものを使用して幅と高さを設定できる場合は、余分なポイント[youku: xxAAAJFSK width:400 height:400]

4

3 に答える 3

2

その構文に固定されていますか?そうでない場合は、Wordpress ショートコード APIを見て、そのスタイルに従うのが一番です。システムが引数の解析を処理するので、それはあなたにとって大変な労力を要します。例えば:

// [youku vid="xxAAAJFSK" width="400" height="400"]
function youku_func( $atts ) {    
    return "<iframe src='http://player.youku.com/embed/" . $atts['vid'] . " width='" . $atts['width'] . "' height='" $atts['height'] . "'></iframe>";
}
add_shortcode( 'youku', 'youku_func' );

これを拡張して、幅と高さのデフォルト値を含めるか、引数として指定されていない場合はそれらを削除することをお勧めします。

于 2013-06-03T13:30:49.050 に答える
2

これは実際には非常に簡単に行うことができます...

  • \[: マッチ[
  • \s*: 空白に 0 回以上一致
  • youku: マッチする
  • \s*: 空白に 0 回以上一致
  • :: マッチ:
  • \s*: 空白に 0 回以上一致
  • ([^]]*)]: 0回以上以外にマッチしてグループ化
  • \]: マッチ]
  • i大文字と小文字を区別しない一致に修飾子を使用することもできます。

正規表現: \[\s*youku\s*:\s*([^]]*)\]
置換: <iframe src="http://player.youku.com/embed/$1"></iframe>
PHP コード: $output = preg_replace('#\[\s*youku\s*:\s*([^]]*)\]#i', '<iframe src="http://player.youku.com/embed/$1"></iframe>', $input);

于 2013-06-03T13:28:50.507 に答える