2017-11-07 4 views
0

の実質ニューラインに私は<br>タグでテキストを持っていると私は新しい行としてMySQLデータベースに保存したいです。 HTMLタグではありません。例えばPHPのstr_replace <br>、 rを n個のMySQL

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

、私はこのようにMySQLの中にそれを保存したい:この目的のためにどのような権利str_replace

some text with tags here

?ありがとうございました。

答えて

1

ここでこれを試してください。これにより、<br>がすべて\r\nに置き換えられます。

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

出力:あなたが提案するよう

some text with 
tags here. 
1

あなたは、str_replaceを使用することができます。

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

あなた<br>タグはまた、<br />または<br/>を閉鎖することができるならば、それはpreg_replaceを使用して検討する価値があるかもしれ、が。

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

あなたはhtmlentitiesを使用することができます - 文字にHTMLエンティティを変換するエンティティに、すべてのHTML文字を変換し、html_entity_decode

$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

試してみてください。

function safe($value){ 
    return mysql_real_escape_string($value); 
} 
をmysql_real_escape_stringの

4

PHPには、新しい行をnl2br()というbrに変換する関数がすでにあります。しかし、その逆は真ではありません。代わりに、あなたは次のように独自の関数を作成することができます。

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

を次に、あなたがそれを使用したいとき、次のようにそれを呼び出す:

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

は言及する価値が三つあります

  1. ユーザーがそれを入力した後、あなたがそれを取得するときの変換を行うとおりにデータベースにデータを格納する方が良いかもしれません。もちろん、これはあなたがやっていることに依存します。
  2. Windowsなどの一部のシステムでは、\ r \ nを使用します。 LinuxやMacなどのシステムによっては\ nが使用されます。古いMacシステムのユーザのようなシステムでは、改行文字が必要です。これを考えると、あなたは上記の点1を使用することを選択した場合は特に、あなたは\ r \ nの代わりにPHP定数PHP_EOLを使用することを好むかもしれません。これはあなたがどんなシステムにいても正しい改行文字を与えます。
  3. 上記の方法は、preg_replaceより効率的です。ただし、<br />などの非標準HTMLやその他のバリエーションは考慮されていません。これらのバリエーションを考慮する必要がある場合は、preg_replace()機能を使用する必要があります。それがあれば、可能なすべてのバリエーションを打ち倒すことができますが、それでもすべてを説明することはできません。たとえば、<br id="mybreak">と他の多くの属性と空白の組み合わせを考えてみましょう。
関連する問題