2011-12-13 7 views
4

私は<object>と埋め込みの混合物を含むサイトに埋め込みビデオの周りに<div>をラップするためにQueryPathを使用しています。QueryPathはiframeタグを自己クローズに変更しますか?

私は、次のコードを試してみました:

$content = qp($content) 
    ->find('object,iframe,a.evdPlayer') 
    ->wrap('<div class="splashBack"></div>') 
    ->top('body')->children() 
    ->html(); // << It's wanting to remove the </iframe> Grrr. 
return $content; 

をしかし、いくつかの理由で物事をめちゃくちゃにされ、<iframe />に私の<iframe></iframe>コードを変更したいようです。ラッピングしているタグを変更しないようにする方法はありますか?

ありがとうございます!

答えて

2

解決策が見つかったようです。 ... querypathの間にいくつかの内容を挿入することによって、終了タグの必要性が認識され、それをそのまま残すことが判明しました。それはハックですが、今のところうまくいきます!

$content = qp($content) 
    ->find('object,iframe,a.evdPlayer') 
    ->text('[ video embed ]') 
    ->wrap('<div class="splashBack"></div>') 
    ->top('body')->children() 
    ->html(); // << It's wanting to remove the </iframe> 
return $content; 
4

- > HTMLあなたが使用する必要があります終了タグが必要な場合は、のDOMDocument :: saveXMLを使用している場合LIBXML_NOEMPTYTAGフラグを設定しない方法 - > XHTMLの代わりにこのフラグを渡しています。例えば

$content = qp($content) 
    ->find('object,iframe,a.evdPlayer') 
    ->wrap('<div class="splashBack"></div>') 
    ->top('body')->children() 
    ->xhtml(); 
    return $content; 
+0

upvote +私は、タグ自体にハックとしていくつかのダミーコンテンツを入れて成功しました – GDmac

関連する問題