PHPアナログはPOST要求の二、PHPとJSでURL情報を処理する

5221 ワード

HTTPリクエストのヘッダ情報がわかったら、リクエストアドレスも知る必要があります.なお,HTTP GETリクエストはURLによって実現されるので,URLの構造を理解し,URLを扱うことの重要性は言うまでもない.
PHPではparse_を使いますurl()関数は、URL情報を処理します.
関数のプロトタイプは次のとおりです.
array parse_url ( string $url [,URL_COSTANT])
この関数は、URLを解析し、URLに表示されるさまざまなコンポーネントを含む関連配列を返します.
重大な不合格のURLに対してparse_url()はFALSEに戻りE_を発行する場合がありますWARNING.そうでなければ、関連する配列が返されます.そのコンポーネントは(少なくとも1つ)です.
正しい戻り値は次のとおりです.
 scheme  http      

 host        

 port      

 user      

 pass     

 path      

 query      ?          

 fragment        #         Hash  

次に、parse_を使用した典型的なURL文字列を示します.url()を解析し、その結果配列を出力します.
$url='https://zbs:[email protected]:8080/home/index.html?gender=male&write=code#anchor';

$arr=parse_url($url);

array (size=8)

'scheme' => string 'https' 

'host' => string 'www.baidu.com' 

'port' => int 8080

'user' => string 'zbs' 

'pass' => string 'mypass' 

'path' => string '/home/index.html' 

'query' => string 'gender=male&write=code' 

'fragment' => string 'anchor'

また、2番目のパラメータに値を付けて、返すURL部分、対応するURL_を指定することもできます.CONSTの値は次のとおりです.
scheme:PHP_URL_SCHEME, 
host:PHP_URL_HOST, 
port:PHP_URL_PORT, 
user:PHP_URL_USER, 
pass:PHP_URL_PASS, 
path:PHP_URL_PATH, 
query:PHP_URL_QUERY,
fragment:PHP_URL_FRAGMENT.
たとえば、戻りアドレスのクエリーフィールド情報を指定します.
$url='https://zbs:[email protected]:8080/home/index.html?gender=male&write=code#anchor';

$arr=parse_url($url,PHP_URL_QUERY);//string '/home/index.html

URL情報をどのように分割するかを理解した後、私たちもURL情報を統合することを学ぶ必要があります.統合URL情報には専門的な関数http_build_url()ですが、この関数は処理が煩雑で、一般的にはあまり使われていません.URLを綴るために文字列をよく使います.多くのクエリー情報(query_string)を処理するときはhttp_build_query()関数.
http_build_Query()関数を使用すると、関連配列をクエリー文字列にすばやく結合できます.オブジェクト分析をクエリー文字列に結合することもできますが、修飾子がpublicの「プロパティ」であることしか保持できません.残りの情報は破棄されます.
例:
$info=['run'=>'10km','eat'=>'3kg'];

var_dump(http_build_query($info));//string 'run=10km&eat=3kg'

class Msg{

  public $attr_public="value_public";

  protected $attr_protected="value_protected";

  private $attr_private="value_private";

  function foo(){

    echo "foo";

  }

}

$msg=new Msg();

var_dump(http_build_query($msg));//string 'attr_public=value_public'

 
また、JSは現在のurl情報を取得します.
LocationオブジェクトはWindowオブジェクトの一部であり、windowを通過することができる.locationプロパティにアクセスします.現在のURLに関する情報が含まれています.
Locationオブジェクトのプロパティ
属性の説明
hash URLアンカー情報
ホスト名と現在のURLのポート番号
hostname現在のURLのホスト名
href完全なURL
pathname現在のURLのパス部分
port現在のURLのポート番号
protocol現在のURLのプロトコル
searchクエリー文字列