Ueditor的输入文本后,选择有序列表、无序列表样式显示的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ueditor的输入文本后,选择有序列表、无序列表样式显示的问题相关的知识,希望对你有一定的参考价值。

在编辑器中选择一些列表样式,提交到数据库后,读取的内容,列表样式没有了,我该怎么加回来。
比如:编辑器中输入
(一) aaaa
(二) bbbb
存到数据库在读取出来的时候变成了
1 aaaaa
2 bbbbb
只是这个时候 列表的li标签里多了两个样式 list-cn-3-6 list-cn2-paddingleft-1,我应该在现实页面引入哪个Ueditor的css文件么?

参考技术A 这个样式不是用css定义的,你试着引入下载的完整源码包里面的ueditor1_4_3-src\_parse\list.js 和
ueditor1_4_3-src\_src\plugins\list.js 试试,ol的样式是通过这两个js生成的。

-------------------------------------------------------------------------------

ueditor1_4_3-src\_src\plugins\list.js 片段:
-------------------------------------------------------------------------------

me.ready(function ()
var customCss = [];
for(var p in customStyle)
if(p == 'dash' || p == 'dot')
customCss.push('li.list-' + customStyle[p] + 'background-image:url(' + liiconpath +customStyle[p]+'.gif)');
customCss.push('ul.custom_'+p+'list-style:none;ul.custom_'+p+' libackground-position:0 3px;background-repeat:no-repeat');
else
for(var i= 0;i<99;i++)
customCss.push('li.list-' + customStyle[p] + i + 'background-image:url(' + liiconpath + 'list-'+customStyle[p] + i + '.gif)')

customCss.push('ol.custom_'+p+'list-style:none;ol.custom_'+p+' libackground-position:0 3px;background-repeat:no-repeat');

switch(p)
case 'cn':
customCss.push('li.list-'+p+'-paddingleft-1padding-left:25px');
customCss.push('li.list-'+p+'-paddingleft-2padding-left:40px');
customCss.push('li.list-'+p+'-paddingleft-3padding-left:55px');
break;
case 'cn1':
customCss.push('li.list-'+p+'-paddingleft-1padding-left:30px');
customCss.push('li.list-'+p+'-paddingleft-2padding-left:40px');
customCss.push('li.list-'+p+'-paddingleft-3padding-left:55px');
break;
case 'cn2':
customCss.push('li.list-'+p+'-paddingleft-1padding-left:40px');
customCss.push('li.list-'+p+'-paddingleft-2padding-left:55px');
customCss.push('li.list-'+p+'-paddingleft-3padding-left:68px');
break;
case 'num':
case 'num1':
customCss.push('li.list-'+p+'-paddingleft-1padding-left:25px');
break;
case 'num2':
customCss.push('li.list-'+p+'-paddingleft-1padding-left:35px');
customCss.push('li.list-'+p+'-paddingleft-2padding-left:40px');
break;
case 'dash':
customCss.push('li.list-'+p+'-paddingleftpadding-left:35px');
break;
case 'dot':
customCss.push('li.list-'+p+'-paddingleftpadding-left:20px');


customCss.push('.list-paddingleft-1padding-left:0');
customCss.push('.list-paddingleft-2padding-left:'+me.options.listDefaultPaddingLeft+'px');
customCss.push('.list-paddingleft-3padding-left:'+me.options.listDefaultPaddingLeft*2+'px');
//如果不给宽度会在自定应样式里出现滚动条
utils.cssRule('list', 'ol,ulmargin:0;pading:0;'+(browser.ie ? '' : 'width:95%')+'liclear:both;'+customCss.join('\n'), me.document);
);本回答被提问者和网友采纳

在PHP中将HTML有序/无序列表转换为纯文本[重复]

【中文标题】在PHP中将HTML有序/无序列表转换为纯文本[重复]【英文标题】:Converting HTML ordered/unordered list to plain text in PHP [duplicate] 【发布时间】:2020-02-01 14:08:15 【问题描述】:

我在 HTML 中有一些 HTML 有序/无序列表。由于我想将其导出为 txt 文件,因此我需要将其转换为纯文本。

例如。原始 HTML:

<ol><li>Item 1</li></li>Item 2</li><li>Item 3</li></ol>

我想改成

1. Item 1
2. Item 2
3. Item 3

我在 *** 上进行了搜索,但只找到了相反转换的解决方案。 A regex that converts text lists to html in PHP

有什么办法可以解决吗?谢谢!

【问题讨论】:

对了,原来的HTML有一个错误,第二个li标签以开头,而不是。 您希望将 HTML 呈现的输出保存在文本文件中? 您想知道如何使用 PHP 将 HTML 转换为文本吗?或者任何方式都可以接受?也许 XSLT 可能是合适的? 【参考方案1】:

您可以简单地替换不需要的标签,然后将其分解为一个标签,该标签将为每一行返回自身。

<?php
$html = '
<ol>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ol>
';

$html = str_replace(['<ol>', '</ol>', '</li>'], '', $html);
$html = explode('<li>', $html);

print_r($html);

【讨论】:

【参考方案2】:

我认为它比正则表达式要复杂一些,尤其是如果您想在前面添加数字。但是这段小代码会将<ol><li>Item 1</li></li>Item 2</li><li>Item 3</li></ol> 翻译成

* Item 1
* Item 2
* Item 3
<?php

$string = "<ol><li>Item 1</li><li>Item 2</li><li>Item 3</li></ol>";

$string= preg_replace("/<li>/", " * ", $string);
$string= preg_replace("/<\/li>/", "\n", $string);
$string= preg_replace("/<\/?ol>/", "", $string);

echo $string;

【讨论】:

* 并不代表 有序 列表。这可能适用于无序列表 正如我所说,你将不得不循环遍历列表来添加数字,据我所知,你不能循环遍历并在正则表达式中添加数字。 请记住 - 用户将名称“Item 1”作为示例,它是 item 1,这并不意味着该项目中会有一个数字。 我知道,但如果他想要一个有序列表,他可以创建一个 for 循环,在每一行添加一个数字或类似的东西。【参考方案3】:

请查看html2text 库。它有不同的方法将您的HTML 字符串转换为纯文本。

【讨论】:

【参考方案4】:

我认为我们需要在这里记住,LI 标签中提到的数字不能用作参考,因为它们可能是“驴”、“羊”、“猴子”。

我的解决方案匹配 LI 标记内的任何内容,然后循环匹配以创建项目编号。

preg_match_all 将创建一个带有子数组的数组。第一个包含整个匹配项,包括 LI 标记,第二个只匹配在 (.*?) 非贪婪区域内找到的任何内容。

我已经使用 \n 作为换行符,但如果是 HTML 输出,那显然是一个 BR 标记

$str = "<ol><li>Monkey</li></li><li>Lamb</li><li>Elephant</li></ol>";
preg_match_all("/<li>(.*?)<\/li>/i",$str,$matches);
if(count($matches[1])>0)
    foreach($matches[1] as $k=>$v)
        echo ($k+1).". $v\n";
    

【讨论】:

以上是关于Ueditor的输入文本后,选择有序列表、无序列表样式显示的问题的主要内容,如果未能解决你的问题,请参考以下文章

无序列表有序列表定义列表多样选择设置属性值

Typora MarkDown编写工具

makedown 使用方法

求问:ueditor的工具栏如何才能多行显示

HTMLHTML 列表 ( 无序列表 | 有序列表 | 自定义列表 )

无序列表,有序列表,自定义列表