当前位置:首页 > 后端开发 > 正文内容

PHP和Composer做语法转化东西

邻居的猫1个月前 (12-09)后端开发1332

原文地址:https://www.mengze2.cn/post/5/

最近不是把博客的一些文章从和HTML转到Markdown了吗,由于之前换到了wordpress所以是HTML,可是这些文章再typecho无法被解析,于是就计划开发一个Markdown2HTML东西
下面使我的开发笔记,或许比较迷糊

项目结构

一般情况下,我不会这么干,可是为了文章,仍是需求界说的项目结构:

markdown2html/
│
├── index.php
├── convert.php
├── styles/
│   └── bootstrap.min.css
└── js/
    └── bootstrap.bundle.min.js

Screenshot_2024_0613_144049.png

  • index.php: 前端页面,包括输入框和按钮。
  • convert.php: 后端逻辑处理,将HTML转化为Markdown或将Markdown转化为HTML。
  • styles/: 寄存CSS文件。
  • js/: 寄存JavaScript文件。

准备工作

下载Bootstrap

从Bootstrap官方网站下载最新版别的Bootstrap,并将bootstrap.min.css放入styles/文件夹,将bootstrap.bundle.min.js放入js/文件夹。也便是所谓的按需导入

编写前端页面 (index.php)

编写前端页面,包括一个文本输入框和两个按钮,别离用于将HTML转化为Markdown和将Markdown转化为HTML。这儿不要求美观,并且需求快速开发呼应式页面,所以挑选bootstrap

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>转化东西</title>
    <link rel="stylesheet" href="styles/bootstrap.min.css">
</head>
<body>
    <div class="container mt-5">
        <h1 class="text-center">转化东西</h1>
        <form id="convertForm" method="post">
            <div class="mb-3">
                <label for="inputText" class="form-label">Input Text</label>
                <textarea class="form-control" id="inputText" name="inputText" rows="10"></textarea>
            </div>
            <div class="d-flex justify-content-between">
                <button type="button" class="btn btn-primary" onclick="convert('html2markdown')">HTML转Markdown</button>
                <button type="button" class="btn btn-secondary" onclick="convert('markdown2html')">Markdown转HTML</button>
            </div>
            <div class="mt-3">
                <label for="outputText" class="form-label">Output Text</label>
                <textarea class="form-control" id="outputText" name="outputText" rows="10" readonly></textarea>
            </div>
        </form>
    </div>

    <script src="js/bootstrap.bundle.min.js"></script>
    <script>
        function convert(action) {
            const form = document.getElementById('convertForm');
            const formData = new FormData(form);
            formData.append('action', action);

            fetch('convert.php', {
                method: 'POST',
                body: formData
            })
            .then(response => response.text())
            .then(data => {
                document.getElementById('outputText').value = data;
            });
        }
    </script>
</body>
</html>

Screenshot_2024_0613_144216.jpg

编写后端逻辑 (convert.php)

接下来,编写后端逻辑,将HTML转化为Markdown或将Markdown转化为HTML。

<?php
require 'vendor/autoload.php'; // 运用Composer加载依靠

use League\HTMLToMarkdown\HtmlConverter;
use Michelf\Markdown;

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $inputText = $_POST['inputText'];
    $action = $_POST['action'];

    if ($action === 'html2markdown') {
        $converter = new HtmlConverter();
        $outputText = $converter->convert($inputText);
    } elseif ($action === 'markdown2html') {
        $outputText = Markdown::defaultTransform($inputText);
    }

    echo $outputText;
}
?>

Screenshot_2024_0613_144106.png

增加依靠

需求装置两个PHP库来完成转化功用:

Composer是一个包管理器,相似node的npm,和我发现PHP和Vue有异曲同工之妙

  • league/html-to-markdown: 将HTML转化为Markdown。
  • michelf/php-markdown: 将Markdown转化为HTML。

在项目根目录下创立一个composer.json文件,内容如下:

{
    "require": {
        "league/html-to-markdown": "^5.0",
        "michelf/php-markdown": "^1.9"
    }
}

Screenshot_2024_0613_144233.png

然后运转composer install来装置这些依靠。

composer install

终究作用

发动本地服务器(例如运用php -S localhost:8000),拜访http://localhost:8000/,就可以看到转化东西的界面了。

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=189

标签: 技术文章
分享给朋友:

“PHP和Composer做语法转化东西” 的相关文章

r语言sort,璇玑AI

在R语言中,`sort` 函数用于对向量、矩阵或数据框的行或列进行排序。以下是关于 `sort` 函数的一些基本用法:1. 对向量进行排序: `sort` 对向量 `x` 进行升序排序。 `sort` 对向量 `x` 进行降序排序。2. 对矩阵或数据框进行排序: `sort` 对矩...

java四舍五入, 基础四舍五入方法

在Java中,你可以使用 `Math.round` 方法来实现四舍五入。这个方法会返回最接近参数的整数。如果参数与两个整数一样接近,则返回偶数。例如,如果你想要四舍五入一个浮点数到最接近的整数,你可以直接使用 `Math.round` 方法。如果你想要四舍五入到特定的小数位数,你可以先将数字乘以10...

go ping,Go语言简介

在Go语言中,实现ping功能有多种方法,包括使用第三方库和手动实现。以下是几种常见的方法: 使用第三方库1. goping库: 简介:goping是一个简洁但功能强大的ICMP回显(ping)库,可以发送和接收ICMP数据包。 安装:使用`go get u github.com/gop...

c语言函数返回数组,C语言函数返回数组的实现与注意事项

c语言函数返回数组,C语言函数返回数组的实现与注意事项

在C语言中,函数不能直接返回一个数组。但是,你可以通过以下几种方式间接地实现:1. 返回指向数组的指针:你可以让函数返回一个指向数组的指针。但这种方式需要你确保返回的指针所指向的数组在函数返回后仍然有效。一种常见的做法是使用静态数组,因为静态数组在函数返回后仍然存在,但它的缺点是每次调用函数时,数组...

tfboys加油go,歌曲背景

tfboys加油go,歌曲背景

TFBOYS(全称“THE FIGHTING BOYS”)是中国内地男子演唱组合,由王俊凯、王源和易烊千玺三位成员组成。该组合于2013年8月6日正式出道,经纪公司为北京时代峰峻文化艺术发展有限公司。在出道后,TFBOYS迅速积累了大量人气,并成为亚洲超人气天团,代表了中国新生代组合的领军人物。他们...

php最新版本,php最新版本是多少

php最新版本,php最新版本是多少

PHP的最新版本是PHP 8.4。根据多个来源的信息,PHP 8.4 预计将于2024年11月21日正式发布。这一版本引入了许多新特性和改进,包括属性钩子、JIT编译器改进、链式调用方法等,进一步完善了PHP在现代开发中的应用。你可以通过以下链接获取最新的PHP版本和相关下载信息: PHP 8.4...