旨在优化文本处理任务的效率与效果。其核心功能是通过分析文本结构、语义或固定长度,将大段内容拆分为逻辑连贯的小单元,从而适配下游任务的输入限制(如大语言模型的上下文窗口),或提升文本分析的精准度。支持按字符数、句子、段落、语义边界(如标点)或自定义规则(如Markdown标题)灵活切割文本。

有需要的小伙伴可以搭建玩玩,下面是代码。

代码展示网页:https://diuta.com/app/txt.php

`<?php

// 定义允许的文件类型

define('ALLOWED_MIME', ['text/plain']);

define('MAX_FILE_SIZE', 1048576); // 1MB

// 处理表单提交

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

$output = [];

$error = '';

try {
// 获取输入文本
$text = '';
if (isset($_FILES['uploadFile']) && $_FILES['uploadFile']['error'] === UPLOAD_ERR_OK) {
// 验证上传文件
if ($_FILES['uploadFile']['size'] > MAX_FILE_SIZE) {
throw new Exception('文件大小超过限制');
}
if (!in_array($_FILES['uploadFile']['type'], ALLOWED_MIME)) {
throw new Exception('仅支持文本文件');
}
$text = file_get_contents($_FILES['uploadFile']['tmp_name']);
} else {
$text = $_POST['textInput'] ?? '';
} // 验证输入内容
if (empty($text)) {
throw new Exception('请输入文本或上传文件');
} // 获取分割参数
$splitType = $_POST['splitType'] ?? 'character';
$splitParam = $_POST['splitParam'] ?? '';
$outputFormat = $_POST['outputFormat'] ?? 'text'; // 执行分割操作
$output = splitText($text, $splitType, $splitParam); // 格式化输出
$output = formatOutput($output, $outputFormat); } catch (Exception $e) {
$error = $e->getMessage();
}

}

/**

  • 文本分割函数

    */

    function splitText($text, $type, $param) {

    switch ($type) {

    case 'character':

    $chunkSize = max(1, (int)$param ?: 100);

    return str_split($text, $chunkSize);

     case 'line':
    return explode(PHP_EOL, $text); case 'custom':
    $delimiter = empty($param) ? ',' : $param;
    return explode($delimiter, $text); case 'regex':
    return preg_split('/'.$param.'/', $text, -1, PREG_SPLIT_NO_EMPTY); default:
    throw new Exception('无效的分割类型');

    }

    }

/**

  • 格式化输出

    */

    function formatOutput($data, $format) {

    switch ($format) {

    case 'html':

    return ['

      '.implode('', array_map(function($item) {

      return '
    1. '.htmlspecialchars($item).'
    2. ';

      }, $data)).'

    '];

     case 'json':
    return [json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)]; case 'text':
    default:
    return $data;

    }

    }

    ?>

PHP文本分割器
.container { max-width: 800px; margin: 20px auto; padding: 20px }
.form-group { margin-bottom: 15px }
.result-box { margin-top: 20px; padding: 15px; border: 1px solid rgba(221, 221, 221, 1) }
pre { white-space: pre-wrap; background: rgba(245, 245, 245, 1); padding: 10px }

文本分割器

    <form method="post" enctype="multipart/form-data">
<div class="form-group">
<label>输入文本:</label>
<textarea name="textInput" rows="5" style="width: 100%"><?= isset($_POST['textInput']) ? htmlspecialchars($_POST['textInput']) : '' ?></textarea>
</div> <div class="form-group">
<label>或上传文件:</label>
<input type="file" name="uploadFile">
</div> <div class="form-group">
<label>分割方式:</label>
<select name="splitType">
<option value="character" <?= ($_POST['splitType'] ?? '') === 'character' ? 'selected' : '' ?>>按字符数</option>
<option value="line" <?= ($_POST['splitType'] ?? '') === 'line' ? 'selected' : '' ?>>按行分割</option>
<option value="custom" <?= ($_POST['splitType'] ?? '') === 'custom' ? 'selected' : '' ?>>自定义分隔符</option>
<option value="regex" <?= ($_POST['splitType'] ?? '') === 'regex' ? 'selected' : '' ?>>正则表达式</option>
</select>
<input type="text" name="splitParam" value="<?= htmlspecialchars($_POST['splitParam'] ?? '100') ?>"
placeholder="输入参数">
</div> <div class="form-group">
<label>输出格式:</label>
<select name="outputFormat">
<option value="text">纯文本</option>
<option value="html">HTML列表</option>
<option value="json">JSON</option>
</select>
</div> <button type="submit">执行分割</button>
</form> <?php if (isset($error) && $error): ?>
<div class="result-box error">
<?= htmlspecialchars($error) ?>
</div>
<?php elseif (!empty($output)): ?>
<div class="result-box">
<h3>分割结果 (共 <?= count($output) ?> 段)</h3>
<?php if ($outputFormat === 'json'): ?>
<pre><?= htmlspecialchars($output) ?></pre>
<?php else: ?>
<?php foreach ($output as $i => $segment): ?>
<div><strong>段 <?= $i+1 ?>:</strong></div>
<?php if ($outputFormat === 'html'): ?>
<?= $segment ?>
<?php else: ?>
<pre><?= htmlspecialchars($segment) ?></pre>
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?> <div style="margin-top: 15px;">
<a href="data:text/plain;charset=utf-8,<?= urlencode(implode("\n", $output)) ?>" download="split_result.txt">
下载结果
</a>
</div>
</div>
<?php endif; ?>
</div>

@丢塔网diuta.com
`

有bug小伙伴可以自己修复一下,如果上面的展示页面没有了可以看这个:http://app.diuta.com/txt

文本分割器html代码的更多相关文章

  1. C#txt文本分割器

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. Python 文本解析器

    Python 文本解析器 一.课程介绍 本课程讲解一个使用 Python 来解析纯文本生成一个 HTML 页面的小程序. 二.相关技术 Python:一种面向对象.解释型计算机程序设计语言,用它可以做 ...

  3. 文本切换器(TextSwitcher)的功能和用法

    TextSwitcher继承了ViewSwitcher,因此它具有与ViewSwitcher相同的特征:可以在切换View组件的同时使用动画效果.与ImageSwitcher相似的是,使用TextSw ...

  4. python3 - 文本读音器

    本篇分享的是使用python3制作一个文本读音器,简单点就是把指定的文本文字转语音说出来:做这么个小工具主要是为了方便自己在平时看一些文章眼累的时候,可通过语音来帮助自己,当然如果你是小说迷,可以扩展 ...

  5. 13 KNN背景分割器

    传统的前景背景分割方法有GrabCut,分水岭算法,当然也包括一些阈值分割的算法.但是这些算法在应用中往往显得鲁棒性较弱,达不到一个好的分割效果. 现代的背景分割算法融入了机器学习的一些方法来提高分类 ...

  6. Unity 5着色器系统代码介绍(上)

    http://forum.china.unity3d.com/thread-25724-1-10.html Unity 5着色器系统代码介绍(上) Unity在着色器开发方面提供了很大的灵活性.有些工 ...

  7. Opencv中KNN背景分割器

    背景分割器BackgroundSubtractor是专门用来视频分析的,会对视频中的每一帧进行"学习",比较,计算阴影,排除检测图像的阴影区域,按照时间推移的方法提高运动分析的结果 ...

  8. NLP基本任务-nltk_data文本分割

    将文本分割为句子 nltk.sent_tokenize(text,language) text:需要分割的文本 language:语言种类 czech捷克语 danish丹麦语 dutch荷兰语 en ...

  9. 淘宝IP地址库采集器c#代码

    这篇文章主要介绍了淘宝IP地址库采集器c#代码,有需要的朋友可以参考一下. 最近做一个项目,功能类似于CNZZ站长统计功能,要求显示Ip所在的省份市区/提供商等信息.网上的Ip纯真数据库,下载下来一看 ...

  10. HTML超出文本多行截取代码

    HTML超出文本多行截取代码如下: HTML: <div class="sytm-text-1">      <p>           沈阳网页制作公司有 ...

随机推荐

  1. 面试题-MyBatis框架

    前言 MyBatis框架部分的题目,是我根据Java Guide的面试突击版本V3.0再整理出来的,其中,我选择了一些比较重要的问题,并重新做出相应回答,并添加了一些比较重要的问题,希望对大家起到一定 ...

  2. [开源] 分享一个自己开发的, 整合SMS/Mail/Telegram/微信四个平台的开源信息收发平台

    起因于已有的聚合信息发送平台无法满足自己的需求. 不支持我需要的平台,或不支持接收信息后进行处理,或不放心把涉及隐私的消息通过第三方平台发送 利用SMS发送短信(上一篇文章中分享的开源项目) 利用SM ...

  3. python aiohttp异步协程实现同时执行多条请求

    我们在对多个链接进行处理的时候,往往是先请求一个链接获得数据后,再请求第二个. 中间在等待返回数据时候,存在一个空闲时间,脚本啥都没干. 用aiohttp异步协程的方法,创建多条任务发送请求(理论上不 ...

  4. 前端自动打包工具webpack的安装和使用

    一.准备 要使用webpack工具,最好了解一些基础的文件目录操作的命令行, win all里的一些常用的命令行 http://blog.csdn.net/qq_36110571/article/de ...

  5. 马尔柯夫的"概率转换和市场份额和概率矩阵"

    案例一 案例二 分析转移概率矩阵求法 分析求9月份各厂家分别拥有的市场份额  案例3 案例4 分析先算第二年,再根据第二年算第三年 问题2的解法:根据第二年市场份额算第三年的市场份额 案例5:确定平衡 ...

  6. 参考案例之“对象调用方法时,如何在方法中使用对象,例如(root.display()的display方法中使用root)”

    一.对象调用方法时,如何在方法中使用对象,例如(root.display()的display方法中使用root) 1.测试方法 @Test public void suanfa24() { TreeN ...

  7. 在鸿蒙Next中开发一个月历组件

    最近一直在出差,工作繁忙,很久没有时间更新文章了,连华为开发者大会也错过了.今天周末,忙里偷闲给大家分享一个鸿蒙月历组件. 这样的组件大家在工作中应该经常会遇到,而鸿蒙又没有提供一个这样的系统组件,今 ...

  8. P2150 [NOI2015] 寿司晚宴 题解

    P2150 [NOI2015] 寿司晚宴 刚开始看错题了,推了一个与原题类似的 DP 方程,然后不会优化,笑了. 思路 首先看到 \(n\) 很小,然后质因子个数就更少了. 因此第一反应是将所有的质因 ...

  9. 记一次docker buildx build 推送到本地私有仓库出现 connection refused 的问题

    想在本地编译多个架构的基础镜像,这样后续有其他业务使用的时候,不必从头开始编译. 使用传统的 docker build -t ImageName:tag 方式,只能编译和主机相同架构的镜像. 而doc ...

  10. C语言函数指针解析

    C语言函数指针解析 一.函数指针的本质 函数指针是存储函数内存地址的变量,它允许程序在运行时动态调用不同的函数.与数据指针不同,函数指针指向的是可执行代码段. /* 典型声明方式 */ int (*f ...