用php替换最后一个类 $list=” 照片 照片 照片 照片 照片 照片 照片 照片 照片 ';
如何将最后一个用php替换最后一个类 $list=” 照片 照片 照片 照片 照片 照片 照片 照片 照片 ';,php,replace,Php,Replace,如何将最后一个的类从“女性”替换为“男性” 我们最终应该得到: $list = '<ul> <li class="woman">photo</li> <li class="woman">photo</li> <li class="woman">photo</li> <li class="woman">photo</li> <li class="woman">photo</
的类从“女性”替换为“男性”
我们最终应该得到:
$list = '<ul>
<li class="woman">photo</li>
<li class="woman">photo</li>
<li class="woman">photo</li>
<li class="woman">photo</li>
<li class="woman">photo</li>
<li class="woman">photo</li>
<li class="woman">photo</li>
<li class="woman">photo</li>
<li class="woman">photo</li>
</ul>';
$list=”
照片
照片
照片
照片
照片
照片
照片
照片
照片
';
两个选项:
$list=preg#u replace('#^(.*.* *)$#s','$1man$3',$list)代码>
$list=preg#u replace('#^(.*.* *)$#s','$1man$3',$list);
$off = strripos ( $list , "class=");
$list = substr_replace ( $list , "man" , $off+7, 5);
这不会考虑类可能位于LI标记以外的其他对象上,或者如果最后一个LI标记没有类。要修复第一个LI标记,只需更改正则表达式:
$list = preg_replace ('#^(.*class=")woman(".*)$#s', '$1man$2', $list);
$list=preg#u replace('#^(.*(.*)$#s','$1 $2',$list);
使用正则表达式(默认情况下是贪婪的),非常简单:
$off = strripos ( $list , "class=");
$list = substr_replace ( $list , "man" , $off+7, 5);
这不会考虑类可能位于LI标记以外的其他对象上,或者如果最后一个LI标记没有类。要修复第一个LI标记,只需更改正则表达式:
$list = preg_replace ('#^(.*class=")woman(".*)$#s', '$1man$2', $list);
$list=preg#u replace('#^(.*(.*)$#s','$1 $2',$list);
找不到合适的副本,因此下面是DOM解决方案:
$list = preg_replace ('#^(.*)<li[^>]*>(.*)$#s', '$1<li class="man">$2', $list);
$list=”
照片
照片
照片
照片
照片
照片
照片
照片
照片
';
$dom=新的DOMDocument;
$dom->preserveWhiteSpace=false;
$dom->loadXml($list);
$dom->documentElement->lastChild->setAttribute('class','man');
$dom->formatOutput=true;
echo$dom->saveXml($dom->documentElement);
如果您的标记不是XML兼容的,或者如果它是一个完整的HTML页面,请考虑使用
找不到合适的副本,所以这里是DOM解决方案:
$list = preg_replace ('#^(.*)<li[^>]*>(.*)$#s', '$1<li class="man">$2', $list);
$list=”
照片
照片
照片
照片
照片
照片
照片
照片
照片
';
$dom=新的DOMDocument;
$dom->preserveWhiteSpace=false;
$dom->loadXml($list);
$dom->documentElement->lastChild->setAttribute('class','man');
$dom->formatOutput=true;
echo$dom->saveXml($dom->documentElement);
如果您的标记不是XML兼容的,或者如果它是一个完整的HTML页面,请考虑使用