1 使用中文substr函数.下面给出一个实际可以使用的函数<?PHP
  /*****************************************************
   *
   * 文件名称: CSubstr.inc
   * 作    用: 截取指点长度的中文字符
   * 作    者: PHPX.COM--PHP论坛
   * 
   * 参    数: $str  : 所要截取的字符
   *           $start: 开始字符
   *           $len  : 截取长度,汉字
   *
   *****************************************************/
  
  function csubstr($str,$start,$len) 
  { 
    $strlen = strlen($str); 
    $clen = 0; 
    for($i = 0; $i < $strlen; $i++,$clen++) 
    { 
       if ($clen >= $start+$len) 
         break; 
       if(ord(substr($str,$i,1)) > 0xa0) 
       { 
          if ($clen >= $start) 
            $tmpstr .= substr($str,$i,2); 
          $i++; 
       } 
       else 
       { 
         if ($clen >= $start) 
           $tmpstr .= substr($str,$i,1); 
       } 
     }          return $tmpstr; 
   } 
  
?>怎么用,应该不用我讲了吧:)2 其实和第一个差不多了,不过,这个没有现成的函数,楼主可以自己写一个.
大体思路是,判断两个点后的数据,将不是点的数据用*来替换.

解决方案 »

  1.   

    $title = substr($title,0,40)."......";
    使用的过程中要注意全角和半角的区别,否则会在结尾出现问号
      

  2.   

    2、
    $ray=explode(".",$ip);
    $ip="$ray[0].$ray[1].*.*";呵呵。
      

  3.   

    给你个程序,好好看看对你会有帮助。<?PHP
    $str="这个字符好长呀,^_^";
    $Short_Str=showShort($str,4);//截取前面4个汉字,结果为:这个字符...
    Echo   "$Short_Str";
    Function csubstr($str,$start,$len) 

    $strlen=strlen($str); 
    $clen=0; 
    for($i=0;$i<$strlen;$i++,$clen++) 

    if ($clen>=$start+$len) 
    break; 
    if(ord(substr($str,$i,1))>0xa0) 

    if ($clen>=$start) 
    $tmpstr.=substr($str,$i,2); 
    $i++; 

    else 

    if ($clen>=$start) 
    $tmpstr.=substr($str,$i,1); 

    } return $tmpstr; 

    Function showShort($str,$len) 

    $tempstr = csubstr($str,0,$len); 
    if ($str<>$tempstr) 
    $tempstr .= "..."; //要以什么结尾,修改这里就可以.return $tempstr; 
    }
      

  4.   

    2、
    $ray=explode(".",$ip);
    $ip="$ray[0].$ray[1].*.*";呵呵。
    -----嗯,这个比我想的要简单:)
      

  5.   

    1、怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?
    $len = 20;
    $text = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?";
    echo strlen($text)<=$len ? $text : (substr($text,0,$len).chr(0)."....");

    echo strlen($text)<=$len ? $text : iconv_substr($text,0,$len)."....";2、怎样将ip地址的最后一个断或者两个断用*来代替,例如:168.0.*.* 或者168.0.0.*
    echo preg_replace("/\.\d+$/",".*","168.0.0.1");
    echo preg_replace("/(\.\d+){2}$/",".*.*","168.0.0.1");
      

  6.   

    2、
    $ray=explode(".",$ip);
    $ip="$ray[0].$ray[1].*.*";呵呵。
    -----嗯,这个比我想的要简单:)
    -------------------------
    一般我也这么做,但是,感觉唠叨的更简洁,呵呵,不知道是否效率也是更高  感觉上是