0

mysqlからの出力をエコーし​​ています。ログファイルであるため、私はそれを制御できませんが、表示されたときにHTMLを台無しにする特定のログが1つあります。

これが私がログから取ったスニペットです:

a következő helyen: System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)<br />
a következő helyen: System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt)<br />
Parsing hand: <br />
<?xml version="1.0" encoding="utf-16"?><br />
<HandDetails SiteName="Poker

それを表に表示すると、すべてがめちゃくちゃになっています。とを使用してみhmtlentitiesましhtmlspecialcharsたが、どちらも非表示<br />のタグを出力し、<br />が機能しないため、改行が表示されません。最善のアプローチは何ですか?

開閉を探して、<>に置き換えることを考えていました[]が、副作用があるかどうかわかりません。また、600行ほどのスニペットを取得しているため、終了するものがない場合があります。コードなので、いつでも切断できます

データを変更してもかまいません。100%そのまま表示する必要はありません(FWIW、問題なくデータベースに挿入されます。問題が発生するのはエコーアウトしたときです)。

//詳細情報を含む新しい編集

さて、私はソースコードを見て、これを示しています:

<td>   at System.Windows.Interop.HwndTarget.UpdateWindowSettings(Boolean enableRenderTarget, Nullable`1 channelSet)&lt;br /&gt;
   at System.Windows.Interop.HwndTarget.UpdateWindowSettings(Boolean enableRenderTarget)&lt;br /&gt;
   at System.Windows.Interop.HwndTarget.UpdateWindowPos(IntPtr lParam)&lt;br /&gt;
   at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)&lt;br /&gt;
   at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wP</td>

それを出力するための私のコードは非常に単純です:

$ result1 = mysql_query($ Feedback_query_first);

    while ($row1 = mysql_fetch_array($result1))
    {
    $first_date = $row1['snippet_date'];
    $snippet_text_pre = $row1['snippet_text'];
    $snippet_text = htmlspecialchars($snippet_text_pre);
    }

    echo '<td>'. $snippet_text.'</td>';

htmlspecialcharsを削除すると、xmlがすべてを台無しにするという元の問題が発生しますが、書式設定は問題なく、改行などが観察されます。そのままにしておくと、
改行のないテキストとして挿入されますか?????

4

1 に答える 1

0

htmlspecialchars<br />「隠しタグを印刷」しません。生成されたHTML(ブラウザの「ソースの表示」)を詳しく調べて、問題の原因を正確に確認してください。

于 2013-01-01T17:27:20.960 に答える