Dizeden ilk 5 karakter nasıl alınır


Yanıtlar:


550

İçin tek bayt dizeleri (örneğin US-ASCII, ISO 8859 ailesi, vb) kullanımı substrve için multi-byte dizeleri (örneğin UTF-8, UTF-16, vs.) kullanılmasımb_substr :

// singlebyte strings
$result = substr($myStr, 0, 5);
// multibyte strings
$result = mb_substr($myStr, 0, 5);

2
Teşekkürler, bunun için ihtiyacım olan şey:if(substr($myURL, 0, 4) == "www.") $myURL = preg_replace('/www./', '', $myURL, 1);
shanehoban

1
Gerçekten sadece str_replace ('www.', '', $ Url); Var olup olmadığını kontrol etmek zorunda değilsiniz.
Doug Cassidy

8
@ DougCassidy: ne olur $url = "www.subwww.myweirddomainwww.com"? İlk kontrol olmadan substr($url, 0, 4), iade $urlmahvetti!
Fr0zenFyr

46

Kullanım substr():

$result = substr($myStr, 0, 5);

substr("Häagen-Dazs", 0, 5) == "Häag"- Neyi yanlış yapıyorum?
user187291

12
@stereofrog: Muhtemelen UTF-8 gibi çok baytlı bir kod kullanıyorsunuz. Bu durumda kullanın mb_substr.
Gumbo

20

Sadece bir karakter elde etmenin alternatif bir yolu.

$str = 'abcdefghij';

echo $str{5};

7
Bu yanlış soruya doğru cevap. Downvoted.
mickmackusa

Kopya yapıştırmadan daha fazlasını gerektirdiğinden?
Robert Pounder

NOT: UTF-8 gibi çok baytlı karakter kümeleri için, bunun yerine th karakterini mb_substr(i, 1)almak gerekir i. @RobertPounder - çünkü birden fazla karakter almayı kapsamıyor.
ToolmakerSteve

1
@ToolmakerSteve, öyle diyorsan; $string = "Häagen-Dazs"; $stringFirstChars = function($amount, $string) { $i=0;$done=false;$return = '';while($done == false) {$return.=$string{$i};if($amount===$i)$done=true;$i++;}return $return;}; var_dump($stringFirstChars(5, $string)); (phptester.net veya biz içine yapıştırın)
Robert Pounder

Evet biliyorum. Ben şahsen küçümsedim; Sadece soruyu ne şekilde cevaplamadığını gözlemledim. Ne yazdınız - bu tam bir cevap olacaktır: bir acemi nasıl bir php bir karakter almak için birden fazla karakter kadar uzanır gösteren. Soru ve Cevaplara faydalı bir ek - teşekkür ederim.
ToolmakerSteve

15

Bu substrişlevi aşağıdaki gibi kullanabilirsiniz :

echo substr($myStr, 0, 5);

İkinci argüman substrhangi pozisyondan başlamak istediğiniz ve üçüncü argümanlar kaç karakter döndürmek istediğinizdir.


-4

Sonuçlarınızı substr () kullanarak elde edebilirsiniz :

Sözdizimi substr (dize, başlangıç, uzunluk)

Misal

<?php
$myStr = "HelloWordl";
echo substr($myStr,0,5);
?>

Çıktı :

 Hello

16
Bu ÇOK geç gönderi hiçbir değer katmıyor ve sadece söylediği her şey zaten söylendiğinden (yıllar önce) sayfayı şişiriyor. Eklemek için benzersiz ve değerli bir şeyiniz yoksa lütfen yanıt göndermeyin. Bu cevabı gereksiz, geç gönderileri caydırmak için reddetti.
mickmackusa

7 yıl sonra cevap mı verdin? Ciddi anlamda?
Varin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.