我有一个变量$ boo,其中包含纯文本行(带有奇异的换行符):
一
B'/ P>
C
我想要一个函数将其格式化为子弹列表。已经拿出以下内容,但不能安静地得到任何输出:
<?php
function listformat ($list) {
$listformat = explode("\n", $listformat);
foreach ($listformat as $test => $line) {
return "<li>".$line."</li>";
};
};
?>
<ul>
<?php
listformat ($boo);
?>
</ul>
如果我使用echo代替“return”并删除该功能,它就可以工作。
答案 0 :(得分:2)
return
结束你的函数并将语句发送回任何调用它的函数。所以,是的,回声是必要的
<?php
function listformat ($list) {
$listformat = explode("\n", $list);
foreach ($listformat as $line) {
echo "<li>".$line."</li>";
};
};
echo '<ul>';
listformat($my_list_var);
echo '</ul>';
答案 1 :(得分:0)
您仍然可以保留该功能,但不是echo
或return
,而是使用局部变量构建HTML输出并在结尾处返回:
<?php
function listformat ($list) {
$output = '<ul>';
$listformat = explode("\n", $list);
foreach ($listformat as $test => $line) {
$output .= "<li>".$line."</li>";
};
return $output.'</ul>';
};
?>
现在,您可以在任何地方使用您的函数,并回显返回的值或执行您想要的任何操作:
<?php
echo(listformat($list));
?>
答案 2 :(得分:0)
最简单的方法:
function ln2ul($string) {
return '<ul><li>' . str_replace("\n", '</li><li>', trim($string)) . '</li></ul>';
}