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);

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);

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};

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.


-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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.