PHP Classes

File: readme.txt

Recommend this page to a friend!
  Classes of Cesar D. Rodas   Url Rewriter   readme.txt   Download  
File: readme.txt
Role: Documentation
Content type: text/plain
Description: Documentation
Class: Url Rewriter
Redirect requests according URL rewriting rules
Author: By
Last change: * Adding documentation
Date: 15 years ago
Size: 2,456 bytes


Class file image Download
URL Rewriter Cesar D. Rodas <> This class provides an easy mechanism to manage URL rewriting, avoiding to write and manage the ".htaccess" file. Another issue is that you can use a personalized regular expression for create friendlies URL. I. Basic Structure <?php require "url_rewriter.php"; $url = new url_rewriter('example/'); $url->e404 = "error.php"; // regular expression rules goes here $url->execute(); ?> II. Regular Expressions The regular expression are simple a set of constants, variable, and optionals parts. Example: $country=array('Argentina','Brasil','Paraguay'); $url->add_rule("index.php","/[country]/{index.html}", array('country'=> $country) ); If the first rule give true, "index.php" will be executed. For that country must be "Argentina", "Brasil" or "Paraguay" (this is because we force with the third parameter. "Country" must be in $country), and must exist an "index.html" or nothing. * /Paraguay/index.html : Match * /Paraguay/ : Match * /Paraguay/foo.html : Mismatch The :numberX, where X is an identification, variable is an special variable that it must be numeric for match. Example: $country=array('Argentina','Brasil','Paraguay'); $url->add_rule("foo.php","/[country]/[str]-[:number1]-site{-[:number2]}.[ext]", array('country'=> $country,':number2' => 2) ); * /Paraguay/some_string-123-site.html : Match * /Paraguay/some_other_string-123-site-456.html : Mismatch * /Paraguay/some_other_string-123-site-2.html : Match * /Paraguay/some_other_string-123-site-foo.html : Mismatch III. Real life example Steps for translate a page which is "foo.php?id=45" to its URL friendly mode. * Download * Edit url_handler.php * Add a new rule $url->add_rule("foo.php","/entry-[:number1].html"); * Change all your links foo.php?id=45 for /entry-45.html * Edit foo.php adding an extra header <?php $id = $urlVars['number1']; //check if $id exist if ($id not exist) $urlHandler->error404(); //handle request as you did before ?>