如何动态地围绕每个锚标签包裹<li> </li>?

时间:2014-10-08 12:26:34

标签: php html

这是我的文本字符串,我想要的是动态地围绕每个锚标记包裹<li></li>

例如: -

<li><a href="#"><b>\'Oz, un mundo de fantasa\'</b>: Clip con Weisz y Kunis</a></li>
<li><a href="#"><b>\'The Call\'</b>: 2 Trailer</a></li>




$text = '<a href="#"><b>\'Oz, un mundo de fantasa\'</b>: Clip con Weisz y Kunis</a>
    <a href="#"><b>\'The Call\'</b>: 2 Trailer</a>
    <a href="#"><b>\'Jack, el Cazagigantes\'</b>: Cartel para Espaa</a>
    <a href="#"><b>\'Spring Breakers\'</b>: Trailer sin Censura</a>
    <a href="#"><b>\'Los Croods\'</b>: Anuncios de Tv</a>
    <a href="#"><b>\'The Way, Way Back\'</b>: Fecha de Estreno</a>
    <a href="#"><b>\'Los Vengadores 2\'</b>: Thanos!!</a>';

4 个答案:

答案 0 :(得分:3)

$text = str_replace("<a", "<li><a", str_replace('</a>', '</a></li>', $text));

应该这样做。

答案 1 :(得分:1)

$text = str_replace("<a href", "<li><a href", $text);
$text = str_replace("</a>", "</a></li>", $text);

答案 2 :(得分:0)

如果你想使用正则表达式,这样的东西也可以起作用..

$text = '<a href="#"><b>\'Oz, un mundo de fantasa\'</b>: Clip con Weisz y Kunis</a>
    <a href="#"><b>\'The Call\'</b>: 2 Trailer</a>
    <a href="#"><b>\'Jack, el Cazagigantes\'</b>: Cartel para Espaa</a>
    <a href="#"><b>\'Spring Breakers\'</b>: Trailer sin Censura</a>
    <a href="#"><b>\'Los Croods\'</b>: Anuncios de Tv</a>
    <a href="#"><b>\'The Way, Way Back\'</b>: Fecha de Estreno</a>
    <a href="#"><b>\'Los Vengadores 2\'</b>: Thanos!!</a>';

$pattern = '/\s*(<a.*<\/a>)*/';

$replacement = '<li>${1}</li>';

echo preg_replace($pattern, $replacement, $text);

答案 3 :(得分:0)

$text = '<a href="#"><b>\'Oz, un mundo de fantasa\'</b>: Clip con Weisz y Kunis</a>
    <a href="#"><b>\'The Call\'</b>: 2 Trailer</a>
    <a href="#"><b>\'Jack, el Cazagigantes\'</b>: Cartel para Espaa</a>
    <a href="#"><b>\'Spring Breakers\'</b>: Trailer sin Censura</a>
    <a href="#"><b>\'Los Croods\'</b>: Anuncios de Tv</a>
    <a href="#"><b>\'The Way, Way Back\'</b>: Fecha de Estreno</a>
    <a href="#"><b>\'Los Vengadores 2\'</b>: Thanos!!</a>';

$string1= Array("<a", "</a>");
$string2= Array("<li><a","</a></li>");
echo str_replace($string1, $string2, $text);