What is PHP?
PHP acronym stands for Hypertext Preprocessor. This scripting language that is embedded in HTML is open-source, general-purpose, and widely used. Programmers use it for website development, with a major contribution in creating interactive and dynamic websites.
SEO friendly URL PHP
When you start implementing mod_rewrite in websites you can have a problem in PHP to figure out how to make a SEO friendly URL. Tutorials are mostly focused on how to implement mod_rewrite, about modifying .htaccess files, but none show how to make the URLs friendly with dynamic content. For example, you can have a news section that is pulled from the database, but you will have the challenge to figure out how you can make the URL friendly with the title.
Keep in mind, if you are using WordPress, you can control your permalinks directly from the dashboard. That means that optimization is happening here already. Most hosting companies will allow you to edit your htaccess file even if you are hosting your site statically.
For example, you can have a problem was converting titles like “Barca rejects FIFA statement on Olympics row” into “barca-rejects-fifa-statement-on-olympics-row.html”. The trick has to work also with french titles like “Guantanamo: le chauffeur de Ben Laden plaide non coupable à l’ouverture de son procès” into “guantanamo-le-chauffeur-de-ben-laden-plaide-non-coupable-a-l-ouverture-de-son-proces.html”, removing all french accentuated characters.
PHP SEO friendly URL function
function friendlyURL($string){ $string = preg_replace("`\[.*\]`U","",$string); $string = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$string); $string = htmlentities($string, ENT_COMPAT, 'utf-8'); $string = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);`i","\\1", $string ); $string = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $string); return strtolower(trim($string, '-')); }
Use the bellow:
$myFriendlyURL = friendlyURL("Barca rejects FIFA statement on Olympics row"); echo $myFriendlyURL; // will echo barca-rejects-fifa-statement-on-olympics-row
You just have to concatenate anything you want with the string afterward. For French users, make sure your string is encoded in UTF-8 else it won’t work.
If you’re using the Smarty templating engine you can use this little modifier which you can download. Extract the zip file in your Smarty/libs/plugins/ folder and use it in your templates :
{"Barca rejects FIFA statement on Olympics row" | friendlyURL}
Or if your string is in a variable :
{$yourString | friendlyURL}