Ik heb een formulier waar mensen een title kunnen opgeven. En het is de bedoeling dat diezelfde title gebruikt word als url. Nou zijn niet alle tekens toegestaan in een url, en ik heb er liever zelf ook wat controle over wat er wel en niet in de url komt te staan.
Het onderstaande werkt wel, maar ik weet niet zeker of dat het wel de beste manier is om het aan te pakken.
Stel nou dat mensen tekens zoals é of ê etc gaan invullen. Dat zijn geen standaard a-z tekens, hoe zou je dat moeten aanpakken om die wel in je url te krijgen. Is daar een andere oplossing voor dan ze simpel weg 1 voor 1 aan de lijst van preg_replace toe te voegen?
Is de manier zoals ik het nu doe opzich wel goed, of is het aan te raden om het heel anders aan te pakken?
<?php
function EncodeUrl($url) {
return urlencode(str_replace( ' ' , '-' , $url));
}
//zoveel mogelijk rare tekens in de url proberen te krijgen.
$job_title = 'Front-End Web \'Developer/Analæyst\': (Information Specialist -Req. #1771)!~*< > # % ", { } | \ ^ [ ] `{#';
$list = preg_replace('/[^a-zA-Z0-9-:\(\)!\/\s]/', '', $job_title);
$job_encode_url = EncodeUrl($list);
$job_encode_url = str_replace('--', '-' , $job_encode_url);
$job_url = preg_replace('/--+/', '', $job_encode_url);
echo "<a href='$job_url'>click</a>";
?>
762 views