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.
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.
Jawaban:
Untuk string byte tunggal (mis. US-ASCII, keluarga ISO 8859, dll.) Digunakan
substr
dan untuk string multi-byte (mis. UTF-8, UTF-16, dll.) Gunakanmb_substr
:sumber
if(substr($myURL, 0, 4) == "www.") $myURL = preg_replace('/www./', '', $myURL, 1);
$url = "www.subwww.myweirddomainwww.com"
? Tanpa pemeriksaan awal untuksubstr($url, 0, 4)
, dikembalikan$url
hancur !!Gunakan
substr()
:sumber
substr("Häagen-Dazs", 0, 5) == "Häag"
- apa yang saya lakukan salah?mb_substr
.Cara alternatif untuk mendapatkan hanya satu karakter.
sumber
mb_substr(i, 1)
untuk mendapatkani
karakter th. @RobertPounder - karena tidak diperluas untuk mendapatkan lebih dari satu karakter.$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)Anda dapat menggunakan
substr
fungsi seperti ini:Argumen kedua
substr
adalah dari posisi apa yang ingin Anda mulai dan argumen ketiga adalah untuk berapa banyak karakter yang ingin Anda kembalikan.sumber
Anda bisa mendapatkan hasil Anda hanya dengan menggunakan substr () :
Sintaks substr (string, start, length)
Contoh
Output:
sumber