Php/HTML中的无序列表
我试图使字符串中的星号表示无序列表中的列表元素Php/HTML中的无序列表,php,html,list,unordered,Php,Html,List,Unordered,我试图使字符串中的星号表示无序列表中的列表元素 $first_char = substr($p,0,1); if($first_char == '*'){ $p = '<ul>' . $p . '</li></ul>'; $p = str_replace('*' , '<li>',$p); $p = str_replace('\n' , '</li>',$p); }
$first_char = substr($p,0,1);
if($first_char == '*'){
$p = '<ul>' . $p . '</li></ul>';
$p = str_replace('*' , '<li>',$p);
$p = str_replace('\n' , '</li>',$p);
}
$first\u char=substr($p,0,1);
如果($first_char=='*')){
$p=“”.$p.
”;
$p=str_replace(“*”,“”,$p);
$p=str_replace('\n',' ',$p);
}
但是,如果这使得列表元素中没有星号可用作内容。有什么方法可以改变这一点吗?这可能不是最好的解决方案,但您不能总是在字符串(
$p
)中使用*
)。相反,将每个星号作为其HTML代码等价物写入,在本例中为*代码>。当在浏览器中显示时,用户会看到漂亮的星号,但str\u replace
不应该看到它。或者可以引入一些转义字符,但这可能会有点复杂。Regex替换解决方案
输出
- 知识产权,不可剥夺,*conce*tetur adipsicing精英
- 库拉比图尔乌拉姆科珀酒店
- 佩伦茨克·奈克·夸姆·朗库斯
拉齐尼亚阿库酒店
- vulputate tellus中的Nullam
这是一个简单的方法:
if(substr($p,0,1) == '*'){
$p = '<ul>' . substr($p,1) . '</ul>;
}
if(substr($p,0,1)='*')){
$p=“”。substr($p,1)。
;
}
也许您可以使用字符组合来表示列表项。不确定这与你的情况有多相关,但看看降价。这是一个很好的文本到HTML的转换器。您可以做的一件事是组合您的php(像上面一样创建列表项),然后使用css中的content
属性将li
节点转换为星号。我在下面写的并不是对你直接问题的回答,所以我把它删掉了。如果您想了解这一点,这里有一些有用的信息:
* Lorem ipsum dolor sit amet, * consec*tetur adipiscing elit
*Curabitur ullamcorper neque sit amet
* Pellente*sque nec quam rhoncus
Suspendisse ut lacinia arcu
* Nullam in vulpu*tate tellus
<ul><li>Lorem ipsum dolor sit amet, * consec*tetur adipiscing elit</li>
<li>Curabitur ullamcorper neque sit amet</li>
<li>Pellentesque nec quam rhoncus</li></ul>
Suspendisse ut lacinia arcu
<ul><li>Nullam in vulputate tellus</li></ul>
if(substr($p,0,1) == '*'){
$p = '<ul>' . substr($p,1) . '</ul>;
}