Удалить первые 3 символа и последние 3 символа из String PHP - PullRequest
44 голосов
/ 12 августа 2011

Мне нужно удалить первые 3 буквы строки и последние 3 буквы строки. Я знаю, что могу использовать substr (), чтобы начать с определенного символа, но если мне нужно удалить как первый, так и последний символы, я не уверен, что смогу использовать это на самом деле. Какие-либо предложения?

Ответы [ 6 ]

99 голосов
/ 12 августа 2011

Передайте отрицательное значение в качестве аргумента length (3-й аргумент) в substr(), например:

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

Итак, это:

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

Выходы:

n Bri
28 голосов
/ 15 октября 2014

Используйте

substr($var,1,-1)

это всегда будет первым и последним без использования strlen.

Пример:

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

Выход:

а, б, г, д, е

6 голосов
/ 02 апреля 2015

Как указано в других ответах, вы можете использовать одну из следующих функций для достижения вашей цели:

Это зависит от количества символов, которые нужно удалить, и от того, должно ли удаление быть конкретным. Но наконец substr() отлично отвечает на ваш вопрос.

Может быть, кто-то думает об удалении первого / последнего символа через разыменование строки . Забудьте, это не будет работать, так как 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 в строке **

2 голосов
/ 12 августа 2011
substr($string, 3, strlen($string) - 6)
1 голос
/ 12 августа 2011
$myString='123456789';
$newString=substr($myString,3,-3);
1 голос
/ 12 августа 2011

Я не знаю php, но вы не можете взять длину строки, начать с позиции 3 и взять символы длины 6 с помощью substr?

...