PHP函数trim()不从字符串中间剥去空格

时间:2014-01-19 15:52:50

标签: php string trim

我有一些相当直接的代码,但出了点问题。以下代码

$title = $_POST['templatename'];
$user = $_POST['username'];
$selectedcoordinates = $_POST['templatestring'];

$title = trim($title);
$user = trim($user);


$filename = $title . "_by_" . $user;

var_dump($title);
var_dump($user);
var_dump($filename);

返回:

string(11) "Single Tile"
string(6) "Author"
string(21) "Single Tile_by_Author" 

其中值来自HTML表单。为什么"Single Tile"不成为"SingleTile"

8 个答案:

答案 0 :(得分:9)

函数trim()仅从字符串的开头和结尾删除空格(以及控制字符,如\ n)。

$title = str_replace(" ", "", trim($title));
$user = str_replace(" ", "", trim($user));

我只是想解决这个问题。因此,解决方案可能看起来很糟糕。无论如何,最好的用法是使用这种方式:

$title = str_replace(" ", "", $title);
$user = str_replace(" ", "", $user);

我删除了trim()函数,因为str_replace()完成了trim()的工作。

答案 1 :(得分:1)

让我们不仅替换空间,而且替换所有 ASCII控制字符

X。 Space Tab End of Line

$str = preg_replace("/[\\x0-\x20\x7f]/", '', $str);

答案 2 :(得分:1)

 array('username','filter','filter'=>'trim')
array('templatename','filter','filter'=>'trim')

在规则

中添加以上行

答案 3 :(得分:0)

修剪只删除开头和结尾的空格,而不是所有空格。

str_replace(' ','',$string);

删除所有空格

答案 4 :(得分:0)

http://www.php.net/manual/en/function.trim.php trim - 从字符串的开头和结尾剥去空格(或其他字符)

这意味着trim只会删除字符串末尾和字符串的空格,而不是字符串中的空格。你可以试试这个:

$title = str_replace(' ','',$title);

答案 5 :(得分:0)

您可以使用str_replace()函数,此函数返回一个字符串或数组,其中所有出现的搜索都被替换为给定的替换值。

  $title = str_replace(' ', '', $title);

语法: str_replace(混合$ search,混合$ replace,混合$ subject [,int& $ count])

搜索

正在搜索的值,也称为针。阵列可用于指定多个针。

<强>替换 替换找到的搜索值的替换值。可以使用数组来指定多个替换。

<强>受试者

正在搜索和替换的字符串或数组,也称为haystack。

如果subject是一个数组,那么搜索和替换是对主题的每个条目执行的,返回值也是一个数组。

更多关于:http://in3.php.net/str_replace

答案 6 :(得分:0)

修剪边缘。

只需使用:

$title = str_replace(' ', '', $title);
$user = str_replace(' ', '', $user);;

答案 7 :(得分:0)

答案很简单。首先,您需要对函数trim()的作用有基本的了解。

该函数的语法是:

修剪(字符串,charlist);

第二个参数是可选的。如果存在,则会从字符串的结尾中删除charlist中的字符。

示例:

$str="beautiful day";
echo trim($str, "aby");

输出:

eautiful d

字母aby从字符串的两端删除

但是,如果省略第二个参数,则会从字符串的结尾中删除以下字符。

"\0" - NULL
"\t" - tab
"\n" - new line
"\x0B" - vertical tab
"\r" - carriage return
" " - ordinary white space

在您的情况下,输出为:

string(11) "Single Tile" string(6) "Author" string(21) "Single Tile_by_Author" 

SingleTile_by_Author之间的空格仍为空白两个