【问题标题】:trim( $str, "()" ) not working, anyone knows why? [closed]trim( $str, "()" ) 不工作,有人知道为什么吗? [关闭]
【发布时间】:2019-11-09 18:55:21
【问题描述】:

trim( $str, "()" ) 不工作,有人知道为什么吗?

我也试过单引号:

$str = "(abcd...";    
$str = trim( $str, "()" );
echo $str;
// outputs (abcd...

但它并没有删除字符串开头和结尾的括号。

我做错了什么吗?

谢谢

【问题讨论】:

  • 你能举一个字符串的例子和你的确切代码吗?它should work
  • var_dump($str);
  • 如果括号正好在开头/结尾,它将删除:这有效 $str = '(aa)';回声修剪($str,“()”);同时这不是: $str = 'a()a';回声修剪($str,“()”);对于这种情况,您可以使用 echo str_replace(array( '(', ')' ), '', $str);;
  • 它运作良好()Hello World())
  • 您需要将trim() 的结果分配回一个变量。它不是通过引用完成的。

标签: php trim


【解决方案1】:

如果括号正好在开头/结尾,它将删除。这行得通

$str = '(aa)';
echo trim( $str, "()" );

同时这不是:

$str = 'a()a';
echo trim( $str, "()" );

对于第二种情况,您可以使用

echo str_replace(array( '(', ')' ), '', $str);;

【讨论】:

  • str_replace 将替换字符串中间的括号,我只需要删除开头/结尾的括号
【解决方案2】:

这样处理

$hello  = "()Hello World())";
$trimmed = trim($hello, '()');
echo $trimmed;

更多详情trim()

【讨论】:

  • 如果括号正好在开头/结尾,它将删除:这有效 $str = '(aa)';回声修剪($str,“()”);同时这不是: $str = 'a()a';回声修剪($str,“()”);对于这种情况,您可以使用 echo str_replace(array( '(', ')' ), '', $str);;
  • 是的,这就是 trim( ) 函数的用途,
【解决方案3】:

它不起作用,因为它在开头/结尾有空格。所以我在trim($str, '()') 之前先运行trim($str),现在它正在按应有的方式工作。谢谢!

【讨论】:

  • 如果您不在乎丢失() 另一侧的空格,那么只需添加空格trim( $str, " ()" )
  • 是的,更优雅的解决方案。你是最好的@AbraCadaver!谢谢大家!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-09
  • 2014-02-27
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多