2014-10-20 3 views
1

Я работаю над скриптом синтаксического анализа электронной почты и испытываю некоторые проблемы. при отправке электронных писем он вставляет заголовок сообщения в тело сообщения, такого как From, To, Sent, Subject. Я пытаюсь разбить его, но это не зачистка. Я попробовал несколько методов, но не повезло. какие-либо предложения?Как удалить заголовки сообщений из тела сообщения

// PHP

$message = str_replace("/^From: (.*)/", "", $message); 
$message = str_replace("/^To: (.*)/", "", $message); 
$message = str_replace("/^Subject: (.*)/", "", $message); 

я также попытался $ сообщения = str_replace ("From: $ от", "", $ сообщения); // $ from get from header.

+0

Можете ли вы вставить строку, с которой работаете ('$ message')? – Rasclatt

+0

Кроме того, похоже, что вы пытаетесь выполнить 'str_replace()', когда вы, вероятно, хотите сделать 'preg_replace()' вместо – Rasclatt

ответ

1

Я не уверен, что у вас все еще есть проблема с этим, но вы должны использовать функцию preg_replace (или preg_replace_all, если вы пытаетесь найти несколько вхождений). Ваш код должен выглядеть следующим образом:

preg_replace("/^From: (.*)/", "", $message, $from); 
    preg_replace("/^To: (.*)/", "", $message, $to); 
    preg_replace("/^Subject: (.*)/", "", $message, $subject); 

Когда вы пытаетесь вывести переменную использовать функцию печати (г):

print_r($from, true); 
    print_r($to, true); 
    print_r($subject, true); 

Это, вероятно, выйти как многомерный массив, и вы можете повторить ответ от массива.

echo $from[1][0]; // It may be in a different array location.  
    echo $to[1][0]; // It may be in a different array location.  
    echo $subject[1][0]; // It may be in a different array location.  

Возможно, вам потребуется настроить расположение массива ([1] [0]) для вывода правильных данных. Надеюсь это поможет.

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