php - URL 参数值 - 不带参数名称 - 例如 google 收缩 URL

标签 php mysql url goo.gl

我正在尝试创建自己的“收缩链接”网站, 例如:www.goo.gladf.ly

但是这个网站仅供我引用,不供公众使用,

所以你会看到,当你缩小 goo.gl 上的链接时,它会给你链接 e.g goo.gl/exapmle_value

example_value是传入数据库的值,然后gog.gl重定向到真实网站。

所以我想要同样的想法,

我正在使用 PHP 和 MySql,我尝试缩小链接,其输出带有 table_id,

e.g www.mydomin.com/1 , www.mydomin.com/2 , www.mydomin.com/3

如何使用简单的 PHP 而不是任何 PHP 框架来做到这一点?

最佳答案

这个问题需要分成两部分。

首先,PHP 脚本获取 URL 的“收缩代码”,即最后一个正斜杠字符后面的位:

www.mydomin.com/asdfasdfasfd
                ^^^^^^^^^^^^ This bit is the "shrink code"

您可以使用$_SERVER['REQUEST_URI']获取页面的URL,然后您需要做的就是使用strrpos和substr获取最后一个斜杠后面的文本:

$url  = $_SERVER['REQUEST_URI'];
// Last position of the slash character
$lastSlashPos = strrpos($url, "/");
// Get the text after the last character
$shrinkCode = substr($url, $lastSlashPos);
print "Great, now I need to look up $shrinkCode in MySQL."

这将为您提供 URL 的最后一部分。

<小时/>

另外,您需要让网络服务器为网站上所有可能的 URL 提供相同的 PHP 页面。

如果您使用 apache,一种作弊方法是将此页面设置为您的自定义 404 页面。因此,每当用户使用缩小的 URL 访问您的网站时,这将指向一个不存在的路径。

如果路径不存在,apache将显示您自定义的错误404页面。如果该页面包含上述代码,那么您将能够找到该URL的后缀,其中包含“shrink-code”。

如果您使用的是网络主机,那么他们通常有自己的自定义 UI 用于选择错误页面。只需将 PHP 脚本的路径放在这里即可。如果您自己托管和配置 apache,请参阅 the manual .

关于php - URL 参数值 - 不带参数名称 - 例如 google 收缩 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19543109/

相关文章:

PHP MySQL if equals else INSERT

php - 数据库错误 Cakephp

带有内部连接的mysql更新查询

javascript - 在 Jquery/Javascript 中检查一个 URL

php - 你如何检查服务器是否正在执行 PHP 脚本?

php - 通过 PHP 将日期从表单传递到 MySQL

php - 在 PHP 中一次从 3 个表中删除行

php - 带有斯堪的纳维亚字母的 URL 段

php - 如何正确清理 PHP 中的 URL 作为链接?

java - 在 java : HTTP response code 414 中通过 http 读取文件