首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 動態生成 .url 網址捷徑檔供下載

     編輯:PHP 綜合知識

原理

.url 檔案實為 INI 格式文字檔,瀏覽器識別 Content-Type: application/octet-stream 並觸發下載,雙擊即可在預設瀏覽器開啟指定網址。

最小實作

<?php
$url = 'https://www.example.com';
$title = '範例連結';
$icon = 'https://www.example.com/favicon.ico';

$content = "[InternetShortcut]\r\n";
$content .= "URL=$url\r\n";
$content .= "IconFile=$icon\r\n";
$content .= "IconIndex=1\r\n";
$content .= "IDList=\r\n";
$content .= "[{000214A0-0000-0000-C000-000000000046}]\r\n";
$content .= "Prop3=19,2\r\n";

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . rawurlencode($title) . '.url"');
header('Content-Length: ' . strlen($content));
echo $content;

中文檔名處理

使用 rawurlencode() 編碼檔名,支援中文;瀏覽器會自動解碼儲存。

完整可複用函數

function downloadUrlShortcut($url, $title, $icon = '') {
    $lines = [
        '[InternetShortcut]',
        'URL=' . $url,
        'IconFile=' . $icon,
        'IconIndex=1',
        'IDList=',
        '[{000214A0-0000-0000-C000-000000000046}]',
        'Prop3=19,2',
    ];
    $content = implode("\r\n", $lines) . "\r\n";

    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . rawurlencode($title) . '.url"');
    header('Content-Length: ' . strlen($content));
    echo $content;
    exit;
}

// 使用
downloadUrlShortcut(
    'https://github.com',
    'GitHub 首頁',
    'https://github.githubassets.com/favicon.ico'
);

注意事項

  • IconFile:某些瀏覽器/系統可能忽略遠端圖示,建議提供本地 .ico 路徑或確保 HTTPS 可訪問。
  • 編碼:檔案內容建議用 UTF-8 (無 BOM) 儲存,PHP 腳本亦同。
  • 安全:僅允許受信任域名的 URL,防止釣魚連結散播。

總結

幾行程式碼即可實現「點擊下載 → 雙擊開啟網頁」的體驗,適合行銷活動、桌面捷徑分發、離線收藏等場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved