web-dev-qa-db-ja.com

文字列から最初の3文字と最後の3文字を削除PHP

文字列の最初の3文字と文字列の最後の3文字を削除する必要があります。私はsubstr()を使用して特定の文字で開始できることを知っていますが、最初と最後の文字の両方を削除する必要がある場合、実際にこれを使用できるかどうかはわかりません。助言がありますか?

44
Howdy_McGee

負の値をlength引数(3番目の引数)として substr() に渡します。例:

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

したがって、この:

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

出力:

n Bri
99
Sean Bright

つかいます

substr($var,1,-1)

これは、strlenを使用することなく、常に最初と最後になります。

例:

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

出力:

a、b、d、e、f

28
James

他の回答で述べたように、次の機能のいずれかを使用して目標を達成できます。

これは、削除する必要がある文字の量と、削除を特定する必要があるかどうかによって異なります。しかし、最後にsubstr()はあなたの質問に完璧に答えます。

おそらく誰かが string dereferenceencing を介して最初/最後の文字を削除することを考えています。忘れてください。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 行上**

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

私はPHPを知りませんが、文字列の長さを取得し、位置3から開始し、substrを使用して長さ-6文字を取ることはできませんか?

1
Antony Scott
$myString='123456789';
$newString=substr($myString,3,-3);
1
Jonathan M