Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Skript zur Implementierung von Markdown-Artikeln, die auf Qiniu Picture Bed hochgeladen wurden

PHP-Skript zur Implementierung von Markdown-Artikeln, die auf Qiniu Picture Bed hochgeladen wurden

藏色散人
藏色散人nach vorne
2020-02-10 13:35:252711Durchsuche

Nachdem Sie Markdown zum Schreiben von Artikeln verwendet haben, müssen Sie diese häufig auf verschiedenen Plattformen veröffentlichen. Die Bilder des Artikels müssen daher manuell hochgeladen werden, was sehr umständlich ist Es wird empfohlen, die Bilder auf das Bild hochzuladen. Auf diese Weise kann ein Artikel problemlos mit den wichtigsten Plattformen synchronisiert werden. Als nächstes verwenden Sie PHP, um diese Funktion zu implementieren und Qiniu Cloud als Bildbett zu verwenden

Erstellen Sie das Projekt und geben Sie es ein

$ mkdir markdown-images-to-qiniu
$ cd markdown-images-to-qiniu

Installieren Sie die offizielle Qiniu-Erweiterung

$ composer require qiniu/php-sdk

Die Implementierungsidee ist sehr einfach

● Lesen Sie die Makrdown-Datei

● Gleichen Sie regelmäßig alle Bilder ab

● Laden Sie die Bilder der Reihe nach hoch

● Ersetzen Sie die Adresse des Artikelbilds mit der Bildbettadresse

● Speichern Sie den ersetzten Artikel

Das Folgende ist die spezifische Implementierung. Erstellen Sie zunächst das Skript index.php im Projektverzeichnis,

<?php
require &#39;vendor/autoload.php&#39;;
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(
    &#39;/\!\[.*\]\(.+\)/&#39;,
    $orginalContent,
    $matches,
    PREG_PATTERN_ORDER
);
$mdImageArr = $matches[0];
if(! count($mdImageArr) ){
    return "无需上传图片";
}
// 3. 依次上传图片
$accessKey = &#39;你的 AccessKey&#39;;
$secretKey = &#39;你的 SecretKey&#39;;
$bucket = &#39;你的七牛空间名&#39;; // 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, &#39;](&#39;) + 2;
    $localPath = mb_substr($image, $start, -1);
    $extension = pathinfo($localPath)[&#39;extension&#39;];
    $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);

verwenden

$ php index.php test.md

Das obige ist der detaillierte Inhalt vonPHP-Skript zur Implementierung von Markdown-Artikeln, die auf Qiniu Picture Bed hochgeladen wurden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen