Delete first 3 characters and last 3 characters from String PHP

a 夏天 提交于 2019-12-27 23:36:11

问题


I need to delete the first 3 letters of a string and the last 3 letters of a string. I know I can use substr() to start at a certain character but if I need to strip both first and last characters i'm not sure if I can actually use this. Any suggestions?


回答1:


Pass a negative value as the length argument (the 3rd argument) to substr(), like:

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

So this:

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

Outputs:

n Bri



回答2:


Use

substr($var,1,-1)

this will always get first and last without having to use strlen.

Example:

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

Output:

a,b,d,e,f




回答3:


As stated in other answers you can use one of the following functions to reach your goal:

  • substr($string, 3, -3) removes 3 chars from start and end
  • trim($string, ",") removes all specific chars from start and end
  • ltrim($string, ".") removes all specific chars from start
  • rtrim($string, ";") removes all specific chars from end

It depends on the amount of chars you need to remove and if the removal needs to be specific. But finally substr() answers your question perfectly.

Maybe someone thinks about removing the first/last char through string dereferencing. Forget that, it will not work as null is a char as well:

<?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;
?>

returns:

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

And it is not possible to use unset($string[0]) for strings:

Fatal error: Cannot unset string offsets in /usr/www/***.php on line **




回答4:


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



回答5:


I don't know php, but can't you take the length of the string, start as position 3 and take length-6 characters using substr?




回答6:


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


来源:https://stackoverflow.com/questions/7045618/delete-first-3-characters-and-last-3-characters-from-string-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!