PHP中将字符串左右两侧的空白字符去除

4

我经常遇到一些充满奇怪字符的字符串,它们不是空格但却算作字符串的元素。我应该如何从字符串中删除所有这些字符(不包括内部空格)?

我使用 preg_replace,但它会删除我想保留的内部空格。

$string = preg_replace('/\s+/', '', $string);

Php 显示"My string"有40个元素

string(40)=>"
     My string
"

而且它应该只有像那样的9:
string(9)=>"My string"

由于我只是像这样使用字符串替换,因此单词开头和结尾的空格不是回车、换行或制表符:

str_replace("\r", "", $string);
str_replace("\t", "", $string);
str_replace(char(10), "", $string);

1
额外的字符是空格还是不是?标题说“删除空格”,但你的问题又说“奇怪的字符不是空格”。这些字符是什么?您可以使用echo ord($string[$i])来查看字符串中第$i个字符的字符代码。 - Barmar
1个回答

0

您可以尝试使用 trim 函数

示例:

$bad_text = "\t\tWhitespace is bad!!!  ";
var_dump($bad_text);
$good_text = trim($bad_text);
var_dump($good_text);

它不起作用,测试仍然不好。有一些垃圾我无法通过修剪消除。 - Ihidan
1
你能举个你正在处理的字符串的例子吗? - ryanl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接