How can regular expressions be effectively used to extract specific parts of a URL in PHP?

Regular expressions can be effectively used in PHP to extract specific parts of a URL by defining patterns that match the desired parts of the URL. This can be useful for extracting information like the domain, path, query parameters, or fragments from a URL string. By using regular expressions, you can create flexible and accurate patterns to extract the required information from URLs.

$url = "https://www.example.com/path/to/page?param1=value1&param2=value2#section";

// Extract domain
preg_match('/^(?:https?:\/\/)?(?:www\.)?([a-zA-Z0-9.-]+)(?:\/|$)/', $url, $matches);
$domain = $matches[1];

// Extract path
preg_match('/\/([^?#]+)/', $url, $matches);
$path = $matches[1];

// Extract query parameters
parse_str(parse_url($url, PHP_URL_QUERY), $queryParameters);

// Extract fragment
preg_match('/#([^#]+)/', $url, $matches);
$fragment = $matches[1];

echo "Domain: " . $domain . "\n";
echo "Path: " . $path . "\n";
echo "Query Parameters: " . print_r($queryParameters, true) . "\n";
echo "Fragment: " . $fragment . "\n";