从String PHP中删除前3个字符和后3个字符

How*_*Gee 44 php string character strip substr

我需要删除字符串的前3个字母和字符串的最后3个字母.我知道我可以使用substr()从某个角色开始,但如果我需要去掉第一个和最后一个角色,我不确定我是否真的可以使用它.有什么建议?

Sea*_*ght 99

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

$result = substr($string, 3, -3);
Run Code Online (Sandbox Code Playgroud)

所以这:

<?php
$string = "Sean Bright";
$string = substr($string, 3, -3);
echo $string;
?>
Run Code Online (Sandbox Code Playgroud)

输出:

n Bri


小智 28

使用

substr($var,1,-1)
Run Code Online (Sandbox Code Playgroud)

这将永远是第一个也是最后一个,而不必使用strlen.

例:

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

输出:

A,B,d,E,F


mgu*_*utt 6

如其他答案所述,您可以使用以下功能之一来实现目标:

这取决于您需要删除的字符数量以及删除是否需要特定.但最后substr()完美地回答了你的问题.

也许有人想通过字符串解除引用来删除第一个/最后一个字符.忘记这一点,它也不会像nullchar一样工作:

<?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;
?>
Run Code Online (Sandbox Code Playgroud)

收益:

string(13) "Stackoverflow"
string(13) "tackoverflow"
string(13) "tackoverflow"
0
string(13) "ackoverflow"
0
Run Code Online (Sandbox Code Playgroud)

并且不可能unset($string[0])用于字符串:

致命错误:无法在行上的/usr/www/***.php中取消设置字符串偏移量**