当需要处理textarea中的多行文本并将每一行单独包装时,我们需要理解几个关键点:
以下是完整的PHP代码示例,展示如何实现这一功能:
<?php
// 获取textarea的内容
$textareaContent = $_POST['textarea_content'] ?? ''; // 假设通过POST提交
// 标准化换行符为\n
$normalizedContent = str_replace(["\r\n", "\r"], "\n", $textareaContent);
// 分割成行数组
$lines = explode("\n", $normalizedContent);
// 用li标签包装每一行
$wrappedLines = array_map(function($line) {
return '<li>' . htmlspecialchars($line, ENT_QUOTES, 'UTF-8') . '</li>';
}, $lines);
// 组合成最终的HTML
$result = '<ul>' . implode("\n", $wrappedLines) . '</ul>';
// 输出结果
echo $result;
?>
str_replace
将所有换行符统一为\n
,确保跨平台兼容性explode("\n", ...)
将文本按行分割成数组array_map
对每一行应用包装函数htmlspecialchars
防止XSS攻击,确保HTML安全implode
将包装后的行组合成完整HTML这种技术常用于:
htmlspecialchars
)array_map
前添加过滤逻辑如果需要保留空行但添加特殊类:
$wrappedLines = array_map(function($line) {
$class = trim($line) === '' ? ' class="empty-line"' : '';
return '<li' . $class . '>' . htmlspecialchars($line) . '</li>';
}, $lines);
这个解决方案提供了健壮的处理方式,能够适应各种输入情况。
没有搜到相关的文章