1

ログ テーブルにコメントを入力すると、表示が正しくないという問題がありました。

たとえば、次のように入力すると:

1                 
2            
3

次のように表示されます。

1

2

3

この問題に対処するために、コードの一部をコメントアウトし、次の正規表現行を追加しました。

//$notes= str_replace("</br>","<br>",$sqlresult['Notes']); 
//$notes = str_replace("\r","",$sqlresult['Notes']); 
//$notes = str_replace("\n","",$sqlresult['Notes']); 
//$notes = str_replace("\\","",$sqlresult['Notes']); 
//$notes = str_replace("\r","<P>",$sqlresult['Notes']); 
$notes = trim(preg_replace('/\s\s/', '<br>', $sqlresult['Notes']));

ただし、アプリケーションからテキストを貼り付けると、1 つの行の間に多くの余分な行が表示されるというエラーが表示されます。

例えば

Files are.. CDSEYE SUBMIT BY M99-CDSENTD

画面:

Files are...  
CDSXEYE     


(10 EXTRA BLANK LINES)



  SUBMIT BY M99-CDSENTD

とにかく、$notesに入力を正確に表示する方法はありますか?

4

3 に答える 3

2

を使用しなければならなかった理由

$notes = trim(preg_replace('/\s\s/', '<br>', $sqlresult['Notes']));

そもそもの行は、入力を処理してSQLデータベースに保存する方法に問題があったためです. 最後に余分な改行を削除して、その穴をふさいだだけです。真の 1 対 1 の入力と出力が必要な場合は、データが入力テキスト ボックスから SQL データベースに格納される方法を確認する必要があります。また、そのデータベースからどのようにプルされ、出力に表示されるか。他の誰かがこのコードを書いた場合、それがどのように行われたかを見つけるのに時間がかかるかもしれません.

最終的な答えは次のようになりました。

$notes = trim(preg_replace('/\r\r/', '<br>', $sqlresult['Notes']));
于 2013-07-10T15:35:55.773 に答える
1

2 つのスペースごとに改行 ( <br>) を置き換えると、これが改行の理由になります。

$notes = trim(preg_replace('/\s\s/', '<br>', $sqlresult['Notes']));

上記のコードを削除してから配置することをお勧めします

 echo nl2br($your_text_variable); //in the view
于 2013-07-10T14:42:13.087 に答える
1

問題は、余分な空白行を追加する\r<p>に置き換えている最後の行から 2 番目の行にあると思います。代わりに<br>を試してください。

于 2013-07-10T14:44:19.187 に答える