0

状態: wysiwig (簡単) からの html コードの平和を持っています。最後の段落 (p-tag) に readmore リンクを挿入する必要があります

public function injectReadMore($html){
        if( $this->is_html($html) ){
            return preg_replace('#\<\/p\>$#isU',' <a href="javascript:void(0)" class="toggle-full-dsc">Читать полностью</a>$0', $html);
        } else {
            return '<p>'.$html.' <a href="javascript:void(0)" class="toggle-full-dsc">Читать полностью</a></p>';
        }
    }

うん。私が書いたことは正しくありません。もしもし

$html = '<p>sdfgsdfg</p><div><p>sdfgsdfg</p> </div> ';

失敗。

試した正規表現:

'#\<\/p\>[^p]+?$#isU'
'#\<\/p\>[^\/p]+?$#isU'
'#\<\/p\>[^[\/p]]+?$#isU'

および RegExp の同じ変種。私は何か、おそらくすべてを理解していません;)

助けてください。ありがとう、ブラザーズ。

4

3 に答える 3

1

否定先読みですが、html をエスケープすることを忘れないでください。

preg_replace('/\<\/p\>(?!.*\<\/p\>)/isU', '<a href="javascript:void(0)" class="toggle-full-dsc">Читать полностью</a></p>', $html);
于 2013-07-22T20:05:50.233 に答える