2009-07-14 14 views

Trả lời

29

Bạn có thể sử dụng: $myString[20]

+1

+1 cho [] ngoặc vuông – fmsf

+4

+1 không đặt đế() –

0

Nevermind tìm thấy nó :)

echo $str[1]; 

// quá rõ ràng

+6

Cú pháp {} không được dùng nữa kể từ PHP 6. Nên chọn dấu ngoặc vuông. –

+0

ok ty đã tìm thấy điều này trong ví dụ trực tuyến Tôi sẽ sửa nó – fmsf

0
echo $myString{20}; 

hay:

substr($mystring, 20, 1) 
+0

Như đã nói trong các bình luận của người khác, hãy sử dụng [] và không {} – danicotra

4

Có hai cách bạn có thể đạt được điều này:

  1. Sử dụng dấu ngoặc vuông và một chỉ số để truy cập trực tiếp các nhân vật tại vị trí quy định, như: $string[$index] hoặc $string[1];

  2. Sử dụng substr chức năng: string substr (string $string , int $start [, int $length ])
    Xem http://us2.php.net/manual/en/function.substr.php cho thông tin thêm.

+0

Cách đầu tiên thường tốt hơn nếu bạn cần một đơn char – danicotra

-3

cách đơn giản và dễ dàng!

$string = 'Here is the text'; 
echo $string{2}; 

Nó trả về nhân vật "e" mà là ở vị trí 2.

0

Bạn có thể đi qua chuỗi cho mỗi char. như thế này.

$string = 'Here is the text'; 
echo $string{0}; // output H 
echo $string{1}; // output e 
echo $string{2}; // output r 

...

2

Để chỉ ra một cảnh báo nhỏ tôi nhận thấy trên Strings page of the manual:

Warning Bên trong, chuỗi PHP là mảng byte. Kết quả là, việc truy cập hoặc sửa đổi một chuỗi bằng cách sử dụng các dấu ngoặc mảng không phải là an toàn nhiều byte và chỉ nên được thực hiện bằng các chuỗi có mã hóa một byte như ISO-8859-1.

Chức năng str_split() có thể phá vỡ một chuỗi thành một mảng của mỗi ký tự (hoặc chiều dài cụ thể), nhưng cũng không xử lý chuỗi nhiều byte. Tuy nhiên, nhận xét của người dùng trên đó cung cấp một số giải pháp tiềm năng.

Các vấn đề liên quan