0

<br> 好的,我在此处此处发布了有关这些该死的其他两个主题, 我得到了表格,以停止
使用以下代码在文本区域的文本开头和结尾添加新的

function fromhtml ($x) {
$x = preg_replace("/<p>/i","\n\n",$x);
$x = preg_replace("/^<br(\/|)>/i","\n",$x);
//$x = preg_replace('#^<br(\/|)>+|<br(\/|)>+$#i', "\n", $x);
$x= preg_replace("/(^)?(<br\s*\/?>\s*)+$/","\n", $x);
$x = preg_replace("/<li>/i","\n<li>",$x);

return $x;
}

现在我遇到的问题是,在留空的字段上,a<br>会在提交时插入到字段中。它不会重复,但<br>在某些字段上可能会出现问题,因为存在关于在另一页上打印该字段的条件语句。任何帮助,将不胜感激。

编辑以添加来自其他页面的条件语句

if ($prerequisites != "") {
        print " <b>Prerequisites:</b> ".link_course($prerequisites);
    }
4

3 回答 3

1

问题出在您的表单上,而不是专门针对 PHP。Textarea 标签使用其中包含的任何数据作为输入,因此如果您的标签由换行符分隔,即在提供的 html 中的两个不同行上,则表单提交将报告 html 换行符存在于文本区域。这很容易通过将标签保持在同一行来纠正。

无论如何,使用 str_replace 摆脱多余的换行符可能会更好,所以:

str_replace("<br>", "", str_replace("<br/>", "", str_replace("</br>", "", $x)));
于 2012-10-03T17:22:59.210 回答
0

只需检查字符串是否为 br,如果是,则将其替换为 ''

function fromhtml ($x) {
    $x = preg_replace("/<p>/i","\n\n",$x);
    $x = preg_replace("/^<br(\/|)>/i","\n",$x);
    $x= preg_replace("/(^)?(<br\s*\/?>\s*)+$/","\n", $x);
    $x = preg_replace("/<li>/i","\n<li>",$x);
    if(trim(strtolower($x))=="<br>")
        return "";
    return $x;
}
于 2012-10-03T16:48:22.433 回答
-1

您可以$your_string = strip_tags($your_string)在插入之前使用

于 2012-10-03T16:47:28.093 回答