<?php
$name = "abc-abc-abc-";
$pos = strrpos($name,"-");//获得最后一个'-'出现的位置
if($pos+1 == strlen($name))
{
$name = substr($name,0,$pos);//如果是'-'那么从开头截取出长度是strlen($name))-1的字符串
}
echo $name;
?>

解决方案 »

  1.   


    <?php
    //$name = "abc-abc-abc"; # 用于测试非 - 结尾字符串
    $name = "abc-abc-abc-";
    echo preg_replace("/\-$/i",'',$name);
    ?>
      

  2.   

    非常感谢二位的回答已经采用 SysTem128  的方法
      

  3.   


    <?php
    #用于替换多个 - 结尾
    //$name = "abc-abc-abc"; # 用于测试非 - 结尾字符串
    $name = "abc-abc-abc----";
    echo preg_replace("/[\-]+$/i",'',$name);
    ?>
    日志分析 正则表达式一例 详解 http://topic.csdn.net/u/20080117/23/70236117-33b8-42a0-8077-951d4244bb68.html