Maison > développement back-end > tutoriel php > Script PHP pour implémenter les articles Markdown téléchargés sur Qiniu Picture Bed

Script PHP pour implémenter les articles Markdown téléchargés sur Qiniu Picture Bed

藏色散人
Libérer: 2023-04-08 12:34:02
avant
2733 Les gens l'ont consulté

Après avoir utilisé Markdown pour rédiger des articles, vous devez souvent les publier sur différentes plateformes. Vous rencontrerez ici un problème. Les images de l'article doivent être téléchargées manuellement, ce qui est donc très gênant à gérer. Il est recommandé de télécharger les images sur l'image. De cette manière, un article peut être facilement synchronisé avec les principales plateformes. Ensuite, utilisez PHP pour implémenter cette fonction et utilisez Qiniu Cloud comme lit d'image

Créez et entrez le projet

$ mkdir markdown-images-to-qiniu
$ cd markdown-images-to-qiniu
Copier après la connexion

Installez l'extension officielle Qiniu

$ composer require qiniu/php-sdk
Copier après la connexion

L'idée d'implémentation est très simple

● Lire le fichier makrdown

● Faire correspondre régulièrement toutes les images

● Télécharger les images dans l'ordre

● Remplacer l'adresse de l'image de l'article avec l'adresse du lit d'image

● Enregistrez l'article remplacé

Ce qui suit est l'implémentation spécifique. Tout d'abord, créez le script index.php dans le répertoire du projet,

<?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);
Copier après la connexion

utilisez.

$ php index.php test.md
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal