Jadual Kandungan
1.http_build_query
2.parse_url
3.parse_str
4.获取url的query参数并解析
Rumah pembangunan bahagian belakang tutorial php 如何通过php来使用http_build_query,parse_url,parse_str创建与解析url

如何通过php来使用http_build_query,parse_url,parse_str创建与解析url

Jun 09, 2018 am 10:07 AM
php

1.http_build_query

http_build_query 可以创建urlencode之后的请求字符串。

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
Salin selepas log masuk

参数:
query_data
可以是数组或包含属性的对象。

一个query_data数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。

如果query_data是一个对象,只有public属性才会加入结果。

numeric_prefix
如果在基础数组中使用了数字下标同时给出了该参数,此参数值将会作为基础数组中的数字下标元素的前缀。

这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。

arg_separator
除非指定并使用了这个参数,否则会用 arg_separator.output来分隔参数(php.ini中有此参数,默认是”&”)。

enc_type
默认使用 PHP_QUERY_RFC1738。

如果 enc_type 是 PHP_QUERY_RFC1738,则编码将会以 » RFC 1738 标准和 application/x-www-form-urlencoded 媒体类型进行编码,空格会被编码成加号(+)。

如果 enc_type 是 PHP_QUERY_RFC3986,将根据 » RFC 3986 编码,空格会被百分号编码(%20)。
例子1:只使用query_data参数

<?php$data = array(    &#39;name&#39; => &#39;fdipzone&#39;,    &#39;gender&#39; => &#39;male&#39;,    &#39;profession&#39; => &#39;programmer&#39;,    &#39;explain&#39; => &#39;a new programmer&#39;);echo http_build_query($data);?>
Salin selepas log masuk

输出:
name=fdipzone&gender=male&profession=programmer&explain=a+new+programmer


例子2: query_data使用一维下标数组,指定
numeric_prefix=info_,arg_separator=#,enc_type=PHP_QUERY_RFC3986

<?php$data = array(&#39;fdipzone&#39;,&#39;male&#39;,&#39;programmer&#39;,&#39;a new programmer&#39;);echo http_build_query($data, &#39;info_&#39;, &#39;#&#39;, PHP_QUERY_RFC3986);?>
Salin selepas log masuk

输出:

info_0=fdipzone#info_1=male#info_2=programmer#info_3=a%20new%20programmer
Salin selepas log masuk

2.parse_url

parse_url 解析url,返回其组成部分

mixed parse_url ( string $url [, int $component = -1 ] )
Salin selepas log masuk

参数:
url
要解析的url,无效字符将使用_来替换

component
PHP_URL_PATH、 PHP_URL_QUERY 或 PHP_URL_FRAGMENT 的其中一个来获取 URL 中指定的部分的 string。 (除了指定为 PHP_URL_PORT 后,将返回一个 integer 的值)。

返回值:
对严重不合格的 URL,parse_url() 可能会返回 FALSE。

返回的数据一般包含以下几种
scheme(如http),host,port,user,pass,path,query(在问号?之后),fragment(在散列符号#之后)
例子:

<?php$url = &#39;http://fdipzone:123456@www.fdipzone.com:80/test/index.php?id=1#tag&#39;;
print_r(parse_url($url));echo parse_url($url, PHP_URL_SCHEME).PHP_EOL;echo parse_url($url, PHP_URL_HOST).PHP_EOL;echo parse_url($url, PHP_URL_PORT).PHP_EOL;echo parse_url($url, PHP_URL_USER).PHP_EOL;echo parse_url($url, PHP_URL_PASS).PHP_EOL;echo parse_url($url, PHP_URL_PATH).PHP_EOL;echo parse_url($url, PHP_URL_QUERY).PHP_EOL;echo parse_url($url, PHP_URL_FRAGMENT).PHP_EOL;?>
Salin selepas log masuk

输出:

Array(
    [scheme] => http
    [host] => www.fdipzone.com
    [port] => 80
    [user] => fdipzone
    [pass] => 123456
    [path] => /test/index.php
    [query] => id=1
    [fragment] => tag
)
http
www.fdipzone.com80fdipzone123456/test/index.php
id=1tag
Salin selepas log masuk

3.parse_str

parse_str 将字符串解析成多个变量

void parse_str ( string $str [, array &$arr ] )
Salin selepas log masuk

如果 str 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域。
参数:
str
输入的字符串

arr
如果设置了第二个变量arr,变量将会以数组元素的形式存入到这个数组,作为替代。
例子1:解析到当前作用域

<?php$str = &#39;name=fdipzone&gender=male&profession=programer&explain=a new programmer&#39;;
parse_str($str);echo $name.PHP_EOL;echo $gender.PHP_EOL;echo $profession.PHP_EOL;echo $explain.PHP_EOL;?>
Salin selepas log masuk

输出:

fdipzone
male
programera new programmer
Salin selepas log masuk


例子2:结果保存到arr数组

<?php$str = &#39;name=fdipzone&gender=male&profession=programer&explain=a new programmer&#39;;
parse_str($str, $arr);
print_r($arr);?>
Salin selepas log masuk

输出:

Array(
    [name] => fdipzone
    [gender] => male
    [profession] => programer
    [explain] => a new programmer
)
Salin selepas log masuk

4.获取url的query参数并解析

首先使用parse_url获取query,然后在使用parse_str解析参数

<?php$url = &#39;http://www.fdipzone.com/test/index.php?name=fdipzone&gender=male&profession=programmer&explain=a new programmer&#39;;$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $data);
print_r($data);?>
Salin selepas log masuk

输出:

Array(
    [name] => fdipzone
    [gender] => male
    [profession] => programmer
    [explain] => a new programmer
)
Salin selepas log masuk

本篇文章讲解了如何通过php来使用http_build_query,parse_url,parse_str创建与解析url,更多相关内容请关注php中文网。

相关推荐:

如何通过html5实现摇一摇的功能

如何通过MySql查看与修改auto_increment的方法

如何通过php生成网页桌面的快捷方式

Atas ialah kandungan terperinci 如何通过php来使用http_build_query,parse_url,parse_str创建与解析url. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

See all articles