0

だから私は次のHTMLコードを持っています:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="movie" value="/uploads/flash/test1.flv" /><embed pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="/uploads/flash/test1.flv" type="application/x-shockwave-flash"></embed></object>

私が探しているのは、param name movieの値を抽出することです。つまり、すべてを削除し、「uploads / flash / test1.flv」(Sansの引用符)のみを保持します。HTMLは変数に保存されます。変数内に複数のオブジェクトが存在する場合があります。私はそれらをインラインで新しいオブジェクトタイプに置き換える必要があります。

この問題のコンテキストとして、flsahファイルなどをWYSIWYGエディターにアップロードできるCKエディターを使用しています。問題は、FLVプレーヤーが必要なFLVを再生することです。現在Flowplayerを使用していますが、これを使用するには、CKEditorsのデフォルトのFLVコードを置き換える必要があります。CKEditorをハックするのではなく、ユーザーに送信される直前にphp側でレンダリングされるコードを置き換えたいと思います。

CKEditorの知識やより簡単な解決策をお持ちの方は、お気軽にご利用ください:)

4

2 に答える 2

2

正規表現は使用しないでください。PHPに組み込まれているようなDOMパーサーを使用します。

$dom = new DOMDocument;
$dom->loadHTML(your HTML code here);
$allElements = $dom->getElementsByTagName('object');

foreach ($allElements as $element)
 // ... do something with each `object` tag  ...
于 2010-08-31T13:50:05.160 に答える
0

これは非常に基本的ですが、機能する正規表現です。

/src="([^"]+.flv)"/i

編集:以下のコメントごと:

/<param\s+name="movie"\s+value="([^"]+.flv)"/i
于 2010-08-30T18:32:20.157 に答える