php解析url (parse

來源:互聯網
上載者:User

通過php擷取了當前url,如果需要提取url中的參數的話該如何操作呢?這個過程其實挺簡單,使用php的兩個內建函數就可以順利完成,即parse_url和parse_str函數。下面將對這兩個函數做簡要說明以及用樣本說明如何提取url中的參數。

(1)parse_url (PHP 4, PHP 5) — 解析 URL,返回其組成部分,函數原型如下:

mixed parse_url ( string $url [, int $component = -1 ] )

本函數解析一個 URL 並返回一個關聯陣列,包含在 URL 中出現的各種組成部分。

本函數不是用來驗證給定 URL 的合法性的,只是將其分解為下面列出的部分。不完整的 URL 也被接受,parse_url() 會嘗試盡量正確地將其解析。

參數說明

url 要解析的 URL。無效字元將使用 _ 來替換。

component 指定 PHP_URL_SCHEME、 PHP_URL_HOST、 PHP_URL_PORT、 PHP_URL_USER、 PHP_URL_PASS、 PHP_URL_PATH、 PHP_URL_QUERY 或 PHP_URL_FRAGMENT 的其中一個來擷取 URL 中指定的部分的 string。 (除了指定為 PHP_URL_PORT 後,將返回一個 integer 的值)。

傳回值

對嚴重不合格的 URL,parse_url() 可能會返回 FALSE。

如果省略了 component 參數,將返回一個關聯陣列 array,在目前至少會有一個元素在該數組中。數組中可能的鍵有以下幾種:

scheme - 如 http
host
port
user
pass
path
query - 在問號 ? 之後
fragment - 在散列符號 # 之後

如果指定了 component 參數, parse_url() 返回一個 string (或在指定為 PHP_URL_PORT 時返回一個 integer)而不是 array。如果 URL 中指定的組成部分不存在,將會返回 NULL。

(2)parse_str - 把查詢字串解析到變數中,函數原型如下:

parse_str(string,array)

參數說明
 
string 必需。規定要解析的字串。

array 可選。規定儲存變數的數組名稱。該參數指示變數儲存到數組中。如果未設定 array 參數,由該函數設定的變數將覆蓋已由同名變數。

注釋:php.ini 中的 magic_quotes_gpc 設定影響該函數的輸出。如果已啟用,那麼在 parse_str() 解析之前,變數會被 addslashes() 轉換。

(3)具體提取url中的參數樣本如下:

<?php$url='http://www.Alixixi.com/ad.php?id=325&action=index&page=3';$urlarr=parse_url($url);parse_str($urlarr['query'],$parr);print_r($urlarr);print_r($parr);

列印的結果如下:

Array
(
    [scheme] => http
    [host] => www.Alixixi.com
    [path] => /ad.php
    [query] => id=325&action=index&page=3
)
Array
(
    [id] => 325
    [action] => index
    [page] => 3
)

您可能感興趣的文章

  • 在php中分別使用curl的post提交資料的方法和get擷取網頁資料的方法總結
  • PHP Curl批量多線程開啟網址的類
  • PHP擷取當前頁面完整url地址函數,包括參數
  • PHP 字串轉義函數(addslashes,stripslashes)詳解
  • PHP解決網址URL編碼問題的函數urlencode()、urldecode()、rawurlencode()、rawurldecode()
  • php產生短網址的思路以及實現方法
  • PHP壓縮html網頁代碼減小網路資料轉送量,清除空格,定位字元,注釋標記
  • PHP 利用 Curl Functions 實現多線程抓取網頁和下載檔案


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.