I got what you say. Consider multi-language case.
For English, I use following code to make the friendly url
[code]
$string = strtolower($string);
// Any non valid characters will be treated as _, also remove
duplicate _
$string = preg_replace('/[^a-z0-9_]/i', '-', $string);
$string = preg_replace('/_[_]*/i', '-', $string);
// Cut at a specified length
if (strlen($string) > $currentMaximumURLLength){
$string = substr($string, 0, $currentMaximumURLLength);
}
// Remove beggining and ending signs
$string = preg_replace('/_$/i', '', $string);
$string = preg_replace('/^_/i', '', $string);
return $string;
[/code]
But for none English language, for example, in Chinese. I should encode the
url firstly.
Addslashes is not nessary, you can consider just urlencode case.
[code]
$url = urlencode($url);
//$url='what%26%23039%3Bs+the+project+name+is%3F'
[/code]
On Wed, Aug 12, 2009 at 8:32 PM, Robert P <[email protected]> wrote:
>
> That URL looks extremely unfriendly to me. I can understand urlencode
> (), but why addslashes() as well?
>
> This has been covered many, many, many times before. For friendly &
> clean URLs use:
> Inflector::slug($url, '-');
>
> On Aug 12, 8:17 pm, joshua <[email protected]> wrote:
> > I want to make a friendly url in my app.
> > So assume the url likes following:
> > [code]
> > var $url = "what's the project name is?";
> > [/code]
> >
> > Before I insert this url into database, I want to encode it firstly.
> > [code]
> > $url = urlencode(addslashes($url)); //$url
> > ='what%26%23039%3Bs+the+project+name+is%3F'
> > [/code]
> >
> > So in the post list view, the post link looks like:
> > [url]
> http://www.example.com/posts/view/what%26%23039%3Bs+the+project+name+...
> > [/url]
> >
> > But when I try to get the parameter in post controller, it print 'what',
> not
> > the whole string('what%26%23039%3Bs+the+project+name+is%3F').
> >
> > PostsController:
> > [code]
> > function view($url){
> > debug($url);// print out "what"}
> >
> > [/code]
> > As you can see the strng after 'what' was cut off. Is there any way that
> I
> > can get the whole parameter in post controller?
> > Thanks in advance! :-]
> >
> > Joshua
> > 5span.com <https://www.5span.com>
> >
>
--
Thanks
Joshua
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---