Scripts
create query string
Deze functie neemt alle bestaande $_GET parameters (keys+vals) en overschrijft die met alle meegegeven (in string, niet array) parameters. Wat er uit komt is een nieuwe query_string met minstens zoveel parameters als er al in de URL staan. De functie is handig omdat je niet alle url parameters (als je al weet welke er bestaan) over hoeft te schrijven. Een voorbeeldje: De tweede parameter zorgt ervoor dat de query string niet gescheiden wordt door &, maar door &, zoals in een XHTML pagina hoort. Standaard staat ie uit,omdat ik zelf de functie vaak gebruik in Header("Location: .."); en dan wil je geen gekke & in je url ;) Veel plezier ermee
create-query-string
<?php
function url( $f_szUrlInfo = '', $f_bXHTMLalize = false )
{
// If empty or no string inputted, return the current url
if ( 0 == strlen(trim((string)$f_szUrlInfo)) )
{
return 0 < count($_GET) ? '?'.$_SERVER['QUERY_STRING'] : basename($_SERVER['SCRIPT_NAME']);
}
$szParamDelimiter = $f_bXHTMLalize ? '&' : '&';
// Create first (old) part
$arrQueryParams = $_GET;
// Create next (new) part
$arrOldParts = explode("&", $f_szUrlInfo);
foreach ( $arrOldParts AS $szParamPart )
{
list($key, $val) = explode("=", $szParamPart, 2);
// this is new and not urlencode()d, so encode it now
$arrQueryParams[urlencode($key)] = urlencode($val);
}
// The first char of the query_string is a '?'
$szUrl = '?';
foreach ( $arrQueryParams AS $szKey => $szVal )
{
$szUrl .= $szKey . '=' . $szVal . $szParamDelimiter;
}
return substr( $szUrl, 0, -1*strlen($szParamDelimiter) );
}
?>
Reacties
0