2010-10-27 31 views
8

Tôi được cung cấp một url trang như 'http://abc.com/test.php?a=1&b=2&c=3'. Bây giờ tôi đã được yêu cầu thay đổi giá trị của b thành 5 để nó trở thành 'http://abc.com/test.php?a=1&b=5&c=3'.Thay đổi giá trị biến duy nhất trong chuỗi truy vấn

tức là thay đổi http://abc.com/test.php?a=1&b=2&c=3-http://abc.com/test.php?a=1&b=5&c=3

Lưu ý: biến b đây có thể tham khảo tên bất kỳ.

+0

Bạn có muốn thực hiện điều này chỉ trên một trang hoặc cho biến chuỗi truy vấn đó trên nhiều trang khác nhau không? – Dexter

Trả lời

20

Sử dụng

  • parse_url() để trích xuất các chuỗi truy vấn từ URL

  • parse_str() để phân chia các chuỗi truy vấn vào một mảng

  • array_merge() để thêm một mảng mới "b" => 5

  • http_build_query() để tạo lại chuỗi truy vấn

  • Các phần còn lại từ bước đầu tiên (giao thức, máy chủ, đường dẫn ...) để xây dựng lại URL đầy đủ hoặc - nếu bạn có tiện ích mở rộng HTTP pecl - http_build_url()HTTP_URL_JOIN_QUERY sẽ giảm bớt phần lớn công việc.

+0

Vì câu hỏi này được đóng lại, nhưng nhận được rất nhiều lưu lượng truy cập, tôi nghĩ có ích khi đề cập rằng Pear có một lớp học xử lý tất cả những điều này. Xem http://stackoverflow.com/a/33109595/3852461 – iautomation

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