从stringPHP中删除前3个字符和最后3个字符

我需要删除string的前3个字母和string的最后3个字母。 我知道我可以使用substr()开始在一个特定的字符,但如果我需要去除第一个和最后一个字符,我不知道我是否可以实际使用这个。 有什么build议么?

传递一个负值作为length参数(第三个参数),如:

 $result = substr($string, 3, -3); 

所以这:

 <? $string = "Sean Bright"; $string = substr($string, 3, -3); echo $string; ?> 

输出:

  ñBri 

使用

 substr($var,1,-1) 

这将永远得到第一个和最后一个,而不必使用strlen。

例:

 <?php $input = ",a,b,d,e,f,"; $output = substr($input, 1, -1); echo $output; ?> 

输出:

A,B,d,E,F

正如其他答案中所述,您可以使用以下function之一来实现您的目标:

  • substr($ string,3,-3)从开始和结束中删除3个字符
  • trim($ string,“,”)从开始和结束中删除所有特定的字符
  • ltrim($ string,“。”)从开始删除所有特定的字符
  • rtrim($ string,“;”)从最后删除所有特定的字符

这取决于你需要删除的字符数量,如果删除需要具体。 但最后substr()完美地回答你的问题。

也许有人想通过string解引用去掉第一个/最后一个字符。 忘了,它不会工作, null也是一个字符:

 <?php $string = 'Stackoverflow'; var_dump($string); $string[0] = null; var_dump($string); $string[0] = null; var_dump($string); echo ord($string[0]) . PHP_EOL; $string[1] = ''; var_dump($string); echo ord($string[1]) . PHP_EOL; ?> 

收益:

 string(13) "Stackoverflow" string(13) "tackoverflow" string(13) "tackoverflow" 0 string(13) "ackoverflow" 0 

对于string,不能使用unset($string[0])

致命错误 :无法取消设置/usr/www/***.php中的string偏移**

 substr($string, 3, strlen($string) - 6) 

我不知道PHP,但你不能把string的长度,作为位置3开始,使用substr长度为6个字符?

 $myString='123456789'; $newString=substr($myString,3,-3);