What are some best practices for building and manipulating URLs dynamically in PHP?

When building and manipulating URLs dynamically in PHP, it is important to properly encode any user input to prevent security vulnerabilities such as SQL injection or cross-site scripting attacks. One best practice is to use the `urlencode()` function to encode any parameters or values that are included in the URL. Additionally, you should use PHP's built-in functions like `http_build_query()` to construct query strings for URLs in a safe and efficient manner.

// Example of dynamically building a URL with encoded parameters
$base_url = 'https://example.com/search.php';
$search_query = 'apple iphone';
$category = 'electronics';

// Encode the parameters
$search_query_encoded = urlencode($search_query);
$category_encoded = urlencode($category);

// Build the query string
$query_string = http_build_query([
    'q' => $search_query_encoded,
    'category' => $category_encoded
]);

// Construct the final URL
$url = $base_url . '?' . $query_string;

echo $url;