Cho mỗi ký tự trong chuỗi php

Một ngày nọ, tôi đang thực hiện một dự án yêu cầu tôi trích xuất một ID số từ URL của trang hiện tại. Vấn đề là ID có thể ở cuối chuỗi URL hoặc ở giữa, tùy thuộc vào việc có bất kỳ tham số nào được thêm vào hay không. Đây là cách tôi giải quyết vấn đề bằng cách lặp qua từng ký tự của chuỗi

Vì phần đầu tiên của URL được định dạng bình thường nên tôi có thể sử dụng kết hợp strpos()substr() để tìm phần chuỗi chứa ID cũng như tất cả các ký tự theo sau nó (tôi có thể sử dụng biểu thức chính quy ở đây, nhưng tôi thích hơn . Điều này vẫn khiến tôi gặp vấn đề khi lấy ID ra khỏi chuỗi đó, vì số thực có thể dài bất kỳ. May mắn cho tôi, ID ngay sau đó là một ký tự không phải là số, vì vậy tôi đã nghĩ ra một giải pháp trong đó tôi có thể lặp qua từng ký tự trong chuỗi và sử dụng từng ký tự cho ID cần thiết, nhưng dừng vòng lặp khi tôi nhấn nút . Để chia sẻ một số mã hữu ích, đây là đoạn mã đơn giản mà tôi đã sử dụng để lặp qua chuỗi cùng với trường hợp sử dụng của mình


Tệp này chứa văn bản Unicode hai chiều có thể được diễn giải hoặc biên dịch khác với nội dung hiển thị bên dưới. Để xem lại, hãy mở tệp trong trình chỉnh sửa hiển thị các ký tự Unicode bị ẩn
Tìm hiểu thêm về các ký tự Unicode hai chiều

Hiển thị ký tự ẩn





$str = "Chuỗi tới $str = "String to loop through"$strlen = strlen( $str );for( $i = 0; $i <= $strlen; $i++ ) {$char = substr( $str, $i, 1 );// $char contains the current character, so do your processing here}?>

xem thô

được lưu trữ với ❤ ​​bởi GitHub


Tệp này chứa văn bản Unicode hai chiều có thể được diễn giải hoặc biên dịch khác với nội dung hiển thị bên dưới. Để xem lại, hãy mở tệp trong trình chỉnh sửa hiển thị các ký tự Unicode bị ẩn
Tìm hiểu thêm về các ký tự Unicode hai chiều

Hiển thị ký tự ẩn





$str = "123? . is_numeric( $char ) ) { break$char;}// $id hiện chứa ID I . 123?>$str = "123?param=value"$strlen = strlen( $str );$id = "";for( $i = 0; $i <= $strlen; $i++ ) {$char = substr( $str, $i, 1 );if( ! is_numeric( $char ) ) { break; }$id .= $char;}// $id now contains the ID I need, in this case: 123?>

xem thô

được lưu trữ với ❤ ​​bởi GitHub

Chia sẻ bài đăng này

  • Facebook
  • Twitter
  • Tumblr
  • WhatsApp

Có liên quan

class apple {
public function __toString() {
return "green";
}
}

echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>

Ví dụ trên sẽ xuất ra

Nếu tham số length tùy chọn được chỉ định, thì mảng được trả về sẽ được chia thành các đoạn với mỗi đoạn có chiều dài length, ngoại trừ đoạn cuối cùng có thể ngắn hơn nếu chuỗi không chia đều. length mặc định là 1, nghĩa là mỗi đoạn sẽ có kích thước một byte

Lỗi/Ngoại lệ

Nếu length nhỏ hơn 1, một ValueError sẽ được đưa ra

Nhật ký thay đổi

Phiên bảnMô tả8. 0. 0Nếu length nhỏ hơn 1, một ValueError sẽ được đưa ra ngay bây giờ;

ví dụ

Ví dụ #1 Ví dụ sử dụng str_split()

$string5

$string6

$string7

$string8

Ví dụ trên sẽ xuất ra

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

ghi chú

Ghi chú

str_split() sẽ chia thành byte, thay vì ký tự khi xử lý chuỗi được mã hóa nhiều byte. Sử dụng mb_str_split() để chia chuỗi thành các điểm mã

Làm cách nào để kiểm tra từng ký tự trong một chuỗi trong PHP?

Mỗi ký tự trong chuỗi được lưu trữ tại một vị trí duy nhất được biểu thị bằng một giá trị chỉ mục duy nhất. Cách tiếp cận 1. Sử dụng phương thức str_split() – Phương thức str_split() được sử dụng để chia biến chuỗi đã chỉ định thành một mảng giá trị, mỗi giá trị được ánh xạ tới một .

Tôi có thể sử dụng foreach trên chuỗi trong PHP không?

Ví dụ. Cho từng ký tự trong chuỗi sử dụng str_split() và foreach . Trong ví dụ này, chúng tôi sẽ lấy một chuỗi, chẳng hạn như “apple”, và lặp lại từng ký tự của chuỗi bằng cách sử dụng hàm str_split() và câu lệnh foreach.

Làm cách nào để tách chuỗi dựa trên ký tự trong PHP?

explode() là một hàm tích hợp trong PHP được sử dụng để tách một chuỗi thành các chuỗi khác nhau. Hàm phát nổ () tách một chuỗi dựa trên dấu phân cách chuỗi, i. e. nó phân tách chuỗi bất cứ nơi nào xuất hiện ký tự phân cách. Hàm này trả về một mảng chứa các chuỗi được tạo bằng cách tách chuỗi ban đầu.

Làm cách nào để kiểm tra xem một chuỗi có chứa một từ cụ thể trong PHP không?

Bạn có thể áp dụng hàm strpos() để kiểm tra xem một chuỗi có chứa một từ nào đó không. Hàm này có khả năng trả về vị trí xuất hiện đầu tiên của chuỗi con bên trong chuỗi. Trong trường hợp không phát hiện chuỗi con, trả về false. Tuy nhiên, vị trí của chuỗi bắt đầu từ 0 chứ không phải 1.