0

以下のコードは、dle スクリプトの bbcode タグを担当します。「\1」は関数で呼び出したいリンクですが、代わりにプレーンテキストを取得しています

        $txt = preg_replace( "#<!--dle_video_begin:(.+?)-->(.+?)<!--dle_video_end-->#is", '[video=\\1]', $txt );

私の機能

function videoD ($str) {
        if (strpos($str,'http://') !== false) {
                $vid = uppod_encode($str);
                echo (uppod_encode($str));

        } else {
                $vid = uppod_decode($str);
                echo (uppod_encode($vid));
        }
}

私が試したこと:

$txt = preg_replace( "#<!--dle_video_begin:(.+?)-->(.+?)<!--dle_video_end-->#is", '[video=videoD(\\1)]', $txt );


$txt = preg_replace( "#<!--dle_video_begin:(.+?)-->(.+?)<!--dle_video_end-->#is", '[video=videoD(1)]', $txt );

$txt = preg_replace( "#<!--dle_video_begin:(.+?)-->(.+?)<!--dle_video_end-->#is", '[video=\\videoD(1)]', $txt );
4

1 に答える 1

2
$txt = preg_replace_callback('#<!--dle_video_begin:(.+?)-->(.+?)<!--dle_video_end-->#is', function($matches){
    return "[video=videoD({$matches[1]})]";
}, $txt);
于 2012-10-20T14:18:23.937 に答える