我需要删除字符串的前 3 个字母和字符串的后 3 个字母。我知道我可以使用 substr() 从某个字符开始,但如果我需要同时删除第一个和最后一个字符,我不确定我是否真的可以使用它。有什么建议么?
问问题
85901 次
6 回答
103
将负值作为length
参数(第三个参数)传递给substr()
,例如:
$result = substr($string, 3, -3);
所以这:
<?php
$string = "Sean Bright";
$string = substr($string, 3, -3);
echo $string;
?>
输出:
布里
于 2011-08-12T19:57:31.600 回答
30
利用
substr($var,1,-1)
这将永远是第一个和最后一个,而不必使用 strlen。
例子:
<?php
$input = ",a,b,d,e,f,";
$output = substr($input, 1, -1);
echo $output;
?>
输出:
a,b,d,e,f
于 2014-10-15T18:24:37.780 回答
6
如其他答案所述,您可以使用以下功能之一来实现您的目标:
- substr($string, 3, -3)从开头和结尾删除 3 个字符
- trim($string, ",")从开头和结尾删除所有特定字符
- ltrim($string, ".")从开始删除所有特定字符
- rtrim($string, ";")从末尾删除所有特定字符
这取决于您需要删除的字符数量以及删除是否需要具体。但最终substr()
完美地回答了你的问题。
也许有人考虑通过字符串取消引用删除第一个/最后一个字符。忘记这一点,它也不会像null
char 那样工作:
<?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在线取消设置字符串偏移量**
于 2015-04-02T11:01:46.583 回答
2
substr($string, 3, strlen($string) - 6)
于 2011-08-12T19:57:54.177 回答
1
我不知道 php,但你不能取字符串的长度,从位置 3 开始并使用 substr 取长度为 6 的字符吗?
于 2011-08-12T19:57:15.397 回答
1
$myString='123456789';
$newString=substr($myString,3,-3);
于 2011-08-12T19:57:54.067 回答