php短网址/短链接的原理和使用示例
示例介绍了php短网址/短链接的原理和使用,分享给大家,供大家参考。详细如下:
需求
在我们的项目中,如果我们需要更好的传播我们的活动链接,但是链接太长,不美观,也太“笨重”。比如拼多多,淘宝联盟,他们的推广链接都有短链接,还有新浪微博。
但他们永远属于别人。我们调用别人的API来生成,不稳定,所以你可以自己制作一个,注册一个稍微短一点的域名。
生成源码api.php
header("Content-type:application/json");
//GET URL
$url = $_GET["url"];//过滤data
if (trim(emptyempty($url))) {
echo "{\"code\":\"1\",\"url\":\"未传递 URL\" } "; }else{
//定义数据库配置
$dbhost = "xxx";//数据库服务器地址
$dbuser = "xxx";dbdbd = "xxx";//数据库密码
$dbname = "xxx"; "xxx";//数据库名
//连接数据库
$con = mysql_connect($dbhost,$dbuser,$dbhost,$dbwd,$dbhost,$dbhost ;
if (!$con )
{
die('无法连接: ' .mysql_error());
}
insql_$se;in_sql($se); //检查数据库中该URL是否已存在
$check = mysql_query("SELECT * FROM tablename WHERE long_url = '$url'");
$check_result = mysql_num_rows($check);//如果已经存在,则立即进入之前生成的链接 return
if ($check_result) {
while ($row_yicunzai = mysql_fetch_array($check)) {
_i_ic_yicunza"keyd_icunza"$yicunza" ;
//return KEY
echo " {\"code\":\"0\",\"url\":\"域名".$yicunzai_key."\"}";
}
}else {
//生成KEY
$key_str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123445$567890" =str$567890"=strfle($key_str),mt_rand(0,strlen($key_str)-11); , '$key')");
//返回结果
echo "{\"code\":\"0\",\"url\":\"域名".$key." \ "}";
}
//关闭数据库连接
mysql_close($con);
}❙?>
"Content -Type:text/html;charset =utf-8");
//获取当前传入的KEY
$key = $_GET["id"];
echo "";
//过滤数据
if ( rim(emptyempty($key))) {
echo "链接不存在";
}else{
//解析KEY/定义数据库配置
$dbhost = "xxx";/ / 数据库服务器地址
$dbuser = "xxx";//数据库帐号
$dbpwd = "xxx";数据库$密码 dbname = "xxx";//数据库名称
//连接到数据库
$con = mysql_connect($dbhost,$dbuser,$dbpwd);
if (!$con{)
die('无法连接:'.mysql_error());
}
mysql_select_db( $dbname, $con);
//获取通过数据库的长链接进入查询
//检查数据库中是否存在KEY
$check = mysql_query(" SELECT * FROM tablename WHERE dwz_key = '$key'");
$check_result = mysql($num); //如果存在则解析出长链接并跳过
if ($check_result) {
while ($row_long_url)= mysql_fetch_array($check)) {
$long_url = $row_long_url["long_url"];
// echo "location.href=\"".$long_url."\";";
header("位置:$long_url");
}
}else{
echo "链接不存在";
}}?
Apache Rules.htaccess
RewriteEngine On
#RewriteBase /
RewriteRule ^(\w+)$ index.php?id=$1e (
int
- )自动递增
dwz_key(varchar)
long_url(text)
creat_time(TIMESTAMP)
用法
1.访问 api.php?url=长链接 生成短链接,例如 JSON
{"code":"0","url":"http://xxx.cn/Hp8R"}
2 。新建一个.htaccess,将上面的规则复制进去并保存
3.新建index.php,复制上面的代码,配置数据库访问http://xxx.cn/Hp8R,就会自动跳转到你的长链接
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。