Я пытаюсь получить почту в imap из Google, я использую функцию imap () из библиотеки PHP IMAP и хочу использовать вызов preg_match () для моего почтового контента, но у меня странная проблема, я есть любопытные линии разрыва, изменяющие обычный preg_match ().
Подробнее:
У меня в разметке что-то вроде этого:
<TABLE CELLPADDING=5 RULES=GROUPS FRAME=BOX>
<THEAD>
<TR> <TH>Résumé points de classement</TH> <TH>Extérieur</TH> <TH>Domicile</TH> </TR>
</THEAD>
<TBODY>
<TR> <TD>Équipe</TD> <TD>Milan</TD> <TD>Arsenal</TD> </TR>
<TR> <TD>Performance du match</TD> <TD>0</TD> <TD>19</TD> </TR>
<TR> <TD>Étoiles équipe</TD> <TD>0</TD> <TD>0</TD> </TR>
<TR> <TD>Points totaux</TD> <TD>3195</TD> <TD>3273</TD> </TR>
<TR> <TD>Niveau actuel</TD> <TD>22</TD> <TD>22</TD> </TR>
<TR> <TD>Points pour le prochain niveau</TD> <TD>5</TD> <TD>127</TD> </TR>
</TBODY>
</TABLE>
Я запускаю этот код для извлечения тела, например:
<?php
// $message is the previous markup.
$str = substr($message, 321, 10);
var_dump($str);
$str = preg_replace("/ /i","",$str);
var_dump($str);
?>
Вывод этого кода:
<code><pre class='xdebug-var-dump' dir='ltr'><small>string</small> <font color='#cc0000'>'
&lt;TABLE'</font> <i>(length=13)</i>
string '
& amp; lt; TABLE ' (длина = 13)
И извлеченное значение является пустым массивом ... После дальнейшего изучения я обнаружил с помощью var_dump () моей исходной строки, что есть
в конце каждой строки.
Я понятия не имею, что это за код символа html и как его удалить.
Если вы можете просветить меня, я буду благодарен;)
Хорошего дня!
EDIT:
С str_replace () это работает!
на самом деле \ n разрыв строки. Итак, магические трюки это:
$overview = imap_body($inbox,$email_number,0);
$message = utf8_decode(quoted_printable_decode($overview));
$message = str_replace("\n", "", $message);