

新闻资讯
技术学院PHP短链接还原完全支持移动端访问,因其运行在服务端,与客户端设备无关;真正影响体验的是响应头适配、重定向拦截(如微信)及前端兜底方案,推荐API化返回JSON由客户端自行跳转。
能,但和“移动端”本身无关——PHP 是服务端语言,短链接还原逻辑(如请求跳转、HTTP 301/302 解析、数据库查原 URL)完全运行在服务器上,无论用户用手机、平板还是桌面浏览器访问,只要客户端发起 HTTP 请求,服务端就能处理。真正影响体验的是:响应头是否适配移动设备、返回内容是否响应式、重定向是否被拦截(比如微信内置浏览器对某些跳转的限制)。
Location 响应头,导致 302 跳转失败,需配合 meta refresh 或前端 JS 跳转兜底{ "url": "https://..." }),由移动端 WebView 或小程序自行跳转,则完全可控,也更推荐$_SERVER['HTTP_USER_AGENT'] 做“移动端专用逻辑”,它不可靠,且与还原功能无本质关系安卓/iOS 官方不支持原生运行 PHP;所谓“手机 PHP 环境”,实际是第三方封装的本地沙箱(如 Termux + php、iSH Shell、PaServer),它们能执行 CLI 模式下的 PHP 脚本,但无法部署 Web 服务供外部访问——也就是说,你可以在手机里跑一段代码解析 bit.ly/abc 的真实地址,但不能让别人用手机浏览器访问你的 http://localhost:8000/restore.php?url=xxx。
Termux 中安装 PHP 后,可用 php -S localhost:8000 启一个简易服务器,但仅限本机 loopback 访问,外网或局域网其他设备无法连接把短链接还原能力封装成 API,由手机 App、小程序或 H5 页
面调用。PHP 后端只需提供一个干净的接口,例如 /api/v1/expand,接收 GET 参数 short_url,返回结构化数据。
'invalid short_url']);
exit;
}
$short = trim($_GET['short_url']);
// 示例:简单查数据库(实际需预处理、防 SQL 注入、加缓存)
$stmt = $pdo->prepare("SELECT original_url FROM short_links WHERE short_code = ?");
$stmt->execute([parse_url($short, PHP_URL_PATH)]);
$row = $stmt->fetch();
if ($row) {
echo json_encode(['url' => $row['original_url']]);
} else {
http_response_code(404);
echo json_encode(['error' => 'not found']);
}
?>
http://127.0.0.1:2375/... 扫描本地 Docker API)file_get_contents($short) 直接请求短链——这是典型 SSRF 风险点request 合法域名,且 HTTPS 强制location.href 或 wx.miniProgram.navigateTo 处理短链接还原不是“发个 GET 请求再读 header”,真实场景中要处理重定向链、协议升级、编码问题、反爬响应。比如 t.co 返回 302 时可能带 refresh meta,weibo.cn 可能返回 JS 跳转,而 is.gd 则直接返回 301 Location。
get_headers() 判断最终地址——它默认只跟踪一次重定向,且不处理 JS/meta 跳转cURL 并设置 CURLOPT_FOLLOWLOCATION = true 和 CURLOPT_MAXREDIRS 限制,同时捕获 CURLINFO_REDIRECT_URL
或 window.location=,需用 DOM 解析或正则提取(但正则慎用,优先考虑成熟库如 symfony/dom-crawler)