-3

関数 ( ) を使用して、テキストをデータベースcheck(removeTags($data))に保存します。mysql

function check($data){
    if (get_magic_quotes_gpc()) {
        $data = stripslashes($data);
    }
    $data =addcslashes( mysql_real_escape_string($data) , "%_" );
    return $data;
}
function removeTags($data){
    $data=trim($data);  
    $data=strip_tags($data);
    return $data;
}

この関数を使用して、上記のテキストを表示し、ユーザーに保存しました。

function output($data){
    return htmlspecialchars($data,ENT_QUOTES,"UTF-8");
}

newline('<br/>')しかし、不要な文字がテキストに追加され"\r\n"ます。

使用しstripslashesましたが、機能しませんでした ( '\r\n''nr' に置き換えます)。

私も使用str_replace("\r\n", "<br />",$data)していますが、うまくいきませんでした。

どうすれば削除でき'\r\n'ますか?


編集

テキストがデコードされた後、この出力 \r\n を参照してください - PHP

ただし、ユーザー入力はその関数でエンコードされていません ( のようにencode)、ユーザー入力言語はpersian(アラビア語) です。

4

1 に答える 1

0

文字列からすべての改行文字を削除するには、次を使用します。

function check($data) {
    if (get_magic_quotes_gpc()) {
        $data = stripslashes($data);
    }

    // this will remove all \n\r from output what you asked in question
    $data = str_replace(array("\r", "\n"), '', $data);

// in case you want new line in place of \n\r use line below
//  $data = nl2br($data); 

    $data = addcslashes(mysql_real_escape_string($data) , "%_");
    return $data;
}
...

クリーンなユーザー入力でこれを使用するようにしてください。前addslashesまたは他のエスケープ方法。EOL文字をエスケープすると、"\\r\\n" にstr_replaceなり、機能しなくなります。

于 2013-08-25T13:56:27.527 に答える