Technik #1
function br2newline( $input ) {
$out = str_replace( "<br>", "\n", $input );
$out = str_replace( "<br/>", "\n", $out );
$out = str_replace( "<br />", "\n", $out );
$out = str_replace( "<BR>", "\n", $out );
$out = str_replace( "<BR/>", "\n", $out );
$out = str_replace( "<BR />", "\n", $out );
return $out;
}
Konvertiert ein Break-Tag in einen Zeilenumbruch – egal welche Art von HTML verarbeitet wird.
Technik #2
function br2nl( $input ) {
return preg_replace('/<br(\s+)?\/?>/i', "\n", $input);
}
Technik #2 wird besser funktionieren als #1
Aber bei #1 könnten Sie einfach die ersten drei Aufrufe verwenden und stattdessen str_ireplace() benutzen.
Ich habe viel gelitten. Ich habe „ verwendet, aber ich hätte ‘ verwenden sollen. Könnte das wirklich ein Fehler sein?
Bitte helfen Sie mir, warum wird „i“ in
function br2nl( $input ) {
return preg_replace(‘//i’, “\n”, $input);
}
am Ende des ersten Parameters von preg_replace verwendet
function br2nl( $input ) {
return preg_replace('//i', "\n", $input);
}
Entschuldigung, der Code ist durcheinander geraten
um den regulären Ausdruck nicht case-sensitiv zu machen
Sie können auch tun
function _br2nl($input)
{
return str_replace(array("", "", "", "", "", ""),"\n", $input );
}
<pre><code>
function _br2nl($input)
{
return str_replace(array(“<br>”, “<BR>”, “<br/>”, “<BR/>”, “<br />”, “<BR />”),”\n”, $input );
}
</code></pre>
`(\s+)?` könnte einfach `\s*` sein.
Es scheint, dass Sie einfach die Funktion nl2br() verwenden müssen
das ist alles.
Sie können dies ersetzen
durch das
Hier ist, wie ich es tun würde
Aber Sie sollten wissen, dass es bei bösartigen Eingaben nicht funktioniert, wie z. B.
Hier ist ein Test solcher Eingaben.
Gibt es eine Möglichkeit, CSS-Stile auf BR anzuwenden?
Das ist hilfreich. Aber ich möchte es auch in WordPress ändern. Ich habe versucht remove_filter( ‘the_content’, ‘wpautop’ );
remove_filter( ‘the_excerpt’, ‘wpautop’ ); aber es funktioniert nicht
preg_replace(‘#(\s*)+#i’, “\n”, $input);