X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Пишу свой почтовик, есть пару вопросов
scva
scva
Topic Starter сообщение 20.12.2010, 11:32; Ответить: scva
Сообщение #1


Сабж.
Поэтому возникает много вопросов.

Вопрос 1
Правильный ли по-сути сам код, как его оптимизировать
[PHP]
if ($pop_connect == FALSE)
{
echo "Не правильный сервер входящей почты"; exit;
}
else
{
print fgets($pop_connect,1024)."<br />";
}

fputs($pop_connect,"USER $login\r\n");

if ($pop_connect == FALSE)
{
echo "Не правильный логин"; exit;
}
else
{
print fgets($pop_connect,1024)."<br />";
}

fputs($pop_connect,"PASS $password\r\n");

if ($pop_connect == FALSE)
{
echo "Не правильный пароль"; exit;
}
else
{
print fgets($pop_connect,1024)."<br />";
}


fputs($pop_connect,"STAT\r\n");
print 'Всего сообщений'.fgets($pop_connect,1024)."<br /><br />";
[/PHP]

Вопрос 2
Запрос о количестве писем к pop серверу
[PHP]
fputs($pop_connect,"STAT\r\n");
print 'Всего сообщений'.fgets($pop_connect,1024);
[/PHP]

Ответ приходит таким "Всего сообщений+OK 825 580443418 ", мне необходимо сделать его читабельным, то есть "Всего сообщений 825, общим размером 58044341 байт"
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 20.12.2010, 12:45; Ответить: Mulder_hb
Сообщение #2


Чисто замечания по блокам if-else. Если в блоке if по ветке false происходит выход из скрипта, то блок else не нужен.
[PHP]if ($pop_connect == FALSE) {
echo "Не правильный сервер входящей почты";
exit;
}
print fgets($pop_connect,1024)."";
fputs($pop_connect,"USER $login\r\n");

if ($pop_connect == FALSE) {
echo "Не правильный логин";
exit;
}
print fgets($pop_connect,1024)."";
fputs($pop_connect,"PASS $password\r\n");

if ($pop_connect == FALSE) {
echo "Не правильный пароль";
exit;
}
print fgets($pop_connect,1024)."";
fputs($pop_connect,"STAT\r\n");
print 'Всего сообщений'.fgets($pop_connect,1024)."";[/PHP]

2. Обычная регулярка.
[PHP]$text = "Всего сообщений+OK 825 580443418";
preg_match('/(\d+)\s(\d+)/s', $text, $matches);
echo "Всего сообщений ".$matches[1].", общим размером ".$matches[2]." байт";[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
scva
scva
Topic Starter сообщение 20.12.2010, 17:28; Ответить: scva
Сообщение #3


Другой вопрос, почему то цикл не работает полностью
[PHP]
$count = $matches[1];
echo $count;

for ($j=1;$j<=$count;$j++)
{
$number = "$j";
fputs($pop_connect,"RETR $number\r\n");

$text = get_data($pop_connect);



$struct=fetch_structure($text);


$mass_header=decode_header($struct['header']);
$mass_header["subject"] = decode_mime_string($mass_header["subject"]);
echo '<p>'.$number.' - '.$mass_header['subject'].'</p>';
}
[/PHP]

$count = 825 а выводит только 34 строки
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 20.12.2010, 18:04; Ответить: Mulder_hb
Сообщение #4


Чисто по коду. Зачем введены переменные $numder и $count (лишние присваивания)?
[PHP]
for ($j = 1; $j <= $matches[1]; $j++) {
fputs($pop_connect, "RETR $j\r\n");
$text = get_data($pop_connect);
$struct=fetch_structure($text);
$mass_header = decode_header($struct['header']);
$mass_header["subject"] = decode_mime_string($mass_header["subject"]);
echo '<p>'.$j.' - '.$mass_header["subject"].'</p>';
}[/PHP]
Включите отображение ошибок, чтобы видеть, почему цикл обрывается.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
scva
scva
Topic Starter сообщение 20.12.2010, 18:41; Ответить: scva
Сообщение #5


ругается на эту функцию, это функция разбирает все заголовки и выводит массив, в котором каждый элемент является соответсвующим заголовком
[PHP]
function decode_header($header) {
$headers = explode("\r\n",$header);
$decodedheaders = Array();
for($i=0;$i<count($headers);$i++) {
$thisheader = trim($headers[$i]);
if(!empty($thisheader))
if(!ereg("^[A-Z0-9a-z_-]+:",$thisheader))
$decodedheaders[$lasthead] .= " $thisheader";
else {
$dbpoint = strpos($thisheader,":");
$headname = strtolower(substr($thisheader,0,$dbpoint));
$headvalue = trim(substr($thisheader,$dbpoint+1));
if($decodedheaders[$headname] != "") $decodedheaders[$headname] .= "; $headvalue";
else $decodedheaders[$headname] = $headvalue;
$lasthead = $headname;
}
}
return $decodedheaders;
}

Notice: Undefined index: subject in Z:\home\s.ru\www\mes.php on line 173

Notice: Undefined index: date in Z:\home\s.ru\www\mes.php on line 173

Notice: Undefined index: from in Z:\home\s.ru\www\mes.php on line 173

[/PHP]
и таких строк очень много, по каждмоу элементу заголовка
строка 173 - [PHP]if($decodedheaders[$headname] != "") $decodedheaders[$headname] .= "; $headvalue";[/PHP]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Раскройте свой потенциал заработка с помощью 2x2 Media Network — вашего пути к выгодным предложениям CPA!
Присоединяйтесь к 2x2 Media Network, вашему надежному партнеру в мире
11 2x2MediaLimited 3265 Вчера, 4:22
автор: 2x2MediaLimited
Открытая тема (нет новых ответов) Есть смысл создавать сайты на латышском?
16 Nekit 3923 31.3.2024, 1:23
автор: Liudmila
Открытая тема (нет новых ответов) Есть ли инструмент для поиска запросов на YouTube?
1 rownong27 993 18.2.2024, 22:19
автор: malamut
Открытая тема (нет новых ответов) Пишу тексты на пикантную тематику, от которых становится жарко. Десятилетний опыт к вашим услугам.
15 AvtorXXX 7735 12.12.2023, 0:45
автор: AndrePro
Горячая тема (нет новых ответов) Pharmcashusa.com. Есть USA фарма траф? Вам сюда!
36 Herbalka 14618 11.12.2023, 21:27
автор: Herbalka


 



RSS Текстовая версия Сейчас: 19.4.2024, 7:17
Дизайн