Cách nhận 5 ký tự đầu tiên từ chuỗi


Câu trả lời:


549

Đối với các chuỗi đơn byte (ví dụ: US-ASCII, họ ISO 8859, v.v.) sử dụng substrvà cho các chuỗi nhiều byte (ví dụ: UTF-8, UTF-16, v.v.) sử dụng mb_substr:

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

2
Cảm ơn, đây là những gì tôi cần nó cho:if(substr($myURL, 0, 4) == "www.") $myURL = preg_replace('/www./', '', $myURL, 1);
shanehoban

1
Bạn thực sự chỉ cần str numplace ('www.', '', $ Url); Không phải kiểm tra nếu nó tồn tại.
Doug Cassidy

8
@DougCassidy: nếu như $url = "www.subwww.myweirddomainwww.com"? Không có kiểm tra ban đầu substr($url, 0, 4), trả lại $urllà bị hủy hoại !!
Fr0zenFyr

46

Sử dụng substr():

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

substr("Häagen-Dazs", 0, 5) == "Häag"- tôi đang làm gì sai?
dùng187291

12
@stereofrog: Có lẽ bạn đang sử dụng mã hóa ký tự nhiều byte như UTF-8. Trong trường hợp đó sử dụng mb_substr.
Gumbo

20

Một cách khác để chỉ có một nhân vật.

$str = 'abcdefghij';

echo $str{5};

7
Đây là câu trả lời đúng cho câu hỏi sai. Bị hạ bệ.
mickmackusa

Bởi vì nó đòi hỏi nhiều hơn dán sao chép?
Robert Pounder

GHI CHÚ: Thay vào đó, mb_substr(i, 1)đối với các bộ ký tự nhiều byte như UTF-8, phải sử dụng để lấy iký tự thứ. @RobertPounder - bởi vì nó không mở rộng để có nhiều hơn một ký tự.
ToolmakerSteve

1
@ToolmakerSteve, nếu bạn nói vậy; $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)); (sao chép dán vào phptester.net hoặc chúng tôi)
Robert Pounder

Vâng tôi biết. Tôi đã không đánh giá thấp nó; Tôi chỉ quan sát theo cách nó không trả lời câu hỏi. Những gì bạn đã viết - đó sẽ là một câu trả lời hoàn chỉnh: hiển thị cho người mới bắt đầu làm thế nào trong php người ta mở rộng từ việc lấy một ký tự thành nhiều ký tự. Bổ sung hữu ích cho Q & A - cảm ơn bạn.
ToolmakerSteve

15

Bạn có thể sử dụng substrchức năng như thế này:

echo substr($myStr, 0, 5);

Đối số thứ hai substrlà từ vị trí bạn muốn bắt đầu và đối số thứ ba là bao nhiêu ký tự bạn muốn trả về.


-4

Bạn có thể nhận được kết quả của mình bằng cách sử dụng chất nền () :

Cú pháp cú pháp (chuỗi, bắt đầu, độ dài)

Thí dụ

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

Đầu ra:

 Hello

16
Bài đăng muộn RẤT này không có giá trị và chỉ đơn thuần là làm mờ trang bởi vì tất cả những gì nó nói đã được nói (năm trước). Xin vui lòng không gửi câu trả lời trừ khi bạn có một cái gì đó độc đáo và có giá trị để thêm. Đánh giá thấp câu trả lời này để ngăn chặn những bài viết muộn, vô dụng.
mickmackusa

Bạn đăng một câu trả lời 7 năm sau? Nghiêm túc?
Varin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.