2017-11-07 5 views
0

Ich habe einen Text mit <br> Tags und ich möchte es in MySQL-Datenbank als neue Zeile speichern. keine HTML-TagsPHP str_replace <br>, r n in echte neue Zeile in MySQL

zum Beispiel:

$string = 'some text with<br>tags here.'

und ich möchte wie diese es in MySQL speichern:

some text with tags here

welches Recht str_replace für diesen Zweck? Danke.

Antwort

1

Hier versuchen Sie dies. Dies ersetzt alle <br> bis \r\n.

$string = 'some text with<br>tags here.'; 
str_replace("<br>","\r\n",$string); 
echo $string; 

Ausgang:

some text with 
tags here. 
1

könnten Sie str_replace verwenden, wie Sie vorschlagen.

$string = 'some text with<br>tags here.'; 
$string = str_replace('<br>', "\r\n", $string); 

Obwohl, wenn Ihr <br> Tags auch, <br /> oder <br/> geschlossen werden kann, kann es mit preg_replace eine Überlegung wert sein.

$string = 'some text with<br>tags here.'; 
$string = preg_replace('/<br(\s+\/)?>/', "\r\n", $string); 
1

können Sie htmlentities verwenden - Wandeln Sie alle HTML-Zeichen in Entitäten und html_entity_decode in HTML-Entitäten zu konvertieren Zeichen

$string = 'some text with<br>tags here' 

$a = htmlentities($string); 

$b = html_entity_decode($a); 

echo $a; // some text with&lt;br&gt;tags here 

echo $b; // some text with<br>tags here 
1

Versuchen:

mysql_real_escape_string

function safe($value){ 
    return mysql_real_escape_string($value); 
} 
4

Es gibt bereits eine Funktion in PHP, die eine neue Zeile in ein br namens nl2br() konvertiert. Das Umgekehrte ist jedoch nicht wahr. Stattdessen können Sie Ihre eigene Funktion wie folgt erstellen:

function br2nl($string) 
{ 
    $breaks = array("<br />","<br>","<br/>"); 
    return str_ireplace($breaks, "\r\n", $string); 
} 

Dann, wenn Sie es verwenden möchten, nur nennen es wie folgt:

$original_string = 'some text with<br>tags here.'; 
$good_string = br2nl($original_string); 

Es gibt drei Dinge erwähnenswert:

  1. Es kann besser sein, die Daten in der Datenbank genau so zu speichern, wie der Benutzer sie eingegeben hat, und dann die Konvertierung durchzuführen, wenn Sie sie abrufen. Das hängt natürlich davon ab, was Sie tun.
  2. Einige Systeme wie Windows verwenden \ r \ n. Einige Systeme wie Linux und Mac verwenden \ n. Einige Systeme, wie ältere Mac-Systeme, verwenden für neue Zeilenzeichen. In Anbetracht dessen und insbesondere, wenn Sie sich entscheiden, Punkt 1 oben zu verwenden, möchten Sie vielleicht die PHP-Konstante PHP_EOL anstelle von \ r \ n verwenden. Dadurch erhalten Sie den richtigen Zeilenumbruch, unabhängig davon, auf welchem ​​System Sie sich befinden.
  3. Die oben angegebene Methode ist effizienter als preg_replace.Es berücksichtigt jedoch nicht standardmäßiges HTML wie <br /> und andere Variationen nicht. Wenn Sie diese Variationen berücksichtigen müssen, sollten Sie die Funktion preg_replace() verwenden. Damit kann man alle möglichen Variationen überdenken und trotzdem nicht alle erklären. Betrachten Sie zum Beispiel <br id="mybreak"> und viele andere Kombinationen von Attributen und Leerraum.
Verwandte Themen