問題は、サーバー側で行われることとクライアント側で行われることの混乱にあるようです。Modernizrは JavaScript ライブラリです。PHP はサーバー側の技術であり、JavaScript はそうではないため、そのコードを PHP ブロックに入れても何の役にも立ちません。
別の方法として、PHP を使用して JavaScript に必要なデータを提供し、次に JavaScript を使用して表示する HTML を決定します。
<script>
if (Modernizr.video) {
document.write('<video id="video" src="<?php echo 'video.ogv'; ?>" autoplay />');
} else {
document.write('<img src="<?php echo 'text.jpg'; ?>" />');
}
</script>
ビデオ/画像を表示する HTML にこのコードを配置します。PHP を使用してファイル名をエコーアウトすることに注意してください。これにより、ファイル名を動的に指定できます。HTML5 の機能を利用するには、ファイル名を HTML5 の data-* 属性に配置し、JavaScript を使用してすべてのビデオを同時に処理することをお勧めします。
<div class="has-video" data-video="<?php echo 'video.ogv'; ?>" data-image="<?php echo 'text.jpg'; ?>"></div>