2015-02-08 16 views
0

Так что я пытаюсь удалить обратную косую черту (хранится в базе данных, как в примере - как это происходит).Удаление обратной косой черты с str_replace

Что я хочу сделать, так это удалить эту обратную косую черту и сохранить символы перевода и пробелы.

Я знаю, что это делает трюк:

str_replace('\\', '', $string); 

но проблема в том, что у меня есть два выражения как хорошо, так теперь у меня есть:

str_replace('\\r\\n', "\r\n", $string); 

Как и где я могу положить в '\\', '' во втором примере без вмешательства в новые строки?

Я просто попробовал str_replace('\\r\\n\\', "\r\n ', $string) и так далее, но я не могу заставить его работать, не испортив новые строки.

Кто может мне помочь?

EDIT:

Что я сейчас выводить данные:

echo nl2br(str_replace('\\r\\n', "\r\n", $string)); 

который отображает строку, хранящуюся в БД, Как \ 's это будет \ г \ п \ г \ nROW 3 как:

How\'s it going? 

ROW 3 

в абзаце тега.

Так что я хочу, чтобы сохранить новые строки неповрежденными. Stripslashes удаляет новые строки и помещает вывод в одну строку.

При хранении данных я использую эту чистую функцию:

function clean($mysqli, $var) { 
    $var = strip_tags($var); 
    $var = htmlentities($var); 
    $var = stripslashes($var); 
    return $mysqli->real_escape_string($var); 
} 

Что я мог приспособиться, чтобы сохранить переводы строк, а также удалить один обратный слэш в словах, как Это, что, как это и т.д ..

EDIT: решаемые

+0

Что ваш желаемый результат для Как \ «s это происходит –

+0

' str_replace (»\\\ '', "'", $ string); ' – Anthony

+0

stripslashes ($ string) – Anthony

ответ

0

Я не знаю, если это считается хорошей практикой, но то, что я сделал:

$output = nl2br(str_replace('\\r\\n', "\r\n", $string)); 
echo str_replace('\\', "", $output); 
0

Просто используйте функцию stripslashes

http://php.net/manual/en/function.stripslashes.php

+0

Stripslashes также удаляет новые строки. – Markus

+0

Да. Но если у вас есть одна косая черта в символах новой строки, это ошибка написания в db. Если вы не можете исправить это, используйте 'str_replace ('\\ r \\ n'," \\\\ r \\\\ n ", $ string);' перед 'stripslashes' – Animir

Смежные вопросы