1

今天,我对修剪功能有一个非常奇怪的问题。这是我的代码。= 结果是 124。修剪功能不适用于此字符串??!

$s = '                                                                                  ';
$s = trim($s);
echo strlen($s);exit();

复制和粘贴不适用于此代码。不知道什么是空白?但修剪无法剥离它:|

你可以在这里测试这段代码:

测试:http://70.38.18.62/t.php

您可以在那里复制空格和代码:http: //jsbin.com/ukunuq/1/edit

4

3 回答 3

8

当我查看您的 t.txt 时,$s 字符串不仅仅是空格。在十六进制中,它读取 20(空格)和 C2 和 A0 字符的混合。您需要丢失那些 C2 和 A0 字符。

它们可能不会显示在屏幕上,但它们不是空格。这是我对返回的内容的嗅探

屏幕截图

可能以 7 位 ASCII 编码文件也会揭示问题。

要清理它,只需选择 $s 中的所有文本,删除它,然后按空格键以获得正确数量的空格。或者使用 str_repeat(' ', 134) 来做同样的事情。检查编辑器的字符集。

于 2012-08-08T04:54:52.557 回答
0

在这里工作:

marc@panic:~$ php -a
Interactive shell

php > $s = '                                                                                  ';
php > $s = trim($s);
php > echo strlen($s);exit();
0
marc@panic:~$ 

PHP 5.3.10-1ubuntu3.2。不知道你从哪里来124。原始未修剪 $s 的 strlen 对我来说是 82。

于 2012-08-08T04:37:37.057 回答
0

由于没有第二个参数转义的PHP DOCS函数 trim();

" " (ASCII 32 (0x20)), an ordinary space.
"\t" (ASCII 9 (0x09)), a tab.
"\n" (ASCII 10 (0x0A)), a new line (line feed).
"\r" (ASCII 13 (0x0D)), a carriage return.
"\0" (ASCII 0 (0x00)), the NUL-byte.
"\x0B" (ASCII 11 (0x0B)), a vertical tab.

$s所以你在变量中只有一个这个字符。其他人不可见,但不在列表中。

于 2012-08-08T05:01:53.400 回答