在PHP上删除字符串左右两侧的空格

在PHP上删除字符串左右两侧的空格,php,string,preg-replace,Php,String,Preg Replace,我总是遇到一些问题,字符串中充满了奇怪的字符,这些字符不是空格,但它们确实算作字符串的一个元素。如何从字符串中删除所有这些字符(不删除内部空格) 我使用preg_replace,但它消除了我想要保留的内部空间 $string = preg_replace('/\s+/', '', $string); Php显示“我的字符串”有40个元素 string(40)=>" My string " 它应该只有9个,就像这样: string(9)=>"My string" str

我总是遇到一些问题,字符串中充满了奇怪的字符,这些字符不是空格,但它们确实算作字符串的一个元素。如何从字符串中删除所有这些字符(不删除内部空格)

我使用preg_replace,但它消除了我想要保留的内部空间

$string = preg_replace('/\s+/', '', $string);
Php显示“我的字符串”有40个元素

string(40)=>"
     My string
"
它应该只有9个,就像这样:

string(9)=>"My string"
str_replace("\r", "", $string);
str_replace("\t", "", $string);
str_replace(char(10), "", $string);
单词开头和结尾的空格不是feed、enter或tab,因为我使用了string replace,如下所示:

string(9)=>"My string"
str_replace("\r", "", $string);
str_replace("\t", "", $string);
str_replace(char(10), "", $string);

你可以试试修剪功能

范例

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

它不起作用,测试仍然很糟糕。有一些垃圾我不能用trim消除。你能举一个你试图处理的字符串的例子吗?额外的字符是空白还是空白?标题是“删除空白”,但你的问题是“不是空白的奇怪字符”。角色是什么?您可以执行
echo ord($string[$i])
以查看字符串中字符
$i
的字符代码。