软件世界 PHP PHP实现Markdown文章上传到七牛图床的实例内容

PHP实现Markdown文章上传到七牛图床的实例内容

在使用 Markdown 编写文章之后,经常需要发布到不同的平台,这里会遇到一个问题,文章的图片需要手动的进行…

在使用 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 QiniuAuth;    use QiniuStorageUploadManager;    // 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文章上传到七牛图床的详细内容,如果大家还有任何补充的内容可以联系软件世界小编。

版权声明:本文由博主原创或来自网络,转载请注明出处。https://www.soft.tw/programming/php/1607.html

作者: 软件世界

注册soft.tw就是为了让更多人得到免费的分享软件。

评论列表(1)

联系我们

联系我们

023

在线咨询: QQ交谈

邮箱: web@soft.tw

工作时间:18点~20点
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部