正在应用 Markdown 编写文章之后,常常需求公布到没有同的平台,这里会遇到一个成绩,文章的图片需求手动的进行上传,治理起来十分没有不便,因而,激烈倡议将图片对立上传到图床中,这样的话一篇文章就能够轻松的同步到各年夜平台下面了。上面,用 PHP 来完成该性能,选用 七牛云 作为图床
创立并进入名目
$ 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
以上就是PHP剧本完成Markdown文章上传到七牛图床的具体内容,更多请存眷资源魔其它相干文章!
标签: php php开发教程 php开发资料 php开发自学
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!