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