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

PHP 圖片采集並按原路徑保存的示例代碼

     編輯:PHP 綜合知識

核心思路

通過 pathinfo() 解析遠程圖片 URL 的目錄結構,在本地創建對應目錄,然後使用 file_get_contents() 獲取圖片內容並用 file_put_contents() 保存到相同相對路徑。

完整代碼

<?php
$domain = 'https://www.jb51.net';
$url = '/newskin/images/v4/logo.jpg';

$pats = pathinfo($url);
$dir = '.' . $pats['dirname'] . '/';

if (!is_dir($dir)) {
    @mkdirs($dir, 0777);
    @fclose(fopen($dir . '/index.htm', 'w')); // 防止目錄遍歷
}

$img = file_get_contents($domain . $url);
file_put_contents('.' . $url, $img);
echo '<img src="' . $url . '">';

function mkdirs($pathname, $mode = 0755) {
    is_dir(dirname($pathname)) || mkdirs(dirname($pathname), $mode);
    return is_dir($pathname) || @mkdir($pathname, $mode);
}
?>

關鍵點解析

  • pathinfo() 返回包含 dirname, basename, extension 等鍵的數組。
  • 遞歸函數 mkdirs() 確保多級目錄一次性創建成功。
  • 在生成的目錄中寫入空 index.htm 可防止服務器開啟目錄列表洩露文件結構。
  • 適用於采集站點圖片並保持原有路徑結構的場景。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved