URL Encode and Decode
Encodes a route segment with rawurlencode(), decodes it safely, and builds a query string with http_build_query().
Purpose
Encodes a route segment with rawurlencode(), decodes it safely, and builds a query string with http_build_query().
Snippet details
ContextUtilityLevelProductionCopy-and-paste statusMarked safe after review.Categories
- Forms and Validation
Code
<?php
/*
* Copyright (c) 2026 Jeffery L. Paris <jparis@phpog.com>.
* Free for personal and internal use. Paid project use requires visible credit
* to Jeffery L. Paris. Corporate use requires a paid license fee unless a
* separate written license states otherwise.
*/
/**
* URL Encode and Decode.
*
* Purpose:
* Demonstrates URL-safe encoding for path segments and query parameters using
* rawurlencode(), rawurldecode(), and http_build_query().
*
* @param string $route_segment Value that will appear inside a URL path.
* @param array $query_values Query-string values to append to a URL.
* @return array Encoded segment, decoded segment, and query string.
*/
function ogSnippetUrlEncodeDecode(string $route_segment, array $query_values = array()): array {
$route_segment = trim($route_segment);
if ($route_segment === '') {
return array(
'success' => false,
'encoded_segment' => '',
'decoded_segment' => '',
'query_string' => '',
'message' => 'A route segment is required.'
);
}
$encoded_segment = rawurlencode($route_segment);
$decoded_segment = rawurldecode($encoded_segment);
$query_string = '';
if (count($query_values) > 0) {
$query_string = http_build_query($query_values, '', '&', PHP_QUERY_RFC3986);
}
return array(
'success' => true,
'encoded_segment' => $encoded_segment,
'decoded_segment' => $decoded_segment,
'query_string' => $query_string,
'message' => 'URL encoding completed.'
);
}
/*
$result = ogSnippetUrlEncodeDecode('Abydos gate address / alpha site', array('unit' => 'SG-1', 'status' => 'dial ready'));
print_r($result);
*/