Cara mendapatkan 5 karakter pertama dari string

Jawaban:

549

Untuk string byte tunggal (mis. US-ASCII, keluarga ISO 8859, dll.) Digunakan substrdan untuk string multi-byte (mis. UTF-8, UTF-16, dll.) Gunakan mb_substr:

// singlebyte strings
$result = substr($myStr, 0, 5);
// multibyte strings
$result = mb_substr($myStr, 0, 5);
Gumbo
sumber
2
Terima kasih, ini adalah apa yang saya butuhkan untuk:if(substr($myURL, 0, 4) == "www.") $myURL = preg_replace('/www./', '', $myURL, 1);
shanehoban
1
Anda benar-benar hanya perlu str_replace ('www.', '', $ Url); Jangan harus memeriksa apakah itu ada.
Doug Cassidy
8
@DougCassidy: bagaimana jika $url = "www.subwww.myweirddomainwww.com"? Tanpa pemeriksaan awal untuk substr($url, 0, 4), dikembalikan $urlhancur !!
Fr0zenFyr
46

Gunakan substr():

$result = substr($myStr, 0, 5);
BoltClock
sumber
substr("Häagen-Dazs", 0, 5) == "Häag"- apa yang saya lakukan salah?
user187291
12
@stereofrog: Anda mungkin menggunakan pengkodean karakter multi-byte seperti UTF-8. Dalam hal ini digunakan mb_substr.
Gumbo
20

Cara alternatif untuk mendapatkan hanya satu karakter.

$str = 'abcdefghij';

echo $str{5};
Paul Hodel
sumber
7
Ini adalah jawaban yang benar untuk pertanyaan yang salah. Diturunkan.
mickmackusa
Karena itu membutuhkan lebih dari copy paste?
Robert Pounder
CATATAN: Untuk set karakter multi-byte seperti UTF-8, sebagai gantinya harus digunakan mb_substr(i, 1)untuk mendapatkan ikarakter th. @RobertPounder - karena tidak diperluas untuk mendapatkan lebih dari satu karakter.
ToolmakerSteve
1
@ToolmakerSteve, jika Anda mengatakannya; $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)); (salin rekatkan itu ke phptester.net atau kami)
Robert Pounder
Ya saya tahu. Saya tidak secara pribadi menurunkannya; Saya hanya mengamati dengan cara apa itu tidak menjawab pertanyaan. Apa yang Anda tulis - itu akan menjadi jawaban lengkap: menunjukkan kepada pemula bagaimana dalam php satu diperluas dari mendapatkan satu karakter menjadi beberapa karakter. Tambahan yang berguna untuk T&J - terima kasih.
ToolmakerSteve
15

Anda dapat menggunakan substrfungsi seperti ini:

echo substr($myStr, 0, 5);

Argumen kedua substradalah dari posisi apa yang ingin Anda mulai dan argumen ketiga adalah untuk berapa banyak karakter yang ingin Anda kembalikan.

Sarfraz
sumber
-4

Anda bisa mendapatkan hasil Anda hanya dengan menggunakan substr () :

Sintaks substr (string, start, length)

Contoh

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

Output:

 Hello
Prabhu Nandan Kumar
sumber
16
Posting yang SANGAT terlambat ini tidak menambah nilai dan hanya menggembungkan halaman karena semua yang dikatakannya telah dikatakan (tahun sebelumnya). Tolong jangan memposting jawaban kecuali Anda memiliki sesuatu yang unik dan berharga untuk ditambahkan. Turunkan jawaban ini untuk mencegah posting yang tidak berguna dan terlambat.
mickmackusa
Anda mengirim jawaban 7 tahun kemudian? Serius?
Varin