2015-04-30 3 views
1

Я использую следующий PHP код, чтобы построить строку, которая будет содержать несколько писем:Невозможно удалить последовательность побега из строки

$mailist.=$usermail."\n"; 

переменного $ usermail уже инициализирован и mailist переменного $ занял свое значение из База данных MySQL; его новое значение будет использоваться для:

UPDATE REQUESTS SET teamails='$mailist' where ..."; 

Поскольку я хочу использовать содержимое поля teamails как показать его внутри текстового поля, и я хочу, чтобы отделить каждую электронную почту с новой строки, я использовал «\ n "с успехом.

Однако, когда я хочу удалить электронное письмо из командной строки, я не могу удалить escape-последовательность. Результатом является сохранение двух или более управляющих последовательностей в строке, и две или более пустых строк появляются среди электронных писем в текстовом поле. Я попытался следующие, но это не сработало:

$usermail.="
"; 
$mailist = str_replace($usermail,"",$mailist); 
$query="UPDATE REQUESTS SET teamails='$mailist' where ... "; 

Вы знаете, как удалить побег «\ п» вместе с электронной почтой?

Большое спасибо

+0

'$ mailist = str_replace ("\ п", "", $ mailist), может быть? – AbraCadaver

+0

В строке нет escape-последовательности. Строка содержит только символ новой строки. Эквивалентная последовательность - это то, как вы вводите это в исходный код PHP. – Barmar

+1

BTW, выйдите из практики размещения списков вещей в одном поле базы данных. Вы должны использовать таблицу отношений, которая имеет одну строку для каждого члена списка и присоединиться к ней. – Barmar

ответ

1

Прежде всего позвольте мне сказать, что это плохой дизайн БД - ваши столбцы должны содержать одну часть информации. В идеале вы должны иметь дб схемы, как это:

Members(id, email ,...), Teams(id, ...), TeamsMails(id_member, id_team) 

Чтобы ответить на вопрос, который вы могли бы попробовать что-то вроде этого:

$str = "[email protected]\[email protected]\[email protected]"; 
$str = str_replace("[email protected]", "", $str); 
$str = str_replace("\n\n", "\n", $str); 
Смежные вопросы