如何替换此字符串中的最后一个li元素?

之前:

$var = 
   '<li>anything<li/>
    <li>anything<li/>
    <li>anything<li/>
    <li>anything<li/>
    <li>anything<li/>';

后:

$var = 
   '<li>anything<li/>
    <li>anything<li/>
    <li>anything<li/>
    <li>anything<li/>
    <li class="foo">anything<li/>';

我尝试了preg_replace()

preg_replace('<li>', '<li class="foo">', $var);

但这不是预期的输出。 如何更改代码以获得预期的输出?

#1楼 票数:1 已采纳

这应该为您工作:

(在这里,我只是用explode()将字符串分割成一个数组,然后替换最后一个元素,然后再次将其implode()变成字符串。顺便说一句:您关闭了li标签错误)

<?php

    $var = 
        '<li>anything</li>
        <li>anything</li>
        <li>anything</li>
        <li>anything</li>
        <li>anything</li>';

    $var = explode(PHP_EOL, $var);
    $var[count($var)-1] = preg_replace("/<li.*?>(.*?)<\/li>/", "<li class='foo'>$1</li>", $var[count($var)-1]);
    $var = implode(PHP_EOL, $var);

    print_r($var);

?>

输出:

<li>anything</li>
<li>anything</li>
<li>anything</li>
<li>anything</li>
<li class='foo'>anything</li>

#2楼 票数:1

$var = 
   "<li>anything<li/>
    <li>anything<li/>
    <li>anything<li/>
    <li>anything<li/>
    <li>anything<li/>";
   $pos=strrpos($var,"<li>");
echo $final=substr_replace($var, '<li class="foo">anything<li/>',$pos);

  ask by Ing Dedek translate from so

未解决问题?本站智能推荐:

2回复

替换html响应中的字符串

我使用curl张贴到付款网关网址,然后使用网关页面进行响应。 网关页面显示不正确,因为页面中的样式表和脚本是相对于根目录的。 我正在尝试使用php的str_replace来更改网址,但它似乎不起作用 请指出正确的方向
2回复

将字符串中的最后一个单词与最后一个非单词匹配

我需要将最后一个 非单词与字符串上的最后一个单词匹配( 均为可选 )。 匹配项将从原字符串中删除,方法是将其替换为null。 我目前的结果是: 正则表达式: 工作案例: 此处的单元测试 当然,我有问题。 我想接受HTML实体作为单词的一部分,但是由于它具有非单词字符(结尾的分号
4回复

PHP-如何用另一个替换短语?

我如何用PHP最简单的方法将此<p><span class="headline">替换为此<p class="headline"><span> 。 在从站点更改html之前,我想要从跨度到<p>标记获取类声明。
3回复

如何替换整个字符串,包括html标签?

我从laravel的文本框中获取以下HTML: 基本上我想做的就是删除所有&nbsp; 以及所有<p>&nbsp;</p> ,我都知道使用正则表达式来过滤HTML是一个坏主意,但就我而言,该方案仅限于上述两个选项。 所以我有下面的PHP代码:
4回复

html_entity_decode是否也替换?如果不行怎么更换?

我有一种情况,我将字符串传递给函数。 我想转换&nbsp; 到“”(一个空格),然后再将它传递给函数。 html_entity_decode可以吗? 如果不行怎么办? 我知道str_replace但还有其他出路吗?
3回复

将特定的字符串模式替换为html

对于我的股票市场聊天,我想将每个特定的字符串模式替换为HTML代码。 例如,如果我键入“b $ goog 780”,我希望将此字符串替换为: 如何使用preg_replace执行此特定任务?
3回复

字符串从PHP中的字符串替换HTML

我正在尝试从另一个字符串中删除HTML字符串,但是由于某种原因,什么也没发生,因此也没有被删除。 我使用的代码是: 该字符串不会被替换。 我想先删除隐藏元素,然后再将其输入数据库。 我想念什么吗?
2回复

PHP字符串在两个html标记之间替换

我正在尝试在html文档中的两个标签之间替换文本。 我想替换任何未用<和>括起来的文本。 我想使用str_replace做到这一点。 php $string = '<html><h1> some text i want to replace</h1