创建并进入项目
$ mkdir markdown-images-to-qiniu $ cd markdown-images-to-qiniu
安装七牛官方的扩展
$ composer require qiniu/PHP-sdk
实现思路很简单
● 读取 makrdown 文件
● 正则匹配出所有的图片
● 保存替换后的文章
以下是具体的实现,首先在项目目录下创建脚本 index.PHP,
<?PHP require 'vendor/autoload.PHP'; use Qiniu\Auth; use Qiniu\Storage\UploadManager; // 1. 读取 `makrdown` 文件 $file = $argv[1]; if(! file_exists($file) ){ return 找不到文件{$file}; } $orginalContent = file_get_contents($file); // 2. 正则匹配出所有的图片 preg_match_all( '/\!\[.*\]\(.+\)/', $orginalContent, $matches, PREG_PATTERN_ORDER ); $mdImageArr = $matches[0]; if(! count($mdImageArr) ){ return 无需上传图片; } // 3. 依次上传图片 $accessKey = '你的 AccessKey'; $secretKey = '你的 SecretKey'; $bucket = '你的七牛空间名'; // eg. mindgeek $url = 空间所绑定的域名; // eg. http://qiniu.site.com $auth = new Auth($accessKey, $secretKey); $token = $auth->uploadToken($bucket); $uploadMgr = new UploadManager(); $content = $orginalContent; foreach ($mdImageArr as $image) { $start = mb_strpos($image, '](') + 2; $localPath = mb_substr($image, $start, -1); $extension = pathinfo($localPath)['extension']; $uploadpath = uniqid(). .. $extension; list($ret, $error) = $uploadMgr->putFile($token, $uploadpath, $localPath); if(! $error ){ // 4. 将文章图片的地址替换为图床地址 $content = str_replace($localPath, $url.$uploadpath, $content); echo {$uploadpath} 上传成功。\n; } else { echo {$uploadpath} 上传失败。\n; } } // 5. 保存替换后的文章 file_put_contents($file, $content);
使用
$ PHP index.PHP test.md
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。