首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示重定向链接的最后编号

显示重定向链接的最后编号
EN

Stack Overflow用户
提问于 2016-01-22 21:27:57
回答 2查看 26关注 0票数 0

如何在php中显示重定向url的最后几个数字?

通过重定向,我的意思是这样的

代码语言:javascript
复制
$nick=$_GET['nickname'];
$url='http://es.cheese.formice.com/mouse/' . $nick . '';

例如,如果url是script.php?nickname=Skyleter,将是http://es.cheese.formice.com/mouse/Skyleter,这里的问题是重定向到http://es.cheese.formice.com/mouse/Skyleter.17529827,因此我想显示重定向url的编号。

对我来说是17529827

这个是可能的吗?

请不要像$variable = substr($url,-8)那样说“最后的8位数”,所以每个缺口都有不同的ID.

此外,当输入为值时,我也喜欢显示自定义错误。script.php而非script.php?nick=nick

默认情况下,它显示“不确定索引”。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-22 22:14:08

由于这个url将重定向您,您将需要使用curl来获得下一个。

这将起作用:

代码语言:javascript
复制
<?php
$nick='Skyleter'; //$_GET['nickname'];
$url='http://es.cheese.formice.com/mouse/' . $nick;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$a = curl_exec($ch);
if(preg_match('#Location: (.*)#', $a, $r))
 $l = trim($r[1]);

$user_id = end((explode('.', $l)));
echo $user_id;
?>

它会在最后一个点(.)爆炸字符串,这是在ID之前出现的。

票数 1
EN

Stack Overflow用户

发布于 2016-01-22 21:57:26

如果总是数字,您可以使用filter_var轻松地提取它们。

代码语言:javascript
复制
$url = 'http://es.cheese.formice.com/mouse/Skyleter.17529827';
$id = filter_var($url, FILTER_SANITIZE_NUMBER_INT);

echo $id; // 17529827

但是,如果昵称中包含数字,这是行不通的。如果格式保持不变(总是以一个点和一组数字结尾),那么我想您可以使用pathinfo作为路径的扩展。

代码语言:javascript
复制
$urlParts = pathinfo('http://es.cheese.formice.com/mouse/Skyleter1111.17529827');
echo $urlParts['extension'];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34956241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档