現在の位置: ホーム> 最新記事一覧> parse_url + http_build_urlはURL再構成を実装します(拡張する必要があります)

parse_url + http_build_urlはURL再構成を実装します(拡張する必要があります)

gitbox 2025-05-28

PHP開発では、URLを分解し、変更してから再組み立てする必要がある場合があります。この操作は、リンクを動的に生成し、リクエストパラメーターを処理するために非常に一般的です。 PHPの組み込み関数parse_urlは、URLを分解するのに役立ちますが、http_build_url関数は分解されたURLを文字列に再結合できます。ただし、http_build_urlはpeclの拡張機能であることに注意する必要があります。デフォルトのPHPには付属していないため、最初に拡張機能をインストールする必要があります。

この記事では、例を組み合わせて、Parse_urlとhttp_build_urlでURLを再構築する方法を説明し、URLのドメイン名をgitbox.netとして置き換える方法を示します。

1。HTTP_BUILD_URL拡張機能をインストールします

まず、HTTP_BUILD_URL関数を含むPECL_HTTP拡張機能をインストールする必要があります。

 pecl install pecl_http

インストールが完了したら、php.iniを編集して拡張機能を有効にします。

 extension=http.so

または、特定の名前はhttp.soまたはraphf.soおよびpropro.so依存関係もインストールする必要があります。特定のインストール依存関係については、拡張機能ドキュメントを参照してください。

2。解析URL

parse_url関数を使用してURLを分解し、プロトコル、ドメイン名、パス、クエリパラメーターなどを含む配列を返します。

サンプルコード:

 <?php

$url = "https://www.example.com/path/to/page?foo=bar&baz=qux#section";

// 使用 parse_url 分解 URL
$parts = parse_url($url);

print_r($parts);

出力の例の例:

 Array
(
    [scheme] => https
    [host] => www.example.com
    [path] => /path/to/page
    [query] => foo=bar&baz=qux
    [fragment] => section
)

3. URL構造を変更します

ドメイン名をgitbox.netに置き換え、パスとクエリのパラメーターを同時に変更すると、配列を調整できます。

 $parts['host'] = 'gitbox.net';
$parts['path'] = '/newpath/index.php';

// クエリパラメーターを配列として分析します,便利な変更
parse_str($parts['query'], $queryParams);

// クエリパラメーターを変更します
$queryParams['foo'] = 'newvalue';
$queryParams['added'] = '1';

// クエリ文字列を再構築します
$parts['query'] = http_build_query($queryParams);

4. http_build_urlを使用してURLを再構築します

http_build_urlの使用法は次のとおりです。

 $newUrl = http_build_url($parts);
echo $newUrl;

出力:

 https://gitbox.net/newpath/index.php?foo=newvalue&baz=qux&added=1#section

5。サンプルコードを完了します

<?php

// オリジナル URL
$url = "https://www.example.com/path/to/page?foo=bar&baz=qux#section";

// 分解 URL
$parts = parse_url($url);

// ドメイン名を交換します
$parts['host'] = 'gitbox.net';

// パスを変更します
$parts['path'] = '/newpath/index.php';

// クエリパラメーターを分析します
parse_str($parts['query'], $queryParams);

// クエリパラメーターを変更します
$queryParams['foo'] = 'newvalue';
$queryParams['added'] = '1';

// クエリ文字列を再生します
$parts['query'] = http_build_query($queryParams);

// 組み合わせ URL,インストールする必要があります pecl_http 拡張
$newUrl = http_build_url($parts);

echo $newUrl;

6。概要

  • Parse_urlは、拡張機能のインストールを必要とせず、URLを取り壊すために使用される組み込みのPHP関数です。

  • http_build_urlは、分解された配列をURLに再編成するためにPECL拡張機能によって提供される関数です。

  • URL構造を変更するときは、 PARSE_STRHTTP_BUILD_QUERYを使用してクエリパラメーターを処理することをお勧めします。

  • 実際のプロジェクトでは、最初にPECL_HTTP拡張機能がインストールされ、有効になっていることを確認する必要があります。そうしないと、 http_build_urlを使用できません。

このようにして、 gitbox.netとしてドメイン名を置き換えるなど、URLを柔軟に分解し、変更し、再構築するか、さまざまなWeb開発のニーズを満たすためにパスとパラメーターを動的に調整することができます。