0

OK、これらのくそについて他の2つのトピックを投稿しました<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;
}

今私が抱えている問題は、空のままのフィールドでは、送信時に<br>フィールドに挿入されることです。繰り返しませんが、<br>そのフィールドを別のページに印刷することに関する条件文があるため、一部のフィールドで問題になる可能性があります。任意の助けをいただければ幸いです。

他のページから条件ステートメントを追加するために編集されました

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

3 に答える 3

1

問題は、特に PHP ではなく、フォームにあります。テキストエリア タグは、タグ内に含まれるすべてのデータを入力として使用するため、タグが改行で区切られている場合、つまり、提供される html の 2 つの異なる行にある場合、フォームの送信では、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 に答える