trim如何使用呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了trim如何使用呢?相关的知识,希望对你有一定的参考价值。

PHP4,PHP5中的trim():   功能除去字符串开头和末尾的空格或其他字符。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。如果任何参数的值为NULL,Trim()函数返回NULL。   语法:   string trim ( string $str [, string $charlist ] )   函数的返回值是一个去除开头和结尾空格的字符串。但是,如果不加第二个参数,trim()函数将去除以下这些字符:   " "(ASCII 32(0x20)),一个空格   "\t"(ASCII 9(0x09)),tab键   "\n"(ASCII 10 (0x0A)), 换行符   "\r" (ASCII 13 (0x0D)),a carriage return.   "\0" (ASCII 0 (0x00)),空字符   "\x0B" (ASCII 11 (0x0B)),a vertical tab.   参数:   str   需要去空格的字符串。   charlist   返回值:   去除空格的字符串。   版本升级:   相比PHP4.1.0之下,增加了charlist参数。   举例:   <?php   $text = "\t\tThese are a few words :) ... ";   $binary = "\x09Example string\x0A";   $hello = "Hello World";   var_dump($text, $binary, $hello);   print "\n";   $trimmed = trim($text);   var_dump($trimmed);   $trimmed = trim($text, " \t.");   var_dump($trimmed);   $trimmed = trim($hello, "Hdle");   var_dump($trimmed);   // trim the ASCII control characters at the beginning and end of $binary   // (from 0 to 31 inclusive)   $clean = trim($binary, "\x00..\x1F");   var_dump($clean);   ?>   结果如下:   string(32) " These are a few words :) ... "   string(16) " Example string   "   string(11) "Hello World"   string(28) "These are a few words :) ..."   string(24) "These are a few words :)"   string(5) "o Wor"   string(14) "Example string"   Example #2 Trimming array values with trim()   <?php   function trim_value(&$value)      $value = trim($value);      $fruit = array('apple','banana ', ' cranberry ');   var_dump($fruit);   array_walk($fruit, 'trim_value');   var_dump($fruit);   ?>   上例结果如下:   array(3)   [0]=>   string(5) "apple"   [1]=>   string(7) "banana "   [2]=>   string(11) " cranberry "      array(3)   [0]=>   string(5) "apple"   [1]=>   string(6) "banana"   [2]=>   string(9) "cranberry"      另外,rtrim,ltrim用法与trim用法相同。唯一的差别是ltrim去除左边的空格,rtrim去除右边的空格。这个从其首字母不难看出。   ========================================================================   SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:   MySQL: TRIM(), RTRIM(), LTRIM()   Oracle: RTRIM(), LTRIM()   SQL Server: RTRIM(), LTRIM() 参考技术A b=trim(a)
a是一个字符串变量本回答被提问者和网友采纳

如何在 Laravel Query Builder 中执行 TRIM() 和 CONCAT()?

【中文标题】如何在 Laravel Query Builder 中执行 TRIM() 和 CONCAT()?【英文标题】:How to perform TRIM() and CONCAT() in Laravel Query Builder? 【发布时间】:2019-08-14 14:15:39 【问题描述】:

我尝试将 FirstName、middlename、Lastname 与 RAW 结合使用查询生成器,但失败了。我的方法错了吗?谢谢

$student = \DB::table('student')
                        ->select(DB::raw('RTRIM(LTRIM(CONCAT(
                                          COALESCE(FirstName +  ''),
                                        COALESCE(MiddleName +  ''),
                                        COALESCE(Lastname, ''))))
                                        AS Name'))
                        ->get();

【问题讨论】:

COALESCE(FirstName + '') 似乎无效 你不使用 Eloquent 模型有什么原因吗? 【参考方案1】:
$student = DB::table('student')
    ->select(
        DB::raw("TRIM(CONCAT(FirstName,' ',MiddleName,' ',LastName)) AS Name")
    )->get();

TRIM 功能 - 删除字符串See examples and how to use it的前导和尾随空格

CONCAT 功能 - 使用 逗号 将多个字符串相加:See examples and how to use it

希望能帮到你:)

【讨论】:

【参考方案2】:

试试这个:

$student = \DB::table('student')
               ->select(\DB::raw('CONCAT_WS(" ", `FirstName`, `MiddleName`, `Lastname`) as Name'))
               ->get();

【讨论】:

【参考方案3】:

+ 符号应该是逗号:

$student = \DB::table('student')
    ->selectRaw("TRIM(CONCAT(COALESCE(FirstName,  ''), COALESCE(MiddleName,  ''), COALESCE(Lastname, ''))) AS Name")
    ->get();

【讨论】:

【参考方案4】:

为什么不使用 Laravel 模型来实现这一点?

class Student extends Model 

     protected $appends = 'full_name';

     public function getFullNameAttribute() 
         return $this->FirstName . ' ' . $this->MiddleName . ' ' . $this->LastName; 
     

然后,Student::get() 将为每个学生拥有full_name 属性。

【讨论】:

好吧,你可以使用 Eloquent 来做这件事,但它们不是。所以我不确定在查询构建器上使用 ORM 是否真的是一个答案。 @Devon 这是一个非常好的答案,除非来自 OP 的“我不能因为 使用 Eloquent”。

以上是关于trim如何使用呢?的主要内容,如果未能解决你的问题,请参考以下文章

如何保持格式拆分工作表?

如何动画一个圆圈来填充而不是使用.trim?

python中的trim功能

使用“select trim”时如何避免postgresql更改列名

如何在 SSIS 派生列中的嵌套 if 条件表达式中使用 TRIM

为啥使用 JavaScript 中 string 的 trim 方法时要替换 \uFEFF 呢?