Ueditor的输入文本后,选择有序列表、无序列表样式显示的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ueditor的输入文本后,选择有序列表、无序列表样式显示的问题相关的知识,希望对你有一定的参考价值。
在编辑器中选择一些列表样式,提交到数据库后,读取的内容,列表样式没有了,我该怎么加回来。
比如:编辑器中输入
(一) aaaa
(二) bbbb
存到数据库在读取出来的时候变成了
1 aaaaa
2 bbbbb
只是这个时候 列表的li标签里多了两个样式 list-cn-3-6 list-cn2-paddingleft-1,我应该在现实页面引入哪个Ueditor的css文件么?
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的输入文本后,选择有序列表、无序列表样式显示的问题的主要内容,如果未能解决你的问题,请参考以下文章