欢迎访问宙启技术站
智能推送

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

发布时间:2023-05-16 09:30:01

Markdown是一种轻量级的标记语言,被广泛应用于写作、编程和博客管理等领域。随着互联网的发展,图片素材的使用也越来越重要,而如何方便快捷地上传和管理图片资源也成为了用户的关注点之一。本文将介绍如何使用PHP实现Markdown文章上传到七牛图床的实例。

一、准备工作

1. 首先,需要注册一个七牛云账号,并创建一个存储空间。

2. 安装PHP环境和Composer,用于管理和安装PHP依赖库。

3. 在Composer中安装“qiniu/php-sdk”库,用于访问七牛API。

二、开始正式编码

1. 在本地创建一个Markdown文件,命名为“test.md”,并随意编辑一些内容。

2. 新建一个PHP文件,用于实现上传Markdown文件中的图片资源。代码如下:

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Qiniu\Auth;
use Qiniu\Storage\UploadManager;

// 需要填写你的 Access Key 和 Secret Key
$accessKey = 'YOUR_ACCESS_KEY';
$secretKey = 'YOUR_SECRET_KEY';

// 构建鉴权对象
$auth = new Auth($accessKey, $secretKey);

// 要上传的空间
$bucket = 'YOUR_BUCKET';

// 上传到七牛后保存的文件名
$filename = 'test.jpg';

// 生成上传 Token
$token = $auth->uploadToken($bucket);

// 初始化 UploadManager 对象并进行文件上传。
$uploadMgr = new UploadManager();

$filePath = './test.jpg';
list($ret, $err) = $uploadMgr->putFile($token, $filename, $filePath);
echo "
====> putFile result: 
";
if ($err !== null) {
    var_dump($err);
} else {
    var_dump($ret);
}
?>

其中,需要将Access Key、Secret Key和Bucket信息填写为自己的,以便程序能够正确的访问并操作相应的空间。

3. 修改Markdown文件中的图片源地址,使其指向自己的七牛存储空间中。地址格式应该为 http://[七牛外网域名]/[文件名],文件名需要和上一步中指定的上传文件名保持一致。示例代码如下:

# 我的测试文章

这是一段测试内容。

![图片描述](http://yourdomain.com/test.jpg)

注意,如果还没有自己的域名或者没有配置七牛外网访问,可以通过“我的空间”中的“域名设置”来进行配置,或者使用七牛提供的默认外网访问地址,格式为“http://[空间名].qiniudn.com/[文件名]”。

4. 调用Markdown解析器,将文件转换为HTML格式,并在HTML中插入相应的图片资源地址。这里使用PHP-Markdown库来实现。代码如下:

<?php
require_once __DIR__ . '/vendor/autoload.php';
use Michelf\MarkdownExtra;

// 原始markdown文件
$markdown = file_get_contents('./test.md');

// 解析markdown文件并生成html格式
$html = MarkdownExtra::defaultTransform($markdown);

// 替换图片地址
$html = preg_replace('/<img src="([^"]+)"/', '<img src="http://yourdomain.com/$1"', $html);
echo $html;exit;
?>

其中,需要将“$markdown”的值指定为自己的Markdown文件路径,将图片地址“http://yourdomain.com/”中的“yourdomain.com”替换为自己的七牛域名。

5. 将解析好的HTML格式文章上传到七牛存储空间中。代码如下:

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Qiniu\Auth;
use Qiniu\Storage\UploadManager;

// 需要填写你的 Access Key 和 Secret Key
$accessKey = 'YOUR_ACCESS_KEY';
$secretKey = 'YOUR_SECRET_KEY';

// 构建鉴权对象
$auth = new Auth($accessKey, $secretKey);

// 要上传的空间
$bucket = 'YOUR_BUCKET';

// 上传到七牛后保存的文件名
$key = 'test.html';

// 获取解析好的HTML内容
$html = file_get_contents('./test.html');

// 上传到七牛
list($ret, $err) = $uploadMgr->put($token, $key, $html);
echo "
====> put result: 
";
if ($err !== null) {
    var_dump($err);
} else {
    var_dump($ret);
}
?>

与之前类似,需要将Access Key、Secret Key和Bucket信息填写为自己的,以便程序能够正确的访问并操作相应的空间。同时,需要将上传文件名和HTML内容路径指定为自己的。

三、运行验证

完成以上4步操作后,就可以运行PHP脚本,在浏览器中查看解析好的HTML内容,或者通过访问七牛外网地址来查看。如果一切顺利,就可以看到自己的Markdown文章已经上传到七牛存储空间中,并且图片资源已经正确引用。这样,就可以方便、快捷地上传和管理Markdown文章中的图片资源了。

需要注意的是,本文只是演示了将Markdown解析成HTML的过程,并上传到七牛存储空间中。实际项目中,还需要考虑如何将上传好的HTML内容存储到数据库中,以便快速查找和管理。同时,还需要考虑如何对Markdown文件进行分类和管理,如何实现批量上传、删除、编辑等功能,以便更好地管理自己的博客内容。