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 ]]] )
參數:
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 編碼,空格會被百分號編碼( )。
範例1:只使用query_data參數
<?php$data = array( 'name' => 'fdipzone', 'gender' => 'male', 'profession' => 'programmer', 'explain' => 'a new programmer');echo http_build_query($data);?>
#輸出: 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('fdipzone','male','programmer','a new programmer');echo http_build_query($data, 'info_', '#', PHP_QUERY_RFC3986);?>
輸出:
info_0=fdipzone#info_1=male#info_2=programmer#info_3=a%20new%20programmer
2.parse_url
#parse_url 解析url,傳回其組成部分
mixed parse_url ( string $url [, int $component = -1 ] )
#參數:
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 = 'http://fdipzone:123456@www.fdipzone.com:80/test/index.php?id=1#tag'; 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;?>
#輸出:
#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
3.parse_str
parse_str 將字串解析成多個變數
void parse_str ( string $str [, array &$arr ] )
如果str 是URL 傳遞入的查詢字串(query string),則將它解析為變數並設定到目前作用域。
參數:
str
輸入的字串
arr
如果設定了第二個變數arr,變數將會以陣列元素的形式存入這個數組,作為替代。
範例1:解析到目前作用域
<?php$str = 'name=fdipzone&gender=male&profession=programer&explain=a new programmer'; parse_str($str);echo $name.PHP_EOL;echo $gender.PHP_EOL;echo $profession.PHP_EOL;echo $explain.PHP_EOL;?>
輸出:
fdipzone male programera new programmer
範例2:結果保存到arr數組
<?php$str = 'name=fdipzone&gender=male&profession=programer&explain=a new programmer'; parse_str($str, $arr); print_r($arr);?>
輸出:
Array( [name] => fdipzone [gender] => male [profession] => programer [explain] => a new programmer )
4.取得url的query參數並解析
##首先使用parse_url取得query,然後在使用parse_str解析參數<?php$url = 'http://www.fdipzone.com/test/index.php?name=fdipzone&gender=male&profession=programmer&explain=a new programmer';$query = parse_url($url, PHP_URL_QUERY); parse_str($query, $data); print_r($data);?>
輸出:
Array( [name] => fdipzone [gender] => male [profession] => programmer [explain] => a new programmer )這篇文章講解如何透過php來使用http_build_query,parse_url,parse_str建立與解析url,更多相關內容請關注php中文網。 相關推薦:
如何透過MySql查看與修改auto_increment的方法
以上是如何透過php來使用http_build_query,parse_url,parse_str建立與解析url的詳細內容。更多資訊請關注PHP中文網其他相關文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版