文本分割器html代码
旨在优化文本处理任务的效率与效果。其核心功能是通过分析文本结构、语义或固定长度,将大段内容拆分为逻辑连贯的小单元,从而适配下游任务的输入限制(如大语言模型的上下文窗口),或提升文本分析的精准度。支持按字符数、句子、段落、语义边界(如标点)或自定义规则(如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) {
- '.htmlspecialchars($item).'
return '';
}, $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代码的更多相关文章
- C#txt文本分割器
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Python 文本解析器
Python 文本解析器 一.课程介绍 本课程讲解一个使用 Python 来解析纯文本生成一个 HTML 页面的小程序. 二.相关技术 Python:一种面向对象.解释型计算机程序设计语言,用它可以做 ...
- 文本切换器(TextSwitcher)的功能和用法
TextSwitcher继承了ViewSwitcher,因此它具有与ViewSwitcher相同的特征:可以在切换View组件的同时使用动画效果.与ImageSwitcher相似的是,使用TextSw ...
- python3 - 文本读音器
本篇分享的是使用python3制作一个文本读音器,简单点就是把指定的文本文字转语音说出来:做这么个小工具主要是为了方便自己在平时看一些文章眼累的时候,可通过语音来帮助自己,当然如果你是小说迷,可以扩展 ...
- 13 KNN背景分割器
传统的前景背景分割方法有GrabCut,分水岭算法,当然也包括一些阈值分割的算法.但是这些算法在应用中往往显得鲁棒性较弱,达不到一个好的分割效果. 现代的背景分割算法融入了机器学习的一些方法来提高分类 ...
- Unity 5着色器系统代码介绍(上)
http://forum.china.unity3d.com/thread-25724-1-10.html Unity 5着色器系统代码介绍(上) Unity在着色器开发方面提供了很大的灵活性.有些工 ...
- Opencv中KNN背景分割器
背景分割器BackgroundSubtractor是专门用来视频分析的,会对视频中的每一帧进行"学习",比较,计算阴影,排除检测图像的阴影区域,按照时间推移的方法提高运动分析的结果 ...
- NLP基本任务-nltk_data文本分割
将文本分割为句子 nltk.sent_tokenize(text,language) text:需要分割的文本 language:语言种类 czech捷克语 danish丹麦语 dutch荷兰语 en ...
- 淘宝IP地址库采集器c#代码
这篇文章主要介绍了淘宝IP地址库采集器c#代码,有需要的朋友可以参考一下. 最近做一个项目,功能类似于CNZZ站长统计功能,要求显示Ip所在的省份市区/提供商等信息.网上的Ip纯真数据库,下载下来一看 ...
- HTML超出文本多行截取代码
HTML超出文本多行截取代码如下: HTML: <div class="sytm-text-1"> <p> 沈阳网页制作公司有 ...
随机推荐
- Windows 鼠标右键失效
突然有一天...小邋遢他变了... 哦不是...鼠标右键/键盘菜单键莫名其妙失效了. 解决办法 运行 regedit 打开注册表编辑器 依次展开 HKEY_CURRENT_USER\Software\ ...
- leetcode每日一题:数组美丽值求和
引言 今天的每日一题原题是2278. 字母在字符串中的百分比,直接模拟,逐个匹配,统计letter在原始字符串s中出现的次数,然后再计算所占百分比即可.更换成前几天遇到的更有意思的一题来写这个每日 ...
- TDXSpreadSheet中自定义公式函数三大步骤
看其demo:CustomFunctionDemo. 在报表系统中,特别是财务等报表系统中.需要对固定格式的报表中cell定义取数公式. 如新中大中: 公式 返回值 gs_dwmc(预算单位代码/名称 ...
- 重生之我是操作系统(五)----CPU调度
简介 当CPU有大量任务要处理,但由于资源有限,无法同时处理.所有就需要某种规则来决定任务处理的顺序,这就是调度. 调度层次 根据调度频率与层次,共分为三种 高级调度 也称为作业调度(Long-Tre ...
- 一句话秒建公网站!AI边缘计算颠覆传统开发
一句话就能让 AI 搭建一个公网可访问的完整网站: 短短几秒钟内,AI 便能完成所有构建操作: 这或许是目前全球最简便的建站方案: 本文使用的 AI 工具为腾讯云的 EdgeOne Pages MCP ...
- C++数据的共享和保护
1.函数原型作用域:C++中最小的作用域 ①在函数原型声明时,形参的作用范围就是函数原型作用域. 2.局部作用域/块作用域 3.类作用域 类可以被看做是一组有名成员的集合,类X的成员m具有类作用域,对 ...
- 代码随想录第六天 | Leecode 242.有效的字母异位词、 349. 两个数组的交集、202. 快乐数、1. 两数之和
昨天第五天是周日休息一天,今天第六天开始哈希表部分题目. Leecode 242.有效的字母异位词 题目链接:https://leetcode.cn/problems/valid-anagram/de ...
- ES查不到最近的数据解决方法
其实是因为索引的刷新策略导致的,不是实时刷新的. 下载开源的 ES 界面客户端ES King:https://github.com/Bronya0/ES-King 连接后,选择索引,选择flush索引 ...
- 「C++黑魔法」future与promise:不加锁的异步编程,原来可以这么简单!
大家好,我是小康. 你是否曾经为了让程序同时做多件事而绞尽脑汁?是否被多线程编程的各种锁.条件变量搞得头昏脑胀?今天,我要告诉你一个秘密武器,让你轻松驾驭异步编程的海洋! 前言:为什么要学future ...
- 从传统搜索到智能问答:自研 RAG 系统的技术实践与工程落地
一.引言 在数字化转型浪潮下,企业知识服务体系正经历着深刻变革.如何让用户高效获取所需信息,成为提升产品竞争力和用户满意度的关键.葡萄城作为企业级开发工具与解决方案提供商,长期致力于知识服务体系的建设 ...