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

时间:2011-08-12 19:55:33

标签: php string character strip substr

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

6 个答案:

答案 0 :(得分:99)

将负值作为length参数(第3个参数)传递给substr(),如:

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

所以这个:

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

输出:

n Bri

答案 1 :(得分:28)

使用

substr($var,1,-1)

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

示例:

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

<强> 输出:

A,B,d,E,F

答案 2 :(得分:6)

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

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

也许有人会考虑通过string dereferencing删除第一个/最后一个字符。忘记这一点,它不会起作用,因为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

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

  

致命错误:无法在第**行 / usr / www / ***。php 取消字符串偏移

答案 3 :(得分:2)

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

答案 4 :(得分:1)

我不知道php,但你不能取字符串的长度,从位置3开始并使用substr取长度为6的字符?

答案 5 :(得分:1)

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