如何使用包含撇号或重音和反向的单词来管理URL

时间:2016-02-22 19:06:49

标签: php

我正在使用这种方法,转换我的市场网站网址,如

myexample.com/toys/boston    // 1 word: Boston
myexample.com/toys/new-york  // 2 words: New York
myexample.com/toys/ofallon   // 2 words: O'Fallon
myexample.com/toys/ahualoa   // 1 words: Āhualoa can be any accent

我希望能够将其转换回页面标题, 但到目前为止,我只是得到了“玩具在Ofallon”或“玩具在Ahualoa”

转换为安全网址的最佳做法是什么? 并能够恢复原来的正确名称

  

例如。 “Āhualoa的玩具”或“O'Fallon的玩具”

2 个答案:

答案 0 :(得分:0)

你不能反向丢弃信息。如果您将è,é,ê,ë和e表示为e,那么您无法知道原始数据是什么。

因此,您必须将信息存储在某处。数据库表将完成这项工作。

slug VARCHAR(255),
title VARCHAR(255)

......例如。

答案 1 :(得分:0)

您可以尝试使用urlencode()urldecode()将所有字​​符转换为%引用并返回。

例如,如果您的城市是O'Fallon,它将转换为:

myexample.com/toys/O%27Fallon

这是一个安全的网址,但它并不是最漂亮的 - 例如,它不会转换为小写字符。 URL中支持UTF8,因此Āhualoa等内容可以保留原样。

要在PHP应用程序中进行解码,如果您通过O%27Fallon运行urldecode(),它将恢复为O'Fallon

您可以使用其他一些技巧来获取您喜欢的格式。例如,运行strtolower()将城市转换为小写字符,然后ucwords()将其恢复。并且可能将它str_replace()组合起来用空格替换空格,反之亦然。