2011-08-12 23 views
40

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

88

gibi length argüman (3 argüman) olarak negatif bir değer iletin
1

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
+0

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. –

+0

@Howdy_McGee, Sean Bright'ın ve Jonathan M'in yanıtlarını görüyor –

+0

, 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. –

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

Didn, t alt bir parametre kabul etti! Teşekkürler! –

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

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

+0

Bu kabul edileninden çok daha yönlü bir cevaptır, ancak kabul edilen cevap gerekli 3 karakter problemini karşılar. –

5

f aşağıdakilerden birini kullanabilirsiniz Hedefinize ulaşmak için:

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