Чистый текст в php - PullRequest
       1

Чистый текст в php

0 голосов
/ 26 августа 2010

Это строка:

--0-1946616131-1282798399=:21360 Content-Type: text/plain; charset=us-ascii --------------
------ do not change ---------------------------- Ticket ID : #987336 --------------------
------------------------------------------- Hello, This is my problem try to solve this 
thank u --0-1946616131-1282798399=:21360 Content-Type: text/html; charset=us-ascii"

Теперь я хочу удалить из нее -

--0-1946616131-1282798399=:21360 Content-Type: text/plain; charset=us-ascii

и

--0-1946616131-1282798399=:21360 Content-Type: text/html; charset=us-ascii

.Я имею в виду очистить текст.

Как я могу это сделать?

Ответы [ 4 ]

0 голосов
/ 26 августа 2010

Это похоже на MIME составное сообщение . Если это так, то части, которые вы хотите удалить, непредсказуемы.

Разрыв между разными частями должен быть указан в заголовке сообщения следующим образом:

Content-Type: multipart/mixed; boundary="frontier"

boundary="frontier" означает, что каждая новая часть сообщения будет представлена ​​примерно так:

--frontier
Content-Type: text/plain

Поскольку отправитель сообщения может свободно выбирать любой текст, который ему нравится, в качестве границ, он непредсказуем, не глядя на заголовок сообщения. Если у вас нет действительно конкретного случая очень конкретных границ, практически невозможно надежно удалить текст границы после факта. Его нужно «очистить» во время анализа сообщения.

Если вы имеете дело с очень ограниченным, предсказуемым набором границ, вы должны указать их формат и попытаться удалить их с помощью регулярного выражения.

0 голосов
/ 26 августа 2010

Используйте этот простой однострочный код (где $text - вводимый текст):

$newtext = str_replace('--0-1946616131-1282798399=:21360 Content-Type: text/plain; charset=us-ascii', '', $text);
0 голосов
/ 26 августа 2010

Пожалуйста, уточните, изменяется ли эта строка и как или всегда одинакова?

Также кажется, что вы сначала что-то делаете неправильно, чтобы получить эту строку. Или у вас нет контроля над входящей строкой?

Функции для просмотра: str_replace , preg_replace и взорваться

0 голосов
/ 26 августа 2010

Вы можете сделать два регулярных выражения, или вы можете попробовать пару разбиений. Вот второй вариант:

<code>//the original string
$string = "--0-1946616131-1282798399=:21360 Content-Type: text/plain; charset=us-ascii -------------------- do not change ---------------------------- Ticket ID : #987336 --------------------------------------------------------------- Hello, This is my problem try to solve this thank u --0-1946616131-1282798399=:21360 Content-Type: text/html; charset=us-ascii";
//split the string into lines separated by --0-
$splitstring = explode("--0-",$string);
print "<pre>";
print_r($splitstring);
print "
"; // создаем массив, который будет нашей последней чистой строкой $ cleanstrings = array (); // пройти через каждую из наших строк foreach ($ splitstring как $ line) { // если есть содержание if (strlen ($ line)> 0) { // затем разделить его снова, чтобы избавиться от ненужных разделов $ splitline = explode ("charset = us-ascii", $ line); // если вторая часть строки имеет содержимое if (strlen ($ splitline [1])> 0) { // затем добавляем его в наш список чистых строк $ cleanstrings [] = $ splitline [1]; } } } печать "
";
print_r($cleanstrings);
print "
";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...