首页 > 解决方案 > PHP 修剪意外行为

问题描述

标签: phpasciitrimhtml-entities

解决方案


trim()

此函数使用 iso-8859 编码。

您必须使用 UTF8 (Unicode) 函数。试试这个功能

function mb_trim($string, $charlist='\\\\s', $ltrim=true, $rtrim=true) 
{ 
    $both_ends = $ltrim && $rtrim; 

    $char_class_inner = preg_replace( 
        array( '/[\^\-\]\\\]/S', '/\\\{4}/S' ), 
        array( '\\\\\\0', '\\' ), 
        $charlist 
    ); 

    $work_horse = '[' . $char_class_inner . ']+'; 
    $ltrim && $left_pattern = '^' . $work_horse; 
    $rtrim && $right_pattern = $work_horse . '$'; 

    if($both_ends) 
    { 
        $pattern_middle = $left_pattern . '|' . $right_pattern; 
    } 
    elseif($ltrim) 
    { 
        $pattern_middle = $left_pattern; 
    } 
    else 
    { 
        $pattern_middle = $right_pattern; 
    } 

    return preg_replace("/$pattern_middle/usSD", '', $string) ); 
} 

推荐阅读