Bir dizenin ilk 3 harfini ve bir dizenin son 3 harfini silmem gerek. Belirli bir karakterle başlamak için substr() kullanabileceğimi biliyorum, ancak hem ilk hem de son karakterleri çıkarmam gerekirse, bunu gerçekten kullanıp kullanamayacağımı bilmiyorum. Baska öneri?İlk 3 karakteri ve son 3 karakteri String PHP'den sil
cevap
length
argüman (3 argüman) olarak negatif bir değer iletin
Ben php bilmiyorum, ancak dizenin uzunluğunu alamazsınız, 3. pozisyon olarak başlayabilir ve substr?
$result = substr($string, 3, -3);
Yani bu:
<?
$string = "Sean Bright";
$string = substr($string, 3, -3);
echo $string;
?>
Çıkışlar:
n Bri
$myString='123456789';
$newString=substr($myString,3,-3);
Didn, t alt bir parametre kabul etti! Teşekkürler! –
substr($string, 3, strlen($string) - 6)
kullanın
substr($var,1,-1)
bu her zaman strlen kullanmak zorunda kalmadan ilk ve son alacak.
Örnek:
<?php
$input = ",a,b,d,e,f,";
$output = substr($input, 1, -1);
echo $output;
?>
Çıkış:
a, b, d, e, diğer cevaplar belirtildiği gibi
Bu kabul edileninden çok daha yönlü bir cevaptır, ancak kabul edilen cevap gerekli 3 karakter problemini karşılar. –
f aşağıdakilerden birini kullanabilirsiniz Hedefinize ulaşmak için:
- substr($string, 3, -3)
- trim($string, ",") başlangıç ve bitiş gelen tüm spesifik karakter
- ltrim($string, ".")
- rtrim($string, ";")
Duruma göre ucundan tüm spesifik karakter kaldırır baştan tüm spesifik karakter kaldırır kaldırır başlangıç ve bitiş 3 karakter kaldırır Kaldırmanız gereken karakterlerin miktarına ve kaldırmanın belirli olması gerekiyorsa. Ama sonunda substr()
sorunuzu mükemmel bir şekilde yanıtlıyor.
Belki birisi string dereferencing aracılığıyla ilk/son karakteri kaldırma hakkında düşünüyor olabilir.
<?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;
?>
döner: null
yanı bir karakter olarak işe yaramaz, unut
string(13) "Stackoverflow"
string(13) "tackoverflow"
string(13) "tackoverflow"
0
string(13) "ackoverflow"
0
Ve dizeleri unset($string[0])
kullanmak mümkün değildir:
Fatal hata: /usr/www/***.php numaralı hattaki dize ofsetlerini **
numaralı satırda kaldıramıyor
Altstr yaparsam, karakterleri gerçekten çıkarmaz. Eğer substr ($ var, 3) yaparsam 3. pozisyonda başlayacaktır. Sonra substr ($ var, -3) yaparsam, hala dizede ilk 3 karaktere sahip olacak ve 3 karakteri erken bitirecek. Karakterleri tamamen kaldırmak için ona ihtiyacım var. –
@Howdy_McGee, Sean Bright'ın ve Jonathan M'in yanıtlarını görüyor –
, Sean Bright yanıtınızı verdi gibi görünüyor. veya karakterleri orijinal dizeden kaldırmak mı istiyorsunuz? Teknik olarak aynı şey olmadığını biliyorum, ama orijinal değişkeninizi altpro dönüşleriyle değiştirebilirsiniz. –