2016-10-24 5 views
1

Я хочу добавить фигурный тег в начале и конце тега image.Append <figure> тег в начале и в конце <img> тег в PHP

Вот что я пробовал до сих пор.

<?php 
    $v['content_en'] = '<p><br /><img alt="" src="https://66.media.tumblr.com/9dc27741114bd854f29fc65dc3321958/tumblr_o9zo20vMVP1uom2zvo1_1280.png"/><br /><br /><br />The Italian-born gallerist took to the art world like some take to religion. He can be accountable for launching the careers of Rauschenberg, Twombly, Lichtenstein, Oldenburg, Stella, Judd, Flavin, Serra, and ensuring that their work was bought by the world&rsquo;s most prestigious museums.<br /> He prefered to sell to informed and engaged collectors and in all cases to philanthropists rather than speculators.<br /><br /><a href="http://www.wsj.com/articles/the-art-of-larry-gagosians-empire-1461677075" target="_blank">billion dollar annual revenue&nbsp;</a>&nbsp;are the perfect example.<br /><br />With not much space left for philosophy and introspection, today artists have to be most of all &nbsp;good communicators to get an exhibition&hellip;</p><p><br />'; 

    //$tmp= preg_replace('#<img(.*)/>(.+)#i', '<figure><img$1/></figure>', $v['content_en'], -1); 
    $v['content_en'] = preg_replace('#<img(.*)/>(.+)#i', '<figure><img$1>$2</figure>', $v['content_en'], -1); 
    //$returnValue = preg_replace('#<img(.*)>(.+)</img>#i', '<figure><img$1>$2</img></figure>', $v['content_en'], -1); 
    print_r($v['content_en']); 
?> 

$v['content_en'] моя строка, я выборка из базы данных для каждой записи.
Я не получаю ожидаемого результата, так как </figure> добавляется в конце моего содержимого, но он должен быть закончен после того, как тег <imp> закончится.

ответ

1

Попробуйте это, если я правильно вас понял:

$v['content_en'] = '<p><br /><img alt="" src="https://66.media.tumblr.com/9dc27741114bd854f29fc65dc3321958/tumblr_o9zo20vMVP1uom2zvo1_1280.png"/><br /><br /><br />The Italian-born gallerist took to the art world like some take to religion. He can be accountable for launching the careers of Rauschenberg, Twombly, Lichtenstein, Oldenburg, Stella, Judd, Flavin, Serra, and ensuring that their work was bought by the world&rsquo;s most prestigious museums.<br /><img alt="" src="https://66.media.tumblr.com/9dc27741114bd854f29fc65dc3321958/tumblr_o9zo20vMVP1uom2zvo1_1280.png"/> He prefered to sell to informed and engaged collectors and in all cases to philanthropists rather than speculators.<br /><br /><a href="http://www.wsj.com/articles/the-art-of-larry-gagosians-empire-1461677075" target="_blank">billion dollar annual revenue&nbsp;</a>&nbsp;are the perfect example.<br /><br />With not much space left for philosophy and introspection, today artists have to be most of all &nbsp;good communicators to get an exhibition&hellip;</p><p><br /><img alt="" src="https://66.media.tumblr.com/9dc27741114bd854f29fc65dc3321958/tumblr_o9zo20vMVP1uom2zvo1_1280.png"/>'; 
$returnValue = preg_replace('#<img(.*)\s?/>#iU', '<figure><img$1 $2></figure>', $v['content_en'], -1); 
echo $returnValue; 

Результат будет:

<p><br /><figure><img alt="" src="https://66.media.tumblr.com/9dc27741114bd854f29fc65dc3321958/tumblr_o9zo20vMVP1uom2zvo1_1280.png" ></figure><br /><br /><br />The Italian-born gallerist took to the art world like some take to religion. He can be accountable for launching the careers of Rauschenberg, Twombly, Lichtenstein, Oldenburg, Stella, Judd, Flavin, Serra, and ensuring that their work was bought by the world&rsquo;s most prestigious museums.<br /><figure><img alt="" src="https://66.media.tumblr.com/9dc27741114bd854f29fc65dc3321958/tumblr_o9zo20vMVP1uom2zvo1_1280.png" ></figure> He prefered to sell to informed and engaged collectors and in all cases to philanthropists rather than speculators.<br /><br /><a href="http://www.wsj.com/articles/the-art-of-larry-gagosians-empire-1461677075" target="_blank">billion dollar annual revenue&nbsp;</a>&nbsp;are the perfect example.<br /><br />With not much space left for philosophy and introspection, today artists have to be most of all &nbsp;good communicators to get an exhibition&hellip;</p><p><br /><figure><img alt="" src="https://66.media.tumblr.com/9dc27741114bd854f29fc65dc3321958/tumblr_o9zo20vMVP1uom2zvo1_1280.png" ></figure> 
+0

это не работает чувак. –

+0

будет закончен /> не используя, так что в этом случае для чего будет регулярное выражение? @hardy rust –

+0

ваш код работает на меня, когда я изменил regexp, но теперь проблема в том, что добавляется после того, как весь мой контент html означает в конце строки, но я хочу его после закрытия. –

0
$v['content_en'] = preg_replace('/(<img[^>]+>(?:<\/img>)?)/i', '<figure>$1<figure />', $v['content_en']); 
Смежные вопросы