文本分割器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> 沈阳网页制作公司有 ...
随机推荐
- Redis 过期键删除和内存淘汰策略【Redis 系列之四】
〇.前言 对于 Redis 服务器来说,内存资源非常宝贵,如果一些过期键一直不被删除,就会造成资源浪费. 那么,本文将结合博主收集的资料,简单介绍下过期键删除.内存淘汰两个策略,仅供参考. 博主 Re ...
- nrm
nrm npm install -g nrm nrm ls nrm use taobao Tips:不要使用cnpm,会有些奇怪的问题,导致npm install失败. 参考
- C# 中合并2个 Dictionary
内置方法 using System.Collections.Generic; using System.Linq; Dictionary<string, object> dicA = ne ...
- dijkstra的封装模版
/** - swj - * />_____フ | _ _| /`ミ _x ノ / | / ヽ ? / ̄| | | | | ( ̄ヽ__ヽ_)_) \二つ **/ #include <bits ...
- 本地学习环境minikube安装
有感于K8S太强大和自己的太无知,索性来系统学习下K8S.网上一番攻略,起码先得有个本地学习环境,所以安装一个minikube,下面记录安装过程,供有需要的人使用. 看看minikube架构: 我是在 ...
- Eclipse java项目转Maven项目
1.右键项目->configure->选择maven->配置maven的pom.xml 2.在src/main下新建java文件,将原来src下的java文件夹拷贝至该目录下: 3. ...
- eolink对数据进行四舍五入处理
下图"BalanceAmount"返回值显示小数点2位以后的值,这样就与预计匹配值不等导致脚本错误 对这个值进行四舍五入处理,比如返回值变成整数 var num = eo.env. ...
- Sentinel源码—4.FlowSlot实现流控的原理
大纲 1.FlowSlot根据流控规则对请求进行限流 2.FlowSlot实现流控规则的快速失败效果的原理 3.FlowSlot实现流控规则中排队等待效果的原理 4.FlowSlot实现流控规则中Wa ...
- mysql日期格式说明
mysql日期格式说明 %a:缩写星期名 %b:缩写月名 %c:月,数值 %D:带有英文前缀的月中的天 %d:月的天,数值(00-31) %e:月的天,数值(0-31) %f:微秒 %H:小时(00- ...
- 关于symfony报错: Oops An Error Occurred ,The server returned a “500 Internal Server Error“
symfony3.4 开发环境正常,生产环境访问任何路由都报错: Oops! An Error Occurred The server returned a "500 Internal Se ...