PHP tạo tham số URL từ mảng

Cách đây ít lâu, tôi đã đăng cách trích xuất tên miền, đường dẫn, v.v. từ một url bằng PHP và trong bài đăng tiếp theo này cho biết cách trích xuất chuỗi truy vấn thành một mảng kết hợp bằng cách sử dụng hàm parse_str

Trích xuất chuỗi truy vấn bằng parse_url

Trong ví dụ này, chúng tôi sẽ xem xét URL từ truy vấn [chris hope] tại Google [nhân tiện, tôi không hiển thị cho đến trang thứ hai] trông như thế này

//www.google.com/search?hl=en&source=hp&q=chris+hope&btnG=Google+Search&meta=&aq=f&oq=

Sử dụng parse_url, chúng ta có thể dễ dàng trích xuất chuỗi truy vấn như vậy

$parts = parse_url[$url];
echo $parts['query'];

Đầu ra từ trên sẽ là cái này

hl=en&source=hp&q=chris+hope&btnG=Google+Search&meta=&aq=f&oq=

Bên cạnh đó, trước khi tiếp tục sử dụng parse_str để trích xuất các phần riêng lẻ của chuỗi truy vấn, hãy thực hiện print_r[$parts] sẽ hiển thị điều này

Array
[
    [scheme] => http
    [host] => www.google.com
    [path] => /search
    [query] => hl=en&source=hp&q=chris+hope&btnG=Google+Search&meta=&aq=f&oq=
]

Trích xuất các phần chuỗi truy vấn bằng parse_str

Hàm parse_str nhận một hoặc hai tham số [tham số thứ hai từ PHP 4. 0. 3] và không trả về bất kỳ giá trị nào. Nếu có tham số thứ hai, các giá trị từ chuỗi truy vấn được trả về trong tham số đó dưới dạng một mảng kết hợp. Nếu nó không có mặt, thay vào đó chúng được đặt thành các biến trong phạm vi hiện tại, điều này không thực sự lý tưởng

Vì vậy, không có tham số đầu tiên

parse_str[$parts['query']];

Bây giờ bạn có thể lặp lại giá trị "q" như thế này

echo $q;

Theo ý kiến ​​của tôi, sẽ tốt hơn nếu các giá trị được trả về dưới dạng một mảng như vậy

parse_str[$parts['query'], $query];

Bây giờ làm print_r[$query] sẽ xuất ra cái này

Array
[
    [hl] => en
    [source] => hp
    [q] => chris hope
    [btnG] => Google Search
    [meta] =>
    [aq] => f
    [oq] =>
]

Giá trị "q" bây giờ có thể được lặp lại như thế này

________số 8

Theo dõi bài viết

Hãy đọc bài viết của tôi có tiêu đề "PHP. lấy từ khóa từ url tham chiếu của công cụ tìm kiếm" để tìm hiểu cách sử dụng hàm parse_url kết hợp với hàm parse_str để xem chuỗi truy vấn mà khách truy cập đã nhập vào công cụ tìm kiếm

hl=en&source=hp&q=chris+hope&btnG=Google+Search&meta=&aq=f&oq=
2 sẽ tạo một chuỗi truy vấn từ một mảng hoặc đối tượng. Các chuỗi này có thể được thêm vào một URL để tạo yêu cầu GET hoặc được sử dụng trong yêu cầu POST với ví dụ: cURL

$parameters = array[
    'parameter1' => 'foo',
    'parameter2' => 'bar',
];
$queryString = http_build_query[$parameters];

hl=en&source=hp&q=chris+hope&btnG=Google+Search&meta=&aq=f&oq=
3 sẽ có giá trị như sau

$parts = parse_url[$url];
echo $parts['query'];
0

hl=en&source=hp&q=chris+hope&btnG=Google+Search&meta=&aq=f&oq=
2 cũng sẽ hoạt động với mảng nhiều chiều

$parts = parse_url[$url];
echo $parts['query'];
1

hl=en&source=hp&q=chris+hope&btnG=Google+Search&meta=&aq=f&oq=
3 sẽ có giá trị này

$parts = parse_url[$url];
echo $parts['query'];
2

đó là phiên bản được mã hóa URL của

$parts = parse_url[$url];
echo $parts['query'];
3

Để truyền một mảng dưới dạng tham số URL, bạn có thể sử dụng hàm tích hợp php http_build_query[]. http_build_query[] trả về cho bạn chuỗi truy vấn được mã hóa URL

ví dụ 1

Sử dụng http_build_query[]

Sau đây là một ví dụ về phương pháp này -

$parts = parse_url[$url];
echo $parts['query'];
4

đầu ra

Đầu ra của đoạn mã trên là -

$parts = parse_url[$url];
echo $parts['query'];
5

Ví dụ sau đây cho thấy cách sử dụng http_build_query[] khi bạn có một mảng và cùng một nhu cầu chuyển thành tham số URL

$parts = parse_url[$url];
echo $parts['query'];
6

Đầu ra của đoạn mã trên là -

$parts = parse_url[$url];
echo $parts['query'];
7

ví dụ 2

Bạn có thể sử dụng hàm tích hợp serialize[] và urlencode PHP để chuyển một mảng dưới dạng tham số URL

Hàm serialize[] sẽ trả về một chuỗi bit cho đầu vào đã cho và urlencode sẽ mã hóa lại các giá trị cũng như các ký tự đặc biệt có sẵn trong đó

$parts = parse_url[$url];
echo $parts['query'];
8

đầu ra

Đầu ra của đoạn mã trên là -

$parts = parse_url[$url];
echo $parts['query'];
9

ví dụ 3

Sử dụng các hàm http_build_query[] và urlencode[]

  • urlencode[] − nó sẽ mã hóa các giá trị thành một chuỗi

  • http_build_query[] − trả về cho bạn chuỗi truy vấn được mã hóa URL

hl=en&source=hp&q=chris+hope&btnG=Google+Search&meta=&aq=f&oq=
0

đầu ra

Đầu ra của đoạn mã trên là -

hl=en&source=hp&q=chris+hope&btnG=Google+Search&meta=&aq=f&oq=
1

Ví dụ 4

Sử dụng urlencode[] và jsonencode[]

Sau đây là một ví dụ để truyền một mảng dưới dạng tham số URL bằng cách sử dụng các hàm jsconencode[] và urlencode[] –

Làm cách nào để chuyển dữ liệu mảng trong URL trong PHP?

Cách truyền một mảng trong chuỗi truy vấn URL bằng PHP .
Truyền một mảng đơn giản trong http_build_query[]
Truyền một mảng được lập chỉ mục trong http_build_query[]
Truyền một mảng đa chiều trong http_build_query[]
Mô tả chuỗi truy vấn

Làm cách nào để chuyển tham số URL trong PHP?

Các tham số từ một chuỗi URL có thể được truy xuất trong PHP bằng cách sử dụng các hàm parse_url[] và parse_str[] .

Làm cách nào để chuyển đổi mảng thành chuỗi truy vấn trong PHP?

Hàm http_build_query[] là một hàm sẵn có trong PHP được sử dụng để tạo chuỗi truy vấn được mã hóa URL từ liên kết [hoặc được lập chỉ mục .

Làm cách nào để chuyển mảng tới URL trong JavaScript?

myArray = ['aaa', 'bbb', 'ccc']; . attr[{"href". '/myLink? array=' + myArray}];

Chủ Đề