gpt4 book ai didi

php - 如何处理像 Last.FM 或维基百科这样的社区 URL 样式?

转载 作者:可可西里 更新时间:2023-11-01 07:55:12 25 4
gpt4 key购买 nike

我想了解我应该如何处理 URLs 中的字符,这是因为我正在构建一个网站,用户可以在其中存储内容并通过在 URL 中将其名称数字化来转到内容页面。 .

所以,类似于 WikipediaLast.FM网站。

我在网站上看到,用户可以这样写
<a href="http://it.wikipedia.org/wiki/Trentem%C3%B8ller" rel="noreferrer noopener nofollow">http://it.wikipedia.org/wiki/Trentemøller</a>并且可以到达艺术家的页面。

页面加载后,如果我复制 URL,我会看到写成:
<a href="http://it.wikipedia.org/wiki/Trentem%C3%B8ller" rel="noreferrer noopener nofollow">http://it.wikipedia.org/wiki/Trentemøller</a>但如果我将它粘贴到文本编辑器中,它将被粘贴为
<a href="http://it.wikipedia.org/wiki/Trentem%C3%B8ller" rel="noreferrer noopener nofollow">http://it.wikipedia.org/wiki/Trentem%C3%B8ller</a>

所以字符 ø粘贴为 %C3%B8

当然对于这样的URL也是一样的(画师小林武的页面)

<a href="http://www.last.fm/music/%E5%B0%8F%E6%9E%97%E6%AD%A6%E5%8F%B2" rel="noreferrer noopener nofollow">http://www.last.fm/music/小林武史</a>
<a href="http://www.last.fm/music/%E5%B0%8F%E6%9E%97%E6%AD%A6%E5%8F%B2" rel="noreferrer noopener nofollow">http://www.last.fm/music/%E5%B0%8F%E6%9E%97%E6%AD%A6%E5%8F%B2</a>

如果我对第一个或第二个数字进行数字化,该页面在任何情况下都可以正常工作,为什么?

我想我应该对 .htacces 做些什么和 mod_rewrite但我不确定,特殊字符是否自动转换为 url 特殊字符?

然后,我该怎么做才能让 PHP 对内容名称进行正确的查询?

如果我有一张像这样的 table

table_users
- username
- age
- height
- weight
- sex
- email
- country

我可以 mod_rewrite写一个像 <a href="http://mysite.com/user/bob" rel="noreferrer noopener nofollow">http://mysite.com/user/bob</a> 这样的地址得到username鲍勃来自 table_users但是<a href="http://mysite.com/user/%E5%B0%8F%E6%9E%97%E6%AD%A6%E5%8F%B2" rel="noreferrer noopener nofollow">http://mysite.com/user/小林武史</a>呢? ?

这里我展示了一个我想做的简单例子:

#.htaccess
RewriteEngine On
RewriteRule ^(user/)([a-zA-Z0-9_+-]+)([/]?)$ user.php?username=$2

<?php
// this is the page user.php
// this is the way I use to get the url value
print $_REQUEST["username"];
?>

这行得通,但它仅限于 [a-zA-Z0-9_+-],如何像其他字符一样与所有字符更兼容而又不会损失太多安全性?

有人知道避免麻烦的方法吗?

最佳答案

试试 urlencode 和 urldecode

编辑:

下面是url编解码的直观描述

http://blog.neraliu.com/wp-content/uploads/2009/10/url-encoding.png

关于php - 如何处理像 Last.FM 或维基百科这样的社区 URL 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2128756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com