Browse Source

function fixMDUrls improved

master
filesite 3 years ago
parent
commit
cfffa2a2af
  1. 42
      lib/DirScanner.php
  2. 19
      test/init_test_files.sh

42
lib/DirScanner.php

@ -580,27 +580,41 @@ Class DirScanner {
//替换.md文件解析之后的HTML中的静态文件URL为相对路径path //替换.md文件解析之后的HTML中的静态文件URL为相对路径path
public function fixMDUrls($realpath, $html) { public function fixMDUrls($realpath, $html) {
$reg_urls = '/src="([^"]+)"/i'; $pathinfo = pathinfo($realpath);
preg_match_all($reg_urls, $html, $matches);
if (empty($matches[1])) { $matches = [];
return $html;
//匹配图片地址
$reg_imgs = '/src="([^"]+)"/i';
preg_match_all($reg_imgs, $html, $img_matches);
if (!empty($img_matches[1])) {
$matches = $img_matches[1];
} }
$pathinfo = pathinfo($realpath); //匹配a链接
foreach ($matches[1] as $url) { $reg_links = '/href="([^"]+)"/i';
preg_match_all($reg_links, $html, $link_matches);
if (!empty($link_matches[1])) {
$matches = array_merge($matches, $link_matches[1]);
}
if (!empty($matches)) {
foreach ($matches as $url) {
if (preg_match('/^http(s)?:\/\//i', $url)) {continue;} if (preg_match('/^http(s)?:\/\//i', $url)) {continue;}
$img_realpath = "{$pathinfo['dirname']}/{$url}"; $src_realpath = "{$pathinfo['dirname']}/{$url}";
if (file_exists($img_realpath)) { if (file_exists($src_realpath)) {
$id = $this->getId($img_realpath); $id = $this->getId($src_realpath);
$fp = fopen($img_realpath, 'r'); $fp = fopen($src_realpath, 'r');
$fstat = fstat($fp); $fstat = fstat($fp);
fclose($fp); fclose($fp);
$img_pathinfo = pathinfo($img_realpath); $src_pathinfo = pathinfo($src_realpath);
$extension = strtolower($img_pathinfo['extension']); $extension = strtolower($src_pathinfo['extension']);
$img_path = $this->getFilePath( $id, $this->getRelativeDirname($img_pathinfo['dirname']), $img_pathinfo['filename'], $extension, $fstat['mtime'] );
$src_path = $this->getFilePath( $id, $this->getRelativeDirname($src_pathinfo['dirname']), $src_pathinfo['filename'], $extension, $fstat['mtime'] );
$html = str_replace($url, $img_path, $html); $html = str_replace("\"{$url}\"", "\"{$src_path}\"", $html);
}
} }
} }

19
test/init_test_files.sh

@ -28,7 +28,7 @@ rm -rf "小说/"
rm -rf "图片/" rm -rf "图片/"
touch "Readme.md" touch "Readme.md"
tee -a "Readme.md" <<EOF tee "Readme.md" <<EOF
# Favs我的收藏 # Favs我的收藏
把我收藏的常用网址分享给大家。 把我收藏的常用网址分享给大家。
@ -36,12 +36,15 @@ tee -a "Readme.md" <<EOF
## 图片 ## 图片
常用的图片网站。 常用的图片网站。
<a href="图片/图片搜索/谷歌图片搜索图标.ico" title="谷歌图片搜索">谷歌图片搜索</a>
<a href="图片/必应图片搜索/bing图标.ico" title="Bing图片搜索">Bing图片搜索</a>
## 小说 ## 小说
常用的小说网站。 常用的小说网站。
<img src="图片/图片搜索/谷歌图片搜索图标.ico" alt="谷歌图片搜索"> <img src="小说/金庸小说/最爱金庸网站图标.ico" alt="金庸小说">
<img src="小说/古龙小说/最爱古龙网站图标.ico" alt="古龙小说">
EOF EOF
@ -52,7 +55,7 @@ mkdir -p "图片/必应图片搜索/"
touch "小说/金庸小说/最爱金庸网站图标.ico" touch "小说/金庸小说/最爱金庸网站图标.ico"
touch "小说/金庸小说/最爱金庸.url" touch "小说/金庸小说/最爱金庸.url"
tee -a "小说/金庸小说/最爱金庸.url" <<EOF tee "小说/金庸小说/最爱金庸.url" <<EOF
[InternetShortcut] [InternetShortcut]
URL=https://www.google.com URL=https://www.google.com
EOF EOF
@ -60,19 +63,19 @@ echo '最爱金庸网站图标.ico' > "小说/金庸小说/snapshot.txt"
touch "小说/古龙小说/最爱古龙网站图标.ico" touch "小说/古龙小说/最爱古龙网站图标.ico"
touch "小说/古龙小说/最爱古龙.url" touch "小说/古龙小说/最爱古龙.url"
tee -a "小说/金庸小说/最爱古龙.url" <<EOF tee "小说/金庸小说/最爱古龙.url" <<EOF
[InternetShortcut] [InternetShortcut]
URL=https://www.google.com URL=https://www.google.com
EOF EOF
touch "图片/图片搜索/谷歌图片搜索图标.ico" touch "图片/图片搜索/谷歌图片搜索图标.ico"
touch "图片/图片搜索/谷歌图片搜索.url" touch "图片/图片搜索/谷歌图片搜索.url"
tee -a "图片/图片搜索/谷歌图片搜索.url" <<EOF tee "图片/图片搜索/谷歌图片搜索.url" <<EOF
[InternetShortcut] [InternetShortcut]
URL=https://www.google.com URL=https://www.google.com
EOF EOF
touch "图片/图片搜索/description.txt" touch "图片/图片搜索/description.txt"
tee -a "图片/图片搜索/description.txt" <<EOF tee "图片/图片搜索/description.txt" <<EOF
什么图片都能搜, 什么图片都能搜,
输入关键词,然后点“搜索” 输入关键词,然后点“搜索”
EOF EOF
@ -80,11 +83,11 @@ echo '谷歌图片搜索图标.ico' > "图片/图片搜索/snapshot.txt"
touch "图片/必应图片搜索/bing图标.ico" touch "图片/必应图片搜索/bing图标.ico"
touch "图片/必应图片搜索/bing.url" touch "图片/必应图片搜索/bing.url"
tee -a "图片/必应图片搜索/bing.url" <<EOF tee "图片/必应图片搜索/bing.url" <<EOF
[InternetShortcut] [InternetShortcut]
URL=https://www.bing.com URL=https://www.bing.com
EOF EOF
touch "图片/必应图片搜索/title.txt" touch "图片/必应图片搜索/title.txt"
tee -a "图片/必应图片搜索/title.txt" <<EOF tee "图片/必应图片搜索/title.txt" <<EOF
Bing必应图片搜索 Bing必应图片搜索
EOF EOF

Loading…
Cancel
Save