コード例 #1
0
function parseDBLine($record)
{
    $dbRecord = array();
    // note that the fields start off at 0, and they are simply parsed
    // in order
    $field = 0;
    print_r("original record");
    print_r($record);
    list($dbRecord["FirstName"], $dbRecord["LastName"]) = parseName($record[$field++]);
    $dbRecord["Email"] = parseEmail($record[$field++]);
    $dbRecord["Phone"] = parsePhone($record[$field++]);
    $dbRecord["Title"] = null;
    $dbRecord["CustomerCNotes"] = parseCustomerCNotes($record[$field++]);
    list($dbRecord["Street1"], $dbRecord["Street2"], $dbRecord["City"], $dbRecord["State"], $dbRecord["Zip"]) = parseAddress($record[$field++]);
    $dbRecord["Country"] = "US";
    $dbRecord["AdminCNotes"] = parseAdminCNotes($record[$field++]);
    $dbRecord["OrderedDate"] = $dbRecord["MetDate"] = parseMetDate($record[$field++]);
    $dbRecord["CustomerONotes"] = parseCustomerONotes($record[$field++]);
    $dbRecord["AdminONotes"] = parseAdminONotes($record[$field++]);
    $dbRecord["Charity"] = parseCharity($record[$field++]);
    $dbRecord["RequestedPay"] = parsePaymentRequested($record[$field++]);
    $dbRecord["PaidDate"] = parsePaid($record[$field++], "10/1/2014");
    $dbRecord["ReleasedToShipping"] = parseReleasedToShipping($record[$field++], "10/1/2014");
    $dbRecord["ShippedDate"] = parseShipped($record[$field++], "10/1/14");
    $dbRecord["IsExpedited"] = parseExpedite($record[$field++]);
    $dbRecord["WasCanceled"] = parseCanceled($record[$field++]);
    $dbRecord["InvoiceNumber"] = $dbRecord["InvoiceID"] = $dbRecord["InvoiceURL"] = null;
    $dbRecord["Carrier"] = $dbRecord["TrackingNum"] = $dbRecord["WasReceived"] = null;
    $dbRecord["Discount"] = $dbRecord["ShippingFee"] = $dbRecord["ExpediteFee"] = null;
    $dbRecord["Products"] = parseProducts($record[$field++]);
    var_dump($dbRecord);
    return $dbRecord;
}
コード例 #2
0
 public function format($value, $type)
 {
     switch ($type) {
         case 'pay_type':
             $data = self::getPayTypes();
             $value = $data[$value];
             break;
         case 'emp_status':
         case 'frl_status':
             $value = $value ? 'ЮЛ' : 'ФЛ';
             break;
         case 'bs_id':
             $order_name = $this->formatOrderName($value);
             $value = '<a target="_blank" href="?action=details&num=' . $value . '">' . $order_name . '</a>';
             break;
         case 'post_addr':
             $message = array();
             $message_txt = null;
             $error_class = 'b-txt_color_darkorange';
             $res = parseAddress($value);
             if ($res) {
                 if (!$res['index']) {
                     $message[] = 'индекс';
                 }
                 if (!$res['country_id']) {
                     $message[] = 'страну';
                 }
                 if (!$res['city_id']) {
                     $message[] = 'город';
                 }
             }
             if (!$res || !empty($message)) {
                 if (!$res || count($message) == 3) {
                     $message_txt = 'Не удалось разобрать адрес.';
                     $error_class = 'b-txt_color_red';
                 } else {
                     $message_txt = sprintf('Не удалось разобрать: %s.', implode(', ', $message));
                 }
             }
             if ($message_txt) {
                 $value = "\n                        {$value}</br></br>\n                        <span class=\"b-txt b-txt_fs_11 {$error_class}\">{$message_txt}</span>\n                    ";
             }
             break;
         default:
             break;
     }
     return $value;
 }
コード例 #3
0
function parseAddress($address, $max = 0, $addr_ar = array(), $group = '', $host = '')
{
    $pos = 0;
    $j = strlen($address);
    $personal = '';
    $addr = '';
    $comment = '';
    if ($max && ($max = count($addr_ar))) {
        return $addr_ar;
    }
    while ($pos < $j) {
        if ($max && ($max = count($addr_ar))) {
            return $addr_ar;
        }
        $char = $address[$pos];
        switch ($char) {
            case '=':
                if (preg_match('/^(=\\?([^?]*)\\?(Q|B)\\?([^?]*)\\?=)(.*)/Ui', substr($address, $pos), $reg)) {
                    if (!$personal) {
                        $personal = substr($address, 0, $pos);
                    }
                    $personal .= $reg[1];
                    $pos += strlen($personal);
                }
                ++$pos;
                break;
            case '"':
                /* get the personal name */
                ++$pos;
                if ($address[$pos] == '"') {
                    ++$pos;
                } else {
                    $personal_start = $personal_end = $pos;
                    while ($pos < $j) {
                        $personal_end = strpos($address, '"', $pos);
                        if ($personal_end - 2 > 0 && (substr($address, $personal_end - 2, 2) === '\\"' || substr($address, $personal_end - 2, 2) === '\\\\')) {
                            $pos = $personal_end + 1;
                        } else {
                            $personal = substr($address, $personal_start, $personal_end - $personal_start);
                            break;
                        }
                    }
                    if ($personal_end) {
                        /* prohibit endless loops due to very wrong addresses */
                        $pos = $personal_end + 1;
                    } else {
                        $pos = $j;
                    }
                }
                break;
            case '<':
                /* get email address */
                $addr_start = $pos;
                $addr_end = strpos($address, '>', $addr_start);
                $addr = substr($address, $addr_start + 1, $addr_end - $addr_start - 1);
                $pos = $addr_end + 1;
                break;
            case '(':
                /* rip off comments */
                $addr_start = $pos;
                $pos = strpos($address, ')');
                if ($pos !== false) {
                    $comment = substr($address, $addr_start + 1, $pos - $addr_start - 1);
                    $address_start = substr($address, 0, $addr_start);
                    $address_end = substr($address, $pos + 1);
                    $address = $address_start . $address_end;
                }
                $j = strlen($address);
                $pos = $addr_start + 1;
                break;
            case ',':
                /* we reached a delimiter */
                if ($addr == '') {
                    $addr = substr($address, 0, $pos);
                } else {
                    if ($personal == '') {
                        $personal = trim(substr($address, 0, $addr_start));
                    }
                }
                if (!$personal && $comment) {
                    $personal = $comment;
                }
                if ($personal) {
                    $personal = decodeHeader($personal);
                }
                $addr_ar[] = array($addr, $personal);
                $address = trim(substr($address, $pos + 1));
                $j = strlen($address);
                $pos = 0;
                $personal = '';
                $addr = '';
                break;
            case ':':
                /* process the group addresses */
                /* group marker */
                $group = substr($address, 0, $pos);
                $address = substr($address, $pos + 1);
                $result = parseAddress($address, $max, $addr_ar, $group);
                $addr_ar = array($result[0]);
                $pos = $result[1];
                $address = substr($address, $pos++);
                $j = strlen($address);
                $group = '';
                break;
            case ';':
                if ($group) {
                    $address = substr($address, 0, $pos - 1);
                }
                ++$pos;
                break;
            default:
                ++$pos;
                break;
        }
    }
    if ($addr == '') {
        $addr = substr($address, 0, $pos);
    } else {
        if ($personal == '') {
            $personal = trim(substr($address, 0, $addr_start));
        }
    }
    if (!$personal && $comment) {
        $personal = $comment;
    }
    $email = $addr;
    if ($group && $addr == '') {
        /* no addresses found in group */
        $personal = $group;
        $addr_ar[] = array('', $personal);
        return array($addr_ar, $pos + 1);
    } elseif ($group) {
        $addr_ar[] = array($addr, $personal);
        return array($addr_ar, $pos + 1);
    } else {
        if ($personal || $addr) {
            $addr_ar[] = array($addr, $personal);
        }
    }
    return $addr_ar;
}
コード例 #4
0
function sqimap_get_small_header_list($imap_stream, $msg_list)
{
    global $squirrelmail_language, $color, $data_dir, $username, $imap_server_type;
    global $uid_support, $allow_server_sort;
    /* Get the small headers for each message in $msg_list */
    $sid = sqimap_session_id($uid_support);
    $maxmsg = sizeof($msg_list);
    $msgs_str = sqimap_message_list_squisher($msg_list);
    $messages = array();
    $read_list = array();
    /*
     * We need to return the data in the same order as the caller supplied
     * in $msg_list, but IMAP servers are free to return responses in
     * whatever order they wish... So we need to re-sort manually
     */
    for ($i = 0; $i < sizeof($msg_list); $i++) {
        $id2index[$msg_list[$i]] = $i;
    }
    $internaldate = getPref($data_dir, $username, 'internal_date_sort');
    if ($internaldate) {
        $query = "{$sid} FETCH {$msgs_str} (FLAGS UID RFC822.SIZE INTERNALDATE BODY.PEEK[HEADER.FIELDS (Date To Cc From Subject X-Priority Content-Type)])\r\n";
    } else {
        $query = "{$sid} FETCH {$msgs_str} (FLAGS UID RFC822.SIZE BODY.PEEK[HEADER.FIELDS (Date To Cc From Subject X-Priority Content-Type)])\r\n";
    }
    fputs($imap_stream, $query);
    $readin_list = sqimap_read_data_list($imap_stream, $sid, false, $response, $message);
    $i = 0;
    foreach ($readin_list as $r) {
        if (!$uid_support) {
            if (!preg_match("/^\\*\\s+([0-9]+)\\s+FETCH/iAU", $r[0], $regs)) {
                set_up_language($squirrelmail_language);
                echo '<br><b><font color=$color[2]>' . _("ERROR : Could not complete request.") . '</b><br>' . _("Unknown response from IMAP server: ") . ' 1.' . htmlspecialchars($r[0]) . "</font><br>\n";
            } else {
                if (!isset($id2index[$regs[1]]) || !count($id2index[$regs[1]])) {
                    set_up_language($squirrelmail_language);
                    echo '<br><b><font color=$color[2]>' . _("ERROR : Could not complete request.") . '</b><br>' . _("Unknown message number in reply from server: ") . htmlspecialchars($regs[1]) . "</font><br>\n";
                } else {
                    $read_list[$id2index[$regs[1]]] = $r;
                }
            }
        } else {
            if (!preg_match("/^\\*\\s+([0-9]+)\\s+FETCH.*UID\\s+([0-9]+)\\s+/iAU", $r[0], $regs)) {
                set_up_language($squirrelmail_language);
                echo '<br><b><font color=$color[2]>' . _("ERROR : Could not complete request.") . '</b><br>' . _("Unknown response from IMAP server: ") . ' 1.' . htmlspecialchars($r[0]) . "</font><br>\n";
            } else {
                if (!isset($id2index[$regs[2]]) || !count($id2index[$regs[2]])) {
                    set_up_language($squirrelmail_language);
                    echo '<br><b><font color=$color[2]>' . _("ERROR : Could not complete request.") . '</b><br>' . _("Unknown message number in reply from server: ") . htmlspecialchars($regs[2]) . "</font><br>\n";
                } else {
                    $read_list[$id2index[$regs[2]]] = $r;
                    $unique_id = $regs[2];
                }
            }
        }
    }
    arsort($read_list);
    $patterns = array("/^To:(.*)\$/AUi", "/^From:(.*)\$/AUi", "/^X-Priority:(.*)\$/AUi", "/^Cc:(.*)\$/AUi", "/^Date:(.*)\$/AUi", "/^Subject:(.*)\$/AUi", "/^Content-Type:(.*)\$/AUi");
    $regpattern = '';
    for ($msgi = 0; $msgi < $maxmsg; $msgi++) {
        $subject = _("(no subject)");
        $from = _("Unknown Sender");
        $priority = 0;
        $messageid = '<>';
        $cc = $to = $date = $type[0] = $type[1] = $inrepto = '';
        $flag_seen = $flag_answered = $flag_deleted = $flag_flagged = false;
        $read = $read_list[$msgi];
        $prevline = false;
        foreach ($read as $read_part) {
            //unfold multi-line headers
            if ($prevline && $prevline[strlen($prevline) - 1] == "\n" && ($read_part[0] == ' ' || $read_part[0] == "\t")) {
                $read_part = substr($prevline, 0, -2) . preg_replace('/(\\t\\s+)/', ' ', $read_part);
            }
            $prevline = $read_part;
            if ($read_part[0] == '*') {
                if ($internaldate) {
                    if (preg_match("/^.+INTERNALDATE\\s+\"(.+)\".+/iUA", $read_part, $reg)) {
                        $tmpdate = trim($reg[1]);
                        $tmpdate = str_replace('  ', ' ', $tmpdate);
                        $tmpdate = explode(' ', $tmpdate);
                        $date = str_replace('-', ' ', $tmpdate[0]) . " " . $tmpdate[1] . ' ' . $tmpdate[2];
                    }
                }
                if (preg_match("/^.+RFC822.SIZE\\s+(\\d+).+/iA", $read_part, $reg)) {
                    $size = $reg[1];
                }
                if (preg_match("/^.+FLAGS\\s+\\((.*)\\).+/iUA", $read_part, $regs)) {
                    $flags = explode(' ', trim($regs[1]));
                    foreach ($flags as $flag) {
                        $flag = strtolower($flag);
                        if ($flag == '\\seen') {
                            $flag_seen = true;
                        } else {
                            if ($flag == '\\answered') {
                                $flag_answered = true;
                            } else {
                                if ($flag == '\\deleted') {
                                    $flag_deleted = true;
                                } else {
                                    if ($flag == '\\flagged') {
                                        $flag_flagged = true;
                                    }
                                }
                            }
                        }
                    }
                }
                if (preg_match("/^.+UID\\s+(\\d+).+/iA", $read_part, $reg)) {
                    $unique_id = $reg[1];
                }
            } else {
                $firstchar = strtoupper($read_part[0]);
                if ($firstchar == 'T') {
                    $regpattern = $patterns[0];
                    $id = 1;
                } else {
                    if ($firstchar == 'F') {
                        $regpattern = $patterns[1];
                        $id = 2;
                    } else {
                        if ($firstchar == 'X') {
                            $regpattern = $patterns[2];
                            $id = 3;
                        } else {
                            if ($firstchar == 'C') {
                                if (strtolower($read_part[1]) == 'c') {
                                    $regpattern = $patterns[3];
                                    $id = 4;
                                } else {
                                    if (strtolower($read_part[1]) == 'o') {
                                        $regpattern = $patterns[6];
                                        $id = 7;
                                    }
                                }
                            } else {
                                if ($firstchar == 'D' && !$internaldate) {
                                    $regpattern = $patterns[4];
                                    $id = 5;
                                } else {
                                    if ($firstchar == 'S') {
                                        $regpattern = $patterns[5];
                                        $id = 6;
                                    } else {
                                        $regpattern = '';
                                    }
                                }
                            }
                        }
                    }
                }
                if ($regpattern) {
                    if (preg_match($regpattern, $read_part, $regs)) {
                        switch ($id) {
                            case 1:
                                $to = trim($regs[1]);
                                break;
                            case 2:
                                $from = trim($regs[1]);
                                break;
                            case 3:
                                $priority = $regs[1];
                                break;
                            case 4:
                                $cc = trim($regs[1]);
                                break;
                            case 5:
                                $date = $regs[1];
                                break;
                            case 6:
                                $subject = trim($regs[1]);
                                if ($subject == "") {
                                    $subject = _("(no subject)");
                                }
                                break;
                            case 7:
                                $type = strtolower(trim($regs[1]));
                                if ($pos = strpos($type, ";")) {
                                    $type = substr($type, 0, $pos);
                                }
                                $type = explode("/", $type);
                                if (!is_array($type)) {
                                    $type[0] = 'text';
                                }
                                if (!isset($type[1])) {
                                    $type[1] = '';
                                }
                                break;
                            default:
                                break;
                        }
                    }
                }
            }
        }
        if (isset($date)) {
            $date = str_replace('  ', ' ', $date);
            $tmpdate = explode(' ', trim($date));
        } else {
            $tmpdate = $date = array('', '', '', '', '', '');
        }
        if ($uid_support) {
            $messages[$msgi]['ID'] = $unique_id;
        } else {
            $messages[$msgi]['ID'] = $msg_list[$msgi];
        }
        $messages[$msgi]['TIME_STAMP'] = getTimeStamp($tmpdate);
        $messages[$msgi]['DATE_STRING'] = getDateString($messages[$msgi]['TIME_STAMP']);
        $messages[$msgi]['FROM'] = parseAddress($from);
        $messages[$msgi]['SUBJECT'] = $subject;
        //        if (handleAsSent($mailbox)) {
        $messages[$msgi]['TO'] = parseAddress($to);
        //        }
        $messages[$msgi]['PRIORITY'] = $priority;
        $messages[$msgi]['CC'] = parseAddress($cc);
        $messages[$msgi]['SIZE'] = $size;
        $messages[$msgi]['TYPE0'] = $type[0];
        $messages[$msgi]['FLAG_DELETED'] = $flag_deleted;
        $messages[$msgi]['FLAG_ANSWERED'] = $flag_answered;
        $messages[$msgi]['FLAG_SEEN'] = $flag_seen;
        $messages[$msgi]['FLAG_FLAGGED'] = $flag_flagged;
        /* non server sort stuff */
        if (!$allow_server_sort) {
            $from = parseAddress($from);
            if ($from[0][1]) {
                $from = decodeHeader($from[0][1]);
            } else {
                $from = $from[0][0];
            }
            $messages[$msgi]['FROM-SORT'] = $from;
            $subject_sort = strtolower(decodeHeader($subject));
            if (preg_match("/^(vedr|sv|re|aw):\\s*(.*)\$/si", $subject_sort, $matches)) {
                $messages[$msgi]['SUBJECT-SORT'] = $matches[2];
            } else {
                $messages[$msgi]['SUBJECT-SORT'] = $subject_sort;
            }
        }
    }
    return $messages;
}
コード例 #5
0
/**
 * Displays message header row in messages list
 *
 * @param  array $aMsg contains all message related parameters
 * @return void
 */
function printMessageInfo($aMsg)
{
    // FIX ME, remove these globals as well by adding an array as argument for the user settings
    // specificly meant for header display
    global $checkall, $color, $default_use_priority, $message_highlight_list, $index_order, $truncate_sender, $email_address, $show_recipient_instead, $use_icons, $icon_theme;
    /* icons theming */
    $color_string = $color[4];
    // initialisation:
    $mailbox = $aMsg['MAILBOX'];
    $msg = $aMsg['HEADER'];
    $t = $aMsg['INDX'];
    $start_msg = $aMsg['PAGEOFFSET'];
    $last = $aMsg['LAST'];
    if (isset($aMsg['SEARCH']) && count($aMsg['SEARCH']) > 1) {
        $where = $aMsg['SEARCH'][0];
        $what = $aMsg['SEARCH'][1];
    } else {
        $where = false;
        $what = false;
    }
    $iIndent = $aMsg['INDENT'];
    $sSubject = isset($msg['SUBJECT']) && $msg['SUBJECT'] != '' ? $msg['SUBJECT'] : _("(no subject)");
    $sFrom = isset($msg['FROM']) ? $msg['FROM'] : _("Unknown sender");
    $sTo = isset($msg['TO']) ? $msg['TO'] : _("Unknown recipient");
    $sCc = isset($msg['CC']) ? $msg['CC'] : '';
    $aFlags = isset($msg['FLAGS']) ? $msg['FLAGS'] : array();
    $iPrio = isset($msg['PRIORITY']) ? $msg['PRIORITY'] : 3;
    $iSize = isset($msg['SIZE']) ? $msg['SIZE'] : 0;
    $sType0 = isset($msg['TYPE0']) ? $msg['TYPE0'] : 'text';
    $sType1 = isset($msg['TYPE1']) ? $msg['TYPE1'] : 'plain';
    if (isset($msg['INTERNALDATE'])) {
        $sDate = getDateString(getTimeStamp(explode(' ', $msg['INTERNALDATE'])));
    } else {
        $sDate = isset($msg['DATE']) ? getDateString(getTimeStamp(explode(' ', $msg['DATE']))) : '';
    }
    $iId = isset($msg['UID']) ? $msg['UID'] : false;
    if (!$iId) {
        return;
    }
    if ($GLOBALS['alt_index_colors']) {
        if (!($t % 2)) {
            if (!isset($color[12])) {
                $color[12] = '#EAEAEA';
            }
            $color_string = $color[12];
        }
    }
    $urlMailbox = urlencode($mailbox);
    // FIXME, foldertype should be set in right_main.php
    // in other words, handle as sent is obsoleted from now.
    // We replace that by providing an array to aMailbox with the to shown headers
    // that way we are free to show the user different layouts for different folders
    $bSentFolder = handleAsSent($mailbox);
    if (!$bSentFolder && $show_recipient_instead) {
        // If the From address is the same as $email_address, then handle as Sent
        $from_array = parseAddress($sFrom, 1);
        if (!isset($email_address)) {
            global $datadir, $username;
            $email_address = getPref($datadir, $username, 'email_address');
        }
        $bHandleAsSent = isset($from_array[0][0]) && $from_array[0][0] == $email_address;
    } else {
        $bHandleAsSent = $bSentFolder;
    }
    // If this is a Sent message, display To address instead of From
    if ($bHandleAsSent) {
        $sFrom = $sTo;
    }
    // Passing 1 below results in only 1 address being parsed, thus defeating the following code
    $sFrom = parseAddress($sFrom);
    /*
     * This is done in case you're looking into Sent folders,
     * because you can have multiple receivers.
     */
    $senderNames = $sFrom;
    $senderName = '';
    $senderAddress = '';
    if (sizeof($senderNames)) {
        foreach ($senderNames as $senderNames_part) {
            if ($senderName != '') {
                $senderName .= ', ';
                $senderAddress .= ', ';
            }
            $sender_address_part = htmlspecialchars($senderNames_part[0]);
            $sender_name_part = str_replace('&nbsp;', ' ', decodeHeader($senderNames_part[1]));
            if ($sender_name_part) {
                $senderName .= $sender_name_part;
                $senderAddress .= $sender_name_part . ' <' . $sender_address_part . '>';
            } else {
                $senderName .= $sender_address_part;
                $senderAddress .= $sender_address_part;
            }
        }
    }
    // If Sent, prefix with To: but only if not Sent folder
    if ($bHandleAsSent ^ $bSentFolder) {
        $senderName = _("To") . ': ' . $senderName;
        $senderAddress = _("To") . ': ' . $senderAddress;
    }
    // this is a column property which can apply to multiple columns. Do not use vars for one column
    // only. instead we should use something like this:
    // 1ed column $aMailbox['columns']['SUBJECT'] value: aray with properties ...
    // 2ed column $aMailbox['columns']['FROM'] value: aray with properties ...
    //            NB in case of the sentfolder this could be the TO field
    // properties array example:
    //      'truncate' => length (0 is no truncate)
    //      'prefix    => if (x in b then do that )
    if ($truncate_sender > 0) {
        $senderName = truncateWithEntities($senderName, $truncate_sender);
    }
    $flag = $flag_end = $bold = $bold_end = $fontstr = $fontstr_end = $italic = $italic_end = '';
    $bold = '<b>';
    $bold_end = '</b>';
    foreach ($aFlags as $sFlag => $value) {
        switch ($sFlag) {
            case '\\flagged':
                if ($value) {
                    $flag = "<font color=\"{$color['2']}\">";
                    $flag_end = '</font>';
                }
                break;
            case '\\seen':
                if ($value) {
                    $bold = '';
                    $bold_end = '';
                }
                break;
            case '\\deleted':
                if ($value) {
                    $fontstr = "<font color=\"{$color['9']}\">";
                    $fontstr_end = '</font>';
                }
                break;
        }
    }
    if ($bHandleAsSent) {
        $italic = '<i>';
        $italic_end = '</i>';
    }
    if ($where && $what) {
        $searchstr = '&amp;where=' . $where . '&amp;what=' . $what;
    } else {
        $searchstr = '';
    }
    /*
     *  Message highlight code
     */
    $matches = array('TO' => 'sTo', 'CC' => 'sCc', 'FROM' => 'sFrom', 'SUBJECT' => 'sSubject');
    if (is_array($message_highlight_list) && count($message_highlight_list)) {
        $sTo = parseAddress($sTo);
        $sCc = parseAddress($sCc);
        foreach ($message_highlight_list as $message_highlight_list_part) {
            if (trim($message_highlight_list_part['value']) != '') {
                $high_val = strtolower($message_highlight_list_part['value']);
                $match_type = strtoupper($message_highlight_list_part['match_type']);
                if ($match_type == 'TO_CC') {
                    $match = array('TO', 'CC');
                } else {
                    $match = array($match_type);
                }
                foreach ($match as $match_type) {
                    switch ($match_type) {
                        case 'TO':
                        case 'CC':
                        case 'FROM':
                            foreach (${$matches}[$match_type] as $address) {
                                $address[0] = decodeHeader($address[0], true, false);
                                $address[1] = decodeHeader($address[1], true, false);
                                if (strstr('^^' . strtolower($address[0]), $high_val) || strstr('^^' . strtolower($address[1]), $high_val)) {
                                    $hlt_color = $message_highlight_list_part['color'];
                                    break 4;
                                }
                            }
                            break;
                        default:
                            $headertest = strtolower(decodeHeader(${$matches}[$match_type], true, false));
                            if (strstr('^^' . $headertest, $high_val)) {
                                $hlt_color = $message_highlight_list_part['color'];
                                break 3;
                            }
                            break;
                    }
                }
            }
        }
    }
    /* end Message highlight code */
    if (!isset($hlt_color)) {
        $hlt_color = $color_string;
    }
    $col = 0;
    $sSubject = str_replace('&nbsp;', ' ', decodeHeader($sSubject));
    $subject = processSubject($sSubject, $iIndent);
    echo html_tag('tr', '', '', '', 'valign="top"') . "\n";
    if (sizeof($index_order)) {
        foreach ($index_order as $index_order_part) {
            switch ($index_order_part) {
                case 1:
                    /* checkbox */
                    echo html_tag('td', addCheckBox("msg[{$t}]", $checkall, $iId), 'center', $hlt_color);
                    break;
                case 2:
                    /* from */
                    if ($senderAddress != $senderName) {
                        $senderAddress = strtr($senderAddress, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
                        $title = ' title="' . str_replace('"', "''", $senderAddress) . '"';
                    } else {
                        $title = '';
                    }
                    echo html_tag('td', $italic . $bold . $flag . $fontstr . $senderName . $fontstr_end . $flag_end . $bold_end . $italic_end, 'left', $hlt_color, $title);
                    break;
                case 3:
                    /* date */
                    if ($sDate == '') {
                        $sDate = _("Unknown date");
                    }
                    echo html_tag('td', $bold . $flag . $fontstr . $sDate . $fontstr_end . $flag_end . $bold_end, 'center', $hlt_color, 'nowrap');
                    break;
                case 4:
                    /* subject */
                    $td_str = $bold;
                    if ($iIndent) {
                        $td_str .= str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;", $iIndent);
                    }
                    $td_str .= '<a href="read_body.php?mailbox=' . $urlMailbox . '&amp;passed_id=' . $iId . '&amp;startMessage=' . $start_msg . $searchstr . '"';
                    $td_str .= ' ' . concat_hook_function('subject_link', array($start_msg, $searchstr));
                    if ($subject != $sSubject) {
                        $title = get_html_translation_table(HTML_SPECIALCHARS);
                        $title = array_flip($title);
                        $title = strtr($sSubject, $title);
                        $title = str_replace('"', "''", $title);
                        $td_str .= " title=\"{$title}\"";
                    }
                    $td_str .= ">{$flag}{$subject}{$flag_end}</a>{$bold_end}";
                    echo html_tag('td', $td_str, 'left', $hlt_color);
                    break;
                case 5:
                    /* flags */
                    // icon message markers
                    //
                    if ($use_icons && $icon_theme != 'none') {
                        $td_str = "<b><small>";
                        if (isset($aFlags['\\flagged']) && $aFlags['\\flagged'] == true) {
                            $td_str .= '<img src="' . SM_PATH . 'images/themes/' . $icon_theme . '/flagged.png" border="0" height="10" width="10" /> ';
                        }
                        if ($default_use_priority) {
                            if ($iPrio == 1 || $iPrio == 2) {
                                $td_str .= '<img src="' . SM_PATH . 'images/themes/' . $icon_theme . '/prio_high.png" border="0" height="10" width="5" /> ';
                            } else {
                                if ($iPrio == 5) {
                                    $td_str .= '<img src="' . SM_PATH . 'images/themes/' . $icon_theme . '/prio_low.png" border="0" height="10" width="5" /> ';
                                } else {
                                    $td_str .= '<img src="' . SM_PATH . 'images/themes/' . $icon_theme . '/transparent.png" border="0" width="5" /> ';
                                }
                            }
                        }
                        if ($sType1 == 'mixed') {
                            $td_str .= '<img src="' . SM_PATH . 'images/themes/' . $icon_theme . '/attach.png" border="0" height="10" width="6" />';
                        } else {
                            $td_str .= '<img src="' . SM_PATH . 'images/themes/' . $icon_theme . '/transparent.png" border="0" width="6" />';
                        }
                        $msg_icon = '';
                        if (!isset($aFlags['\\seen']) || $aFlags['\\seen'] == false) {
                            $msg_alt = '(' . _("New") . ')';
                            $msg_title = '(' . _("New") . ')';
                            $msg_icon .= SM_PATH . 'images/themes/' . $icon_theme . '/msg_new';
                        } else {
                            $msg_alt = '(' . _("Read") . ')';
                            $msg_title = '(' . _("Read") . ')';
                            $msg_icon .= SM_PATH . 'images/themes/' . $icon_theme . '/msg_read';
                        }
                        if (isset($aFlags['\\deleted']) && $aFlags['\\deleted'] == true) {
                            $msg_icon .= '_deleted';
                        }
                        if (isset($aFlags['\\answered']) && $aFlags['\\answered'] == true) {
                            $msg_alt = '(' . _("Answered") . ')';
                            $msg_title = '(' . _("Answered") . ')';
                            $msg_icon .= '_reply';
                        }
                        $td_str .= '<img src="' . $msg_icon . '.png" border="0" alt="' . $msg_alt . '" title="' . $msg_title . '" height="12" width="18" />';
                        $td_str .= '</small></b>';
                        echo html_tag('td', $td_str, 'right', $hlt_color, 'nowrap');
                    } else {
                        $stuff = false;
                        $td_str = "<b><small>";
                        if (isset($aFlags['\\answered']) && $aFlags['\\answered'] == true) {
                            $td_str .= _("A");
                            $stuff = true;
                        }
                        if ($sType1 == 'mixed') {
                            $td_str .= '+';
                            $stuff = true;
                        }
                        if ($default_use_priority) {
                            if ($iPrio == 1 || $iPrio == 2) {
                                $td_str .= "<font color=\"{$color['1']}\">!</font>";
                                $stuff = true;
                            }
                            if ($iPrio == 5) {
                                $td_str .= "<font color=\"{$color['8']}\">?</font>";
                                $stuff = true;
                            }
                        }
                        if (isset($aFlags['\\deleted']) && $aFlags['\\deleted'] == true) {
                            $td_str .= "<font color=\"{$color['1']}\">D</font>";
                            $stuff = true;
                        }
                        if (!$stuff) {
                            $td_str .= '&nbsp;';
                        }
                        $td_str .= '</small></b>';
                        echo html_tag('td', $td_str, 'center', $hlt_color, 'nowrap');
                    }
                    break;
                case 6:
                    /* size */
                    echo html_tag('td', $bold . $fontstr . show_readable_size($iSize) . $fontstr_end . $bold_end, 'right', $hlt_color);
                    break;
            }
            ++$col;
        }
    }
    /* html for separationlines between rows */
    if ($last) {
        echo '</tr>' . "\n";
    } else {
        echo '</tr>' . "\n" . '<tr><td colspan="' . $col . '" bgcolor="' . $color[0] . '" height="1"></td></tr>' . "\n";
    }
}
コード例 #6
0
ファイル: mailbox_display.php プロジェクト: jprice/EHCP
function printMessageInfo($imapConnection, $t, $not_last = true, $key, $mailbox, $start_msg, $where, $what)
{
    global $checkall, $preselected, $color, $msgs, $msort, $td_str, $msg, $default_use_priority, $message_highlight_list, $index_order, $indent_array, $pos, $thread_sort_messages, $server_sort_order, $row_count, $allow_server_sort, $truncate_subject, $truncate_sender;
    $color_string = $color[4];
    if ($GLOBALS['alt_index_colors']) {
        if (!isset($row_count)) {
            $row_count = 0;
        }
        $row_count++;
        if ($row_count % 2) {
            if (!isset($color[12])) {
                $color[12] = '#EAEAEA';
            }
            $color_string = $color[12];
        }
    }
    $msg = $msgs[$key];
    if ($mailbox == 'None') {
        $boxes = sqimap_mailbox_list($imapConnection);
        $mailbox = $boxes[0]['unformatted'];
        unset($boxes);
    }
    $urlMailbox = urlencode($mailbox);
    if (handleAsSent($mailbox)) {
        $msg['FROM'] = $msg['TO'];
    }
    $msg['FROM'] = parseAddress($msg['FROM'], 1);
    /*
     * This is done in case you're looking into Sent folders,
     * because you can have multiple receivers.
     */
    $senderNames = $msg['FROM'];
    $senderName = '';
    $senderFrom = '';
    if (sizeof($senderNames)) {
        foreach ($senderNames as $senderNames_part) {
            if ($senderName != '') {
                $senderName .= ', ';
            }
            if ($senderFrom != '') {
                $senderFrom .= ', ';
            }
            if ($senderNames_part[1]) {
                $senderName .= decodeHeader($senderNames_part[1]);
            } else {
                $senderName .= htmlspecialchars($senderNames_part[0]);
            }
            $senderFrom .= htmlspecialchars($senderNames_part[0]);
        }
    }
    $senderName = str_replace('&nbsp;', ' ', $senderName);
    echo html_tag('tr', '', '', '', 'valign="top"') . "\n";
    if (isset($msg['FLAG_FLAGGED']) && $msg['FLAG_FLAGGED'] == true) {
        $flag = "<font color=\"{$color['2']}\">";
        $flag_end = '</font>';
    } else {
        $flag = '';
        $flag_end = '';
    }
    if (!isset($msg['FLAG_SEEN']) || $msg['FLAG_SEEN'] == false) {
        $bold = '<b>';
        $bold_end = '</b>';
    } else {
        $bold = '';
        $bold_end = '';
    }
    if (handleAsSent($mailbox)) {
        $italic = '<i>';
        $italic_end = '</i>';
    } else {
        $italic = '';
        $italic_end = '';
    }
    if (isset($msg['FLAG_DELETED']) && $msg['FLAG_DELETED']) {
        $fontstr = "<font color=\"{$color['9']}\">";
        $fontstr_end = '</font>';
    } else {
        $fontstr = '';
        $fontstr_end = '';
    }
    if ($where && $what) {
        $searchstr = '&amp;where=' . $where . '&amp;what=' . $what;
    } else {
        $searchstr = '';
    }
    if (is_array($message_highlight_list) && count($message_highlight_list)) {
        $msg['TO'] = parseAddress($msg['TO']);
        $msg['CC'] = parseAddress($msg['CC']);
        foreach ($message_highlight_list as $message_highlight_list_part) {
            if (trim($message_highlight_list_part['value']) != '') {
                $high_val = strtolower($message_highlight_list_part['value']);
                $match_type = strtoupper($message_highlight_list_part['match_type']);
                if ($match_type == 'TO_CC') {
                    $match = array('TO', 'CC');
                } else {
                    $match = array($match_type);
                }
                foreach ($match as $match_type) {
                    switch ($match_type) {
                        case 'TO':
                        case 'CC':
                        case 'FROM':
                            foreach ($msg[$match_type] as $address) {
                                $address[0] = decodeHeader($address[0], true, false);
                                $address[1] = decodeHeader($address[1], true, false);
                                if (strstr('^^' . strtolower($address[0]), $high_val) || strstr('^^' . strtolower($address[1]), $high_val)) {
                                    $hlt_color = $message_highlight_list_part['color'];
                                    break 4;
                                }
                            }
                            break;
                        default:
                            $headertest = strtolower(decodeHeader($msg[$match_type], true, false));
                            if (strstr('^^' . $headertest, $high_val)) {
                                $hlt_color = $message_highlight_list_part['color'];
                                break 3;
                            }
                            break;
                    }
                }
            }
        }
    }
    if (!isset($hlt_color)) {
        $hlt_color = $color_string;
    }
    if ($checkall == 1 || in_array($msg['ID'], $preselected)) {
        $checked = ' checked="checked"';
    } else {
        $checked = '';
    }
    $col = 0;
    $msg['SUBJECT'] = decodeHeader($msg['SUBJECT']);
    //    $subject = processSubject($msg['SUBJECT'], $indent_array[$msg['ID']]);
    $subject = truncateWithEntities(str_replace('&nbsp;', ' ', $msg['SUBJECT']), $truncate_subject);
    if (sizeof($index_order)) {
        foreach ($index_order as $index_order_part) {
            switch ($index_order_part) {
                case 1:
                    /* checkbox */
                    echo html_tag('td', "<input type=\"checkbox\" name=\"msg[{$t}]\" id=\"msg" . $msg['ID'] . "\" value=\"" . $msg['ID'] . "\"{$checked}>", 'center', $hlt_color);
                    break;
                case 2:
                    /* from */
                    $from_xtra = '';
                    $from_xtra = 'title="' . $senderFrom . '"';
                    echo html_tag('td', html_tag('label', $italic . $bold . $flag . $fontstr . truncateWithEntities($senderName, $truncate_sender) . $fontstr_end . $flag_end . $bold_end . $italic_end, '', '', 'for="msg' . $msg['ID'] . '"'), 'left', $hlt_color, $from_xtra);
                    break;
                case 3:
                    /* date */
                    $date_string = $msg['DATE_STRING'] . '';
                    if ($date_string == '') {
                        $date_string = _("Unknown date");
                    }
                    echo html_tag('td', $bold . $flag . $fontstr . $date_string . $fontstr_end . $flag_end . $bold_end, 'center', $hlt_color, 'nowrap');
                    break;
                case 4:
                    /* subject */
                    $td_str = $bold;
                    if ($thread_sort_messages == 1) {
                        if (isset($indent_array[$msg['ID']])) {
                            $td_str .= str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;", $indent_array[$msg['ID']]);
                        }
                    }
                    $td_str .= '<a href="read_body.php?mailbox=' . $urlMailbox . '&amp;passed_id=' . $msg["ID"] . '&amp;startMessage=' . $start_msg . $searchstr . '"';
                    $td_str .= ' ' . concat_hook_function('subject_link', array($start_msg, $searchstr));
                    if ($subject != $msg['SUBJECT']) {
                        $title = get_html_translation_table(HTML_SPECIALCHARS);
                        $title = array_flip($title);
                        $title = strtr($msg['SUBJECT'], $title);
                        $title = str_replace('"', "''", $title);
                        $td_str .= " title=\"{$title}\"";
                    }
                    $td_str .= ">{$flag}{$subject}{$flag_end}</a>{$bold_end}";
                    echo html_tag('td', $td_str, 'left', $hlt_color);
                    break;
                case 5:
                    /* flags */
                    $stuff = false;
                    $td_str = "<b><small>";
                    if (isset($msg['FLAG_ANSWERED']) && $msg['FLAG_ANSWERED'] == true) {
                        $td_str .= _("A");
                        $stuff = true;
                    }
                    if ($msg['TYPE0'] == 'multipart' && $msg['TYPE1'] == 'mixed') {
                        $td_str .= '+';
                        $stuff = true;
                    }
                    if ($default_use_priority) {
                        if ($msg['PRIORITY'] == 1 || $msg['PRIORITY'] == 2) {
                            $td_str .= "<font color=\"{$color['1']}\">!</font>";
                            $stuff = true;
                        }
                        if ($msg['PRIORITY'] == 5) {
                            $td_str .= "<font color=\"{$color['8']}\">?</font>";
                            $stuff = true;
                        }
                    }
                    if (isset($msg['FLAG_DELETED']) && $msg['FLAG_DELETED'] == true) {
                        $td_str .= "<font color=\"{$color['1']}\">D</font>";
                        $stuff = true;
                    }
                    if (!$stuff) {
                        $td_str .= '&nbsp;';
                    }
                    do_hook("msg_envelope");
                    $td_str .= '</small></b>';
                    echo html_tag('td', $td_str, 'center', $hlt_color, 'nowrap');
                    break;
                case 6:
                    /* size */
                    echo html_tag('td', $bold . $fontstr . show_readable_size($msg['SIZE']) . $fontstr_end . $bold_end, 'right', $hlt_color);
                    break;
            }
            ++$col;
        }
    }
    if ($not_last) {
        echo '</tr>' . "\n" . '<tr><td colspan="' . $col . '" bgcolor="' . $color[0] . '" height="1"></td></tr>' . "\n";
    } else {
        echo '</tr>' . "\n";
    }
}
コード例 #7
0
/**
 * Do after address parsing handling. This is used by compose.php and should
 * be moved to compose.php.
 * The AddressStructure objetc is now obsolete and dependent parts of that will
 * be adapted so that it can make use of this function
 * After that we can remove the parseAddress method from the Rfc822Header class completely
 * so we achieved 1 single instance of parseAddress instead of two like we have now.
 *
 * @param array $aAddressList list with email address arrays
 * @param array  $aProps  associative array with properties
 * @return string
 * @public
 * @see parseRFC822Address
 * @see Rfc822Header
 * @author Marc Groot Koerkamp
 *
 **/
function processAddressArray($aAddresses, $aProps)
{
    $aPropsDefault = array('domain' => '', 'limit' => 0, 'abooklookup' => false);
    $aProps = is_array($aProps) ? array_merge($aPropsDefault, $aProps) : $aPropsDefault;
    $aProcessedAddress = array();
    foreach ($aAddresses as $aEntry) {
        /*
         * if the emailaddress does not contain the domainpart it can concern
         * an alias or local (in the same domain as the user is) email
         * address. In that case we try to look it up in the addressbook or add
         * the local domain part
         */
        if (!$aEntry[SQM_ADDR_HOST]) {
            if ($cbLookup) {
                $aAddr = call_user_func_array($cbLookup, array($aEntry[SQM_ADDR_MAILBOX]));
                if (isset($aAddr['email'])) {
                    /*
                     * if the returned email address concerns multiple email
                     * addresses we have to process those as well
                     */
                    if (strpos($aAddr['email'], ',')) {
                        /* multiple addresses */
                        /* add the parsed addresses to the processed address array */
                        $aProcessedAddress = array_merge($aProcessedAddress, parseAddress($aAddr['email']));
                        /* skip to next address, all processing is done */
                        continue;
                    } else {
                        /* single address */
                        $iPosAt = strpos($aAddr['email'], '@');
                        $aEntry[SQM_ADDR_MAILBOX] = substr($aAddr['email'], 0, $iPosAt);
                        $aEntry[SQM_ADDR_HOST] = substr($aAddr['email'], $iPosAt + 1);
                        if (isset($aAddr['name'])) {
                            $aEntry[SQM_ADDR_PERSONAL] = $aAddr['name'];
                        } else {
                            $aEntry[SQM_ADDR_PERSONAL] = encodeHeader($sPersonal);
                        }
                    }
                }
            }
            /*
             * append the domain
             *
             */
            if (!$aEntry[SQM_ADDR_MAILBOX]) {
                $aEntry[SQM_ADDR_MAILBOX] = trim($sEmail);
            }
            if ($sDomain && !$aEntry[SQM_ADDR_HOST]) {
                $aEntry[SQM_ADDR_HOST] = $sDomain;
            }
        }
        if ($aEntry[SQM_ADDR_MAILBOX]) {
            $aProcessedAddress[] = $aEntry;
        }
    }
    return $aProcessedAddress;
}
コード例 #8
0
ファイル: scraper.php プロジェクト: scottbw/ukrlp_1
            $legal = '';
        }
        #echo "legal \n";
        #echo json_encode($legal);
        #echo "\n";
        preg_match_all('|<div class="assoc">Primary contact address</div>(.*?)<div|', $code, $primary);
        if (isset($primary[1][0])) {
            $primary = trim($primary[1][0]);
        } else {
            $primary = '';
        }
        #echo "primary \n";
        #echo json_encode($primary);
        #echo "\n";
        $primary = parseAddress($primary);
        $legal = parseAddress($legal);
        if (trim($name) != '') {
            scraperwiki::save_sqlite(array('ukprn'), array('ukprn' => clean($num), 'instname' => clean($name), 'trading' => clean($trading)), "data");
        }
        scraperwiki::save_var('counter', $counter);
    }
    $counter++;
    if ($counter >= $max) {
        scraperwiki::save_var('counter', 10000000);
        $i = 1001;
    }
}
function parseAddress($val)
{
    preg_match_all('|<strong>Telephone: </strong>(.*?)<br />|', $val, $phone);
    if (isset($phone[1][0])) {
コード例 #9
0
ファイル: imap_messages.php プロジェクト: jprice/EHCP
/**
 * Retrieves a list with headers, flags, size or internaldate from the imap server
 */
function sqimap_get_small_header_list($imap_stream, $msg_list, $show_num = false)
{
    global $squirrelmail_language, $color, $data_dir, $username, $imap_server_type;
    global $uid_support, $allow_server_sort;
    /* Get the small headers for each message in $msg_list */
    $maxmsg = sizeof($msg_list);
    if ($show_num != '999999') {
        $msgs_str = sqimap_message_list_squisher($msg_list);
    } else {
        $msgs_str = '1:*';
    }
    $messages = array();
    $read_list = array();
    /*
     * We need to return the data in the same order as the caller supplied
     * in $msg_list, but IMAP servers are free to return responses in
     * whatever order they wish... So we need to re-sort manually
     */
    for ($i = 0; $i < sizeof($msg_list); $i++) {
        $messages["{$msg_list[$i]}"] = array();
    }
    $internaldate = getPref($data_dir, $username, 'internal_date_sort', SMPREF_ON);
    if ($internaldate) {
        $query = "FETCH {$msgs_str} (FLAGS UID RFC822.SIZE INTERNALDATE BODY.PEEK[HEADER.FIELDS (Date To Cc From Subject X-Priority Importance Priority Content-Type)])";
    } else {
        $query = "FETCH {$msgs_str} (FLAGS UID RFC822.SIZE BODY.PEEK[HEADER.FIELDS (Date To Cc From Subject X-Priority Importance Priority Content-Type)])";
    }
    $read_list = sqimap_run_command_list($imap_stream, $query, true, $response, $message, $uid_support);
    $i = 0;
    foreach ($read_list as $r) {
        /* initialize/reset vars */
        $subject = _("(no subject)");
        $from = _("Unknown Sender");
        $priority = 0;
        $messageid = '<>';
        $type = array('', '');
        $cc = $to = $inrepto = '';
        $size = 0;
        // use unset because we do isset below
        unset($date);
        $flag_seen = $flag_answered = $flag_deleted = $flag_flagged = false;
        $read = implode('', $r);
        /*
         * #id<space>FETCH<space>(
         */
        /* extract the message id */
        $i_space = strpos($read, ' ', 2);
        $id = substr($read, 2, $i_space - 2);
        $fetch = substr($read, $i_space + 1, 5);
        if (!is_numeric($id) && $fetch !== 'FETCH') {
            set_up_language($squirrelmail_language);
            echo '<br /><b><font color="' . $color[2] . '">' . _("ERROR: Could not complete request.") . '</b><br />' . _("Unknown response from IMAP server:") . ' 1.' . htmlspecialchars($read) . "</font><br />\n";
            break;
        }
        $i = strpos($read, '(', $i_space + 5);
        $read = substr($read, $i + 1);
        $i_len = strlen($read);
        $i = 0;
        while ($i < $i_len && $i !== false) {
            /* get argument */
            $read = trim(substr($read, $i));
            $i_len = strlen($read);
            $i = strpos($read, ' ');
            $arg = substr($read, 0, $i);
            ++$i;
            switch ($arg) {
                case 'UID':
                    $i_pos = strpos($read, ' ', $i);
                    if (!$i_pos) {
                        $i_pos = strpos($read, ')', $i);
                    }
                    if ($i_pos) {
                        $unique_id = substr($read, $i, $i_pos - $i);
                        $i = $i_pos + 1;
                    } else {
                        break 3;
                    }
                    break;
                case 'FLAGS':
                    $flags = parseArray($read, $i);
                    if (!$flags) {
                        break 3;
                    }
                    foreach ($flags as $flag) {
                        $flag = strtolower($flag);
                        switch ($flag) {
                            case '\\seen':
                                $flag_seen = true;
                                break;
                            case '\\answered':
                                $flag_answered = true;
                                break;
                            case '\\deleted':
                                $flag_deleted = true;
                                break;
                            case '\\flagged':
                                $flag_flagged = true;
                                break;
                            default:
                                break;
                        }
                    }
                    break;
                case 'RFC822.SIZE':
                    $i_pos = strpos($read, ' ', $i);
                    if (!$i_pos) {
                        $i_pos = strpos($read, ')', $i);
                    }
                    if ($i_pos) {
                        $size = substr($read, $i, $i_pos - $i);
                        $i = $i_pos + 1;
                    } else {
                        break 3;
                    }
                    break;
                case 'INTERNALDATE':
                    $date = parseString($read, $i);
                    //if ($tmpdate === false) break 3;
                    //$tmpdate = str_replace('  ',' ',$tmpdate);
                    //$tmpdate = explode(' ',$tmpdate);
                    //$date = str_replace('-',' ',$tmpdate[0]) . " " .
                    //                            $tmpdate[1] . ' ' . $tmpdate[2];
                    break;
                case 'BODY.PEEK[HEADER.FIELDS':
                case 'BODY[HEADER.FIELDS':
                    $i = strpos($read, '{', $i);
                    $header = parseString($read, $i);
                    if ($header === false) {
                        break 2;
                    }
                    /* First we replace all \r\n by \n, and unfold the header */
                    $hdr = trim(str_replace(array("\r\n", "\n\t", "\n "), array("\n", ' ', ' '), $header));
                    /* Now we can make a new header array with */
                    /* each element representing a headerline  */
                    $hdr = explode("\n", $hdr);
                    foreach ($hdr as $line) {
                        $pos = strpos($line, ':');
                        if ($pos > 0) {
                            $field = strtolower(substr($line, 0, $pos));
                            if (!strstr($field, ' ')) {
                                /* valid field */
                                $value = trim(substr($line, $pos + 1));
                                switch ($field) {
                                    case 'to':
                                        $to = $value;
                                        break;
                                    case 'cc':
                                        $cc = $value;
                                        break;
                                    case 'from':
                                        $from = $value;
                                        break;
                                    case 'date':
                                        $date = $value;
                                        break;
                                    case 'x-priority':
                                    case 'importance':
                                    case 'priority':
                                        $priority = parsePriority($value);
                                        break;
                                    case 'subject':
                                        $subject = $value;
                                        if ($subject == "") {
                                            $subject = _("(no subject)");
                                        }
                                        break;
                                    case 'content-type':
                                        $type = strtolower($value);
                                        if ($pos = strpos($type, ";")) {
                                            $type = substr($type, 0, $pos);
                                        }
                                        $type = explode("/", $type);
                                        if (empty($type[0])) {
                                            $type[0] = 'text';
                                            // I had this added, but not committed to CVS.... did it help fix something?
                                            //                                    $type[1] = 'plain';
                                        }
                                        if (empty($type[1])) {
                                            $type[1] = 'plain';
                                        }
                                        break;
                                    default:
                                        break;
                                }
                            }
                        }
                    }
                    break;
                default:
                    ++$i;
                    break;
            }
        }
        if (isset($date)) {
            $date = str_replace('  ', ' ', $date);
            $tmpdate = explode(' ', trim($date));
        } else {
            $tmpdate = $date = array();
        }
        if ($uid_support) {
            $msgi = "{$unique_id}";
            $messages[$msgi]['ID'] = $unique_id;
        } else {
            $msgi = "{$id}";
            $messages[$msgi]['ID'] = $id;
        }
        $messages[$msgi]['TIME_STAMP'] = getTimeStamp($tmpdate);
        $messages[$msgi]['DATE_STRING'] = getDateString($messages[$msgi]['TIME_STAMP']);
        $messages[$msgi]['FROM'] = $from;
        //parseAddress($from);
        $messages[$msgi]['SUBJECT'] = $subject;
        //        if (handleAsSent($mailbox)) {
        $messages[$msgi]['TO'] = $to;
        //parseAddress($to);
        //        }
        $messages[$msgi]['PRIORITY'] = $priority;
        $messages[$msgi]['CC'] = $cc;
        //parseAddress($cc);
        $messages[$msgi]['SIZE'] = $size;
        $messages[$msgi]['TYPE0'] = $type[0];
        $messages[$msgi]['TYPE1'] = $type[1];
        $messages[$msgi]['FLAG_DELETED'] = $flag_deleted;
        $messages[$msgi]['FLAG_ANSWERED'] = $flag_answered;
        $messages[$msgi]['FLAG_SEEN'] = $flag_seen;
        $messages[$msgi]['FLAG_FLAGGED'] = $flag_flagged;
        /* non server sort stuff */
        if (!$allow_server_sort) {
            $from = parseAddress($from);
            if ($from[0][1]) {
                $from = decodeHeader($from[0][1], true, false);
            } else {
                $from = $from[0][0];
            }
            $messages[$msgi]['FROM-SORT'] = $from;
            $subject_sort = strtolower(decodeHeader($subject, true, false));
            if (preg_match("/^(?:(?:vedr|sv|re|aw|fw|fwd|\\[\\w\\]):\\s*)*\\s*(.*)\$/si", $subject_sort, $matches)) {
                $messages[$msgi]['SUBJECT-SORT'] = $matches[1];
            } else {
                $messages[$msgi]['SUBJECT-SORT'] = $subject_sort;
            }
        }
        ++$msgi;
    }
    array_reverse($messages);
    $new_messages = array();
    foreach ($messages as $i => $message) {
        $new_messages[] = $message;
    }
    return $new_messages;
}
コード例 #10
0
ファイル: 0029157.php プロジェクト: Nikitian/fl-ru-damp
ini_set('max_execution_time', 0);
ini_set('memory_limit', '512M');
if (!isset($_SERVER['DOCUMENT_ROOT']) || !strlen($_SERVER['DOCUMENT_ROOT'])) {
    $_SERVER['DOCUMENT_ROOT'] = rtrim(realpath(pathinfo(__FILE__, PATHINFO_DIRNAME) . '/../../../'), '/');
}
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/stdf.php";
//require_once($_SERVER['DOCUMENT_ROOT'] . '/siteadmin/reserves/models/ReservesArchiveModel.php');
//require_once($_SERVER['DOCUMENT_ROOT'] . '/classes/country.php');
//require_once($_SERVER['DOCUMENT_ROOT'] . '/classes/city.php');
//------------------------------------------------------------------------------
$adrs = array("109147, Россия, г. Москва, ул. Марксистская д. 34 корп. 8", "124482, г.Москва, г.Зеленоград, ул.Юности, д.8, офис 619", "628400, Россия, Сургут г, Флегонта Показаньева ул, дом № 6, кв.4", "125124, Россия, г. Москва, ул. Ямского Поля 5-я,  д. 5, стр. 1", "424006, Россия, г. Йошкар-Ола, ул. Пугачева, 1", "124681, г. Москва, Зеленоград, корп. 1805, кв. 93", "355901, Россия, г. Краснодар, ул. Им. Героя Яцкова д 2 кв. 78", "115280, Россия, г. Москва, ул. Ленинская Слобода, 19, стр. 7", "125130, Россия, г. Москва, ул. 6-й Новоподмосковный пер-к д. 3 кв. 94", "456219, Россия, Челябинская область, г. Златоуст, пр. Гагарина, 1-я линия, д.10 В", "129346, г. Москва, ул. Напрудная 1-я, д.19", "196084, Россия, г. Санкт-Петербург, ул. Ташкентская д.1А", "111024, г. Москва, ул. 2-я Энтузиастов, дом.5, корпус 4, офис 404", "630108, Россия, г. Новосибирск, ул. Станционная, д. 38", "400011, Россия, г. Волгоград, ул. 35-Гвардейской, д. 7, кв. 47", "400123, Россия, г. Волгоград, ул. Верхоянская, 12", "115201, Россия, г. Москва, 1-ыи&#774;, Варшавскии&#774; проезд, д.2, стр.12", "143432, Россия, г. Нахабино, а/я 764", "690033, Россия, г. Владивосток, ул. Иртышская, 12", "141070, Россия, Московская область, Королев, пр-кт Космонавтов, д.13, кв.11", "617760, Россия, г. Чайковский, Приморский б-р, д 32а, оф 227", "140180,Россия, г. Жуковский, ул. Праволинейная д. 33 оф.118", "423819, Россия, г. Набережные Челны, а/я 144", "170100, Россия, г. Тверь, ул. Советская д. 62 кв. 19", "107140, Россия, г.Москва, Комсомольская пл. д. 6 стр. 1 офис 390", "129075, Россия, г. Москва, ул. Аргуновская д. 2 корп. 1 оф. 1203", "192148, Россия, г. Санкт-Петербург, пр. Елизарова д. 38А оф. 224", "107076, Россия, г. Москва,", "614064, Россия, г. Пермь, ул. Усольская д 15", "614007, Россия, г. Пермь, ул. Максима Горького д 65 корпус А", "129085, Россия, г.Москва, Проспект Мира, д. 101, стр. 1", "127051, Россия, г. Москва, Большой Сухаревский переулок, д11, офис 7", "153003, Россия, г. Иваново, проспект Ленина, д. 84", "163000, Россия, г. Архангельск, пр. Троицкий, д.37, корп. 1, офис 29", "603009, Россия, Нижний Новгород, а/я 31", "624130, Россия, г.Новоуральск, ул.Фрунзе д. 5, кв. 3", "199226, Россия, г. Санкт-Петербург,  Морская набережная д 17 кв. 647", "121099, Москва, Смоленская набережная, д. 5\v, к.204", "111675, Россия, г. Москва, ул. Святоозерская, 14-267", "142611,Россия, г. Орехово-Зуево, проезд Заготзерно, д. 5", "170001, Россия, г. Тверь, ул. Двор Пролетарки д. 10А", "607188, Россия, г.Саров, ул. Димитрова, 12", "344009, Россия, г.Ростов-на-Дону, пер. Рыльского 2/4.", "173000, Великий Новгород, а\\я 79", "199155, Россия, Санкт-Петербург, пр. Кима, д.28 лит. Б,", "420126, г.Казань, ул. Лаврентьева 3а, оф. 329", "117485, Россия, г. Москва, ул. Бутлерова, д. 7", "142784,Россия, г.Москва, д.Румянцево, строение 2", "454084, Россия, г.Челябинск, проспект Победы, д 160 кв 329", "127081, Россия, г. Москва, пр. Дежнева д.38 кв. 114", "644047, Россия, г. Омск, ул. Чернышевского, д. 23, офис 20", "196247, Россия, Санкт-Петербург, пр. Ленинский, д. 160, оф. 3-06", "620073, Россия, г. Екатеринбург, ул. Родонитовая д. 5 кв. 1", "123458, г. Москва, ул. Твардовского, д.8, стр.1", "115093, Россия, г. Москва, ул. Павловская 27/29", "144009,Россия, г.Электросталь, ул. Корнеева, д.6Б", "191023, Россия, г. Санкт-Петербург, ул. Гороховая, д 28, пом. 6-Н", "410031, г.Саратов,  ул.Волжская дом 28, офис 10.7", "620043, Россия, г. Екатеринбург, ул. Репина, д. 93, кв. 152", "620025, Россия, г. Екатеринбург, пер. Утренний 1г", "127576, Россия, Москва, ул. Угличская, д.20, кв30", "107140, Россия,  г. Москва, пер. 1-й Красносельский, д.3, оф.114", "450006, Россия, г. Уфа, Ивана Якутова д 3/5 оф 48", "125464, Россия, г. Москва, ул. Митинская, д. 12, кв. 149", "192283, Россия, г. Санкт-Петербург, ул. Белы Куна д 3 офис 807", "127273, Россия, г.Москва, ул.Отрадная д.1. кв.43", "105005, Россия, г Москва, Бауманская ул., д.16", "450112, Россия, г. Уфа, ул. Ульяновых, 50, оф. 11", "454084, Россия, г. Челябинск, ул. Кирова, д. 19, офис 705", "127083, Россия, г. Москва, ул. Верхн. Масловка д. 28 корп. 2 пом. II ком.12В", "125315, Россия, г. Москва, пр-кт Ленинградский д. 80 к. 21 пом. I к. 47", "394036, Россия, г.Воронеж, ул.Студенченская д17 оф.325", "105120, Россия, г. Москва, Костомаровский пер., д.3, стр. 4.", "127254, Россия, г. Москва, Проспект Мира 101", "111024, Россия, г.Москва, Шоссе Энтузиастов, д.17, этаж 5", "410056, Россия, г.Саратов, ул.Рабочая д.62/68 кв.105", "664003, Россия, г. Иркутск, ул. Литвинова, д 18, оф.265", "426000, Россия, г. Ижевск, ул. Дзержинского, д. 71А оф. 108", "124489, Россия, Зеленоград, Сосновая аллея, дом 4 стр. 2 офис 303", "344002, Россия, г. Ростов-на-Дону, пр-кт Буденновский 42/50", "197101, Россия, г. Санкт-Петербург, ул. Большая Монетная, д.16, корпус 1, литер В.197101, Санкт-Петербург, ул. Большая Монетная д.16 корп.1 (вход напротив Малой Монетной ул.), п/я 6", "142770 г. Москва  п. Сосенское п. Коммунарка  ул. Лазурная д. 8 кв. 84", "150000, Казахстан, г. Петропавловск, ул. Казахстанской правды 94а", "194064, Россия, Санкт-Петербург, Тихорецкий просп. 11, Литер В, пом. 17-Н", "630049, Россия, г. Новосибирск, ул. Красный проспект д 220/5", "421001, Россия, г. Казань, ул. Адоратского д. 3", "141070, Россия, г. Королев, пр-т Космонавтов д. 13-11", "192241,Россия, Санкт-Петербург г, Софийская ул, дом № 35, корпус 3, квартира 141", "194100, Россия, г. Санкт-Петербург, Выборгская наб. 51", "197348, Россия, г. Санкт-Петербург, ул. Аэродромная, 6 оф.212", "360051, Россия, г.Нальчик, пр.им.К.Кулиева, 10 офис 123", "630054, Россия, г. Новосибирск, ул.Костычева д 20 кв 151", "350042, Россия, г. Краснодар, ул. Гражданская, 6. кв. 27", "105568, Россия, г. Москва, Строительный проезд д. 7а к. 11а", "129626, Россия, г. Москва , Мытищинская 3-я ул д. 16 стр. 1 оф. 5", "652882, Россия, г.Междуреченск, пр.Строителей 67", "121596, Россия, г.Москва, ул.Горбунова, д.2, стр.204, пом.II, этаж 6, комн 5А", "121357,Россия, Москва, ул. Верейская, д. 29, стр. 154, оф. 49", "195009, Россия, г. Санкт-Петербург, ул. Минеральная, д.29 (а/я 107)", "630099, Россия, г. Новосибирск, Вокзальная магистраль, д. 16, офис 436", "677000,Россия,  г.Якутск, Главпочтамт, а/я 76", "622001, Россия, г.Нижний Тагил, ул.Носова д.1", "620072, Россия, г. Екатеринбург, ул. Новгородцевой 11-251", "622015, Россия, Свердловская обл., г. Нижний Тагил, ул. Вязовская д.11 кв. 73", "115142, г. Москва, Ул. Кленовый б-р, д.17, корп. 2, кв. 111", "654038, Россия, г. Новокузнецк, ул. Климасенко д. 1 корп. 5 кв. 3", "630100, Россия, Новосибирск, ул. Коммунистическая, 21", "129323, Россия, г. Москва, ул Седова д 8. к1, кв306", "353900, Россия, г. Новороссийск, ул. Энгельса, д. 7, офис 240", "141200, Россия, г. Пушкино, Московский пр. д. 7а", "140125, Россия, дер. Чулково, д.104", "125190, Россия, г. Москва, ул. Ленинградский пр-т,  д. 80, корп. 17", "115230, Россия, г. Москва, Варшавское шоссе, дом 47, корп. 4", "620137, Россия, г. Екатеринбург, ул. Советская д.62 кв.191", "672003, г. Чита, ул. Норильская, 3", "127273, Россия, г.Москва, Берёзовая аллея, д.5а, стр.6, 2 этаж, оф. 34", "127106, Россия,  г.Москва,  Алтуфьевское шоссе, д.13, корп.5", "111401, Россия, г. Москва, ул. 3-я Владимирская, д.30, кв.55 (только для отправки корреспонденции)", "620137, Россия, г. Екатеринбург, ул. Д. Зверева д. 23 подъезд 7 офис 39", "191014, Россия, г. Санкт-Петербург, ул. Чехова, дом 14Б, лит. А", "199106, Россия, Санкт-Петербург, В.О. 26-ая линия, д. 15/2", "300041, Россия, г. Тула,  Красноармейский проспект д. 25", "115516, Россия, Москва, ул. Промышленная, д. 10", "620027, Россия, г. Екатеринбург, ул. Мамина-Сибиряка, 2а, маг. Форд-66", "111397, Россия, г.Москва, ул Новогиреевская, д. 28, кв 327", "107076, Россия, г. Москва, ул Матросская Тишина, д 23, стр 1", "115201, Россия, г. Москва, 1-ый Варшавский проезд, д.2, стр.12", "115230, Россия, г. Москва, Варшавское шоссе, д. 47, корп.4, пом. XII, комн.15", "620014, Россия, г. Екатеринбург, ул. Добролюбова, д.16, офис 302", "115582, Россия, г. Москва, Ореховый б-р, д. 10/2 кв. 582", "125363, Россия, г. Москва, ул. Сходненская д.33 корпус 1", "420031, Россия, г.Казань, ул. Карбышева д.60, кв 26/1", "660074, Россия, г.Красноярск, ул. Софьи Ковалевской д 2 кв 95", "111399, Россия, г. Москва, ул. Мартеновская, д.6, к.3, кв. 4", "603064, Россия, г. Нижний Новгород, ул. Окская гавань, д.3, стр.4, оф.302", "625026, Россия, г Тюмень, ул 50 лет ВЛКСМ д51, офис 705", "445043, Россия, г. Тольятти, ул. Южное шоссе, 161, Технопарк «Жигулевская Долина», корпус 2.1.,  Блок С, офис 135.5", "614007, Россия, г. Пермь, ул. Революции, 3/7 оф.313 для ООО &quot;ПрофБухгалтерия&quot;", "350033,Россия, г.Краснодар, ул. Железнодорожная   31", "125009, Россия, г. Москва, Кузнецкий мост д. 6/3 стр. 3", "143055, Россия, с. Ершово, дом 51а", "194044, Россия, г. Санкт-Петербург, Пироговская наб, 17, оф. 205", "143405, Красногорск, Красногорский бульвар, 9, 69", "123317, Россия, г. Москва, Красногвардейский бульвар, д. 7А", "628426, Россия, г. Сургут, ул. Быстринская, д.8, корп.1", "129337, Россия, г. Москва, Ярославское шоссе, д. 63", "443030, Россия, г. Самара, ул. Пятигорская, д.17", "107113, Россия,  г. Москва, ул. Маленковская д. 14 корп. 3 пом. 4", "443072, г. Самара, Волжское шоссе 123-33", "121096, Россия, Москва г, Минская ул, дом №8, корпус 1, ква. 72", "143986, Россия, г. Железнодорожный, ул. Пионерская д. 8 кв. 38", "109377, Россия, г.Москва, Рязанский проспект,д. 32, корп. 3 офис 309а", "443086, г.Самара, ул.Скляренко, д 26 эт 8 оф 7", "142004, Московская область, г.Домодедово, ул.Корнеева, д.36, а/я 656", "308019, Россия, г. Белгород, ул. Восточная 71 5 этаж", "624134, Россия, г.Новоуральск ул.Чурина, д. 12/1, кв.113", "125009, Россия, г. Москва, ул. Тверская д.7, а/я 81, «БИАТ»", "426003, Россия, г. Ижевск, ул. К.Маркса 23а, офис 213", "109012, Россия,  г. Москва, ул. Ильинка д. 4 антресоль 2-го этж пом. 5-6 комн. 1", "111402, Россия, г.Москва, аллея Жемчуговой, д.5, корп.2", "675000, Россия, г.Благовещенск, ул Амурская, д 20 оф ООО ТИМ", "450075, Россия, г.Уфа, ул. Коммунистическая 80 офис 501", "109341, Россия,  г.Москва, ул.Новомарьинская, д.3, к.1, кв.14", "115114, Россия, Москва, ул. Дербеневская 11 (для Марии Сизовой)", "620049, Россия, г. Екатеринбург, а/я 125", "197342, Россия, г.Санкт-Петербург, ул. Торжковская, дом 5, оф. 225", "127238, Россия, г.Москва, Дмитровское шоссе, дом 48, кор 2, кв. 57", "119454,Россия, г. Москва, проспект Вернадского, д. 24, оф. 3", "600901, Россия, г. Владимир, Юрьевец, ул. Ноябрьская, 145", "123001, Россия, Москва,  ул. Спиридоновка д. 27/24", "620137, Россия, г. Екатеринбург, проезд Промышленный 2б, офис 411", "400131, Россия, г.Волгоград, ул. Рокоссовского, 1 Д", "125222, г.Москва, ул.Митинская, д.17, кв.12", "443072, Россия, г. Самара, ул. Волжское шоссе д123 кв.33", "344010, Россия, г. Ростов-на-Дону, ул. Текучева 183", "20520, Финляндия, Турку, Лайтайнен 5 С 25", "111141, Россия, г. Москва, ул. Плеханова, д. 7", "125371, Россия, г. Москва, а/я 38", "г. Москва, ул. Ярцевская, 121552, дом 34, стр.1, офис 13", "625000, г.Тюмень, ул. Республики, 61, офис 522", "170100, г. Тверь, ул. Жигарева д.44 - 7", "630004, Россия, г.Новосибирск, ул.Ленина, д. 52, оф. 803", "350090, Россия, г. Краснодар, проезд Репина д. 28 кв. 217", "450022, Россия, г.Уфа, ул.Бакалинская 7", "443081, г.Самара, ул.Стара Загора д.27", "443013, Россия, г. Самара, Московское ш., д. 3, оф. 411 А", "105264, г. Москва, 10-я Парковая 18", "238051, Россия, Гусев, пр-д Ленина, 1 &quot;А&quot;, литер Б", "420073, Россия, г. Казань, ул. Гвардейская , 16Б, оф. 403", "121357, Россия, г. Москва ул. Верейская, д.29, стр.133", "420126, Россия, г. Казань, ул. Амирхана, д. 10а, а/я 231", "620048, Россия, г. Екатеринбург, ул. Звездная 8-13", "117452, Москва, Черноморский б-р 13-1-37", "195298, Россия, Санкт-Петербург, а/я 121, Оннинен", "115114, Россия, г Москва, Дербеневская набережная, д. 7 стр 8", "248000, Россия, г.Калуга, ул.Набережная д.25", "117556, Россия,Москва, Варшавское шоссе, 95 к1, минус 1 этаж, офис 20.", "115280, Россия, г. Москва, ул. Автозаводская, дом 25", "196191, Россия, г. Санкт-Петербург, ул.Бассейная, д.21, лит.А", "443068, Россия, г. Самара, а/я 1674", "197374, Россия, г. Санкт-Петербург,  ул. Савушкина д. 126 лит. А офис 2204", "194021, Россия, г. Санкт-Петербург, ул Шателена, д 2, корп 2, кв 57", "119313, Россия, г. Москва, Ленинский пр-кт д. 90 кв. 213", "105318, Россия,  г. Москва, ул. Вельяминовская д. 34", "195273, Россия, г. Санкт-Петербург, пр. Науки д. 69 кв. 29", "117292, Россия, г. Москва, ул. Кржижановского, д.1, кв.19", "295011, Россия, г. Симферополь, ул. Русская д. 17, офис 6", "109052, Россия, г. Москва, ул. Нижегородская д. 104 корп. 3", "105005, Россия, г. Москва, ул. Бауманская, дом 43/1, строение 1, комн. 415", "127006, Россия, г. Москва, ул. Малая Дмитровка, д. 12 стр. 2", "197110, Россия, г. Санкт-Петербург, ул. Новоладожская, д. 4, корпус 1, Литер П", "214018, г. Смоленск, ул. Памфилова, д. 5, оф. 312", "344002, Россия, г.Ростов-на-Дону, ул.Московская, 63, оф.325", "424006, Россия, г. Йошкар-Ола, ул. Гончарова, д. 18, кв. 48", "186730, Россия, г. Лахденпохья, ул. Ленина д. 30", "628606, Россия, г. Нижневартовск, ОПС-6, а/я 206", "170028, Россия, г.Тверь, ул.Орджоникидзе, д.47а", "603003, Россия, г. Нижний Новгород, ул. Свободы, 63, корпус 1, офис 401", "190020, Россия, г. Санкт-Петербург, ул.Лифляндская д.6 лит.А", "109004, Россия, г.Москва, Тетеринский пер., д.16, ком. ТАРП ЦАО", "109012, Россия,  г. Москва, ул. Ильинка, д. 4, антресоль 2-го этж, пом. 5-6, комн. 1", "142600, Россия, г. Орехово-Зуево, улица Ленина, дом 90 ТЦ &quot;Английский Пассаж&quot;, павильон 31", "450077,  Россия, г. Уфа, ул. Чернышевского, д.82, оф. 616", "192019, Россия, г. Санкт-Петербург,ул.Книпович д.15Б пом.105", "350080, Россия, г. Краснодар, ул. Бородинская д. 160/3", "603124, Россия, г. Н. Новгород, Московское шоссе, 294 Б, кабинет 308", "115419, Россия, г. Москва, 2-ой Рощинский пр-д, д.8, ООО «Телемарк Ай Ти»", "456530, Россия, п.Есаульский, ул.Юбилейная 16", "198216 Санкт-Петербург Ленинский проспект, д. 135, а/я 111", "119121, Россия, Москва, Новоконюшенный пер., д. 9, стр. 2", "125040, Россия, г. Москва, ул. Расковой д. 10 стр. 4", "420021, Россия, г.Казань, ул. Парижской Коммуны, д. 14, оф. 9", "295017, Россия, Республика Крым, г. Симферополь, ул. Шмидта, 9", "141895, Россия, пос.совхоза Останкино, ул. Дорожная, д.3", "129323, Россия, г. Москва, а/я 4", "664035, Россия, г. Иркутск, Шевцова ул., дом № 68, оф. 205", "194354, Россия, Санкт-Петербург, ул. Есенина 1, корп. 1, кв. 1534", "628405, Россия, г. Сургут, проспект Комсомольский д. 12/1 оф. 10", "300057, Россия, г. Тула, квартал Малые Гончары 14, 2-й подъезд", "105082, Россия, г. Москва, ул. Почтовая Малая д. 12 стр. 5", "117587, Россия, г. Москва, а/я 136", "193312, Россия, г. Санкт- Петербург , ул. Коллонтай, дом 31, корп.2, кв.96", "193318, Россия, Санкт-Петербург, Клочков пер., д.8, кв. 26", "620017, Россия, г. Екатеринбург, ул. Фронтовых бригад  д.18а, оф.307", "603107, Россия, г.Нижний Новгород, а/я20", "121170. г. Москва, Площадь Победы, д. 1 Д", "140181, Россия, г. Жуковский, ул. Менделеева д.11/4", "450006, Россия, г.Уфа, а/я 31", "456317, Россия, г.Миасс, улица Академика Павлова, дом 23, кв. 149", "350072, Россия, г. Краснодар, ул. Аксайская д. 40 корп.Б оф. 11", "123007, Россия, г. Москва, 2-й Магистральный тупик д. 7а стр.2", "197374, Россия, Санкт-Петербург, Торфяная дорога, дом 7, лит. Ф, офис 724 (Бизнес-центр 2)", "191040, Россия, Санкт-Петербург, Лиговский пр., дом 50, корп. 1, офис 12", "191119, Россия, г. Санкт-Петербург, ул.Марата, д.80 лит. Б пом. 1Н", "117342, Россия, Москва. ул. Обручева, д.34/63, стр.1", "628422, Россия,  г. Сургут,  ул. Аэрофлотская, д.6", "167000, Россия, г. Сыктывкар, ул. Первомайская, д 145 кв 22", "143180,Россия, г Звенигород, мкр Генерала Пронина, д 10, кв 68", "123007, Россия, г.Москва, Хорошевское шоссе д. 12 к. 1 офис 317", "115470, Россия, г. Москва, улица Новинки, д. 21", "656006, Россия, г. Барнаул, ул. Гридасова д 20", "140108, Московская область г.Раменское ул. Гурьева, д.26/530", "125581, Россия, г. Москва, ул. Флотская д.13 корп.2  кв.292", "125445, Россия, г. Москва , Ленинградское шоссе, д.120", "420127, Россия, г.Казань, ул. Академика Павлова, д.15, оф.86", "241035, Россия, г. Брянск, ул. Институтская д. 15, офис 231", "119454, Россия, г. Москва, Проспект Вернадского, д. 12Д", "119049, ул. Ленинский проспект д. 4 стр. 1А", "127473, Россия, г. Москва, ул. Краснопролетарская, д. 16, стр.1", "664082, Россия, Иркутск , мкр. Университетский д.2, а/я 406", "115114,Россия, г. Москва, ул. Летниковская, д.6А, офис.7А", "456217,Россия, Челябинская область, г.Златоуст, ул.Урицкого, д.36,кв.4", "050010,Казахстан ,г. Алматы, Медеуский район, ж.р Жана Коктобе, Ул. З. Космодемьянской, 2/1A", "119019, Россия, г. Москва, Малый Афанасьевский переулок, дом 7", "215110, Россия, г. Вязьма, ул. Кронштадтская д 111", "423827, Россия, г.Набережные Челны, б-р Юных Ленинцев, д. 1, кв. 402", "614056, Россия, г. Пермь, а/я 5570", "115093, Россия, г. Москва, Партийный пер. д. 1 а/я 22", "105082, Россия, г. Москва, ул.Бакунинская д 69 стр.1,", "195426, Россия, г. Санкт-Петербург , ул. Ленская, дом № 1, корпус 1, кв.12", "675000, Россия, г.Благовещенск, ул.Горького д.56 оф.419", "141400, Россия, г. Химки, ул. Союзная, дом 7", "111395, Россия, Москва, ул Красный Казанец, 6 стр 4.", "140108, Россия, г. Раменское, ул. Гурьева д.26 кв 530", "432071, Россия, г. Ульяновск, ул. Урицкого 96А", "603069,г.Н.Новгород, ул.Ореховская, 80т", "121096, г.Москва, ул.2-ая Филевская д 7 корп 6", "347900, Россия, г. Таганрог, ул. Фрунзе 43, оф 26", "117218, Россия, Москва, Кржижановского ул, дом № 23, корпус 2", "00075, г.Волгоград, ул.Историческая д 179", "630126, Россия, г. Новосибирск, ул. Выборная, 211", "142784, Россия, д. Румянцево, стр. 2, а/я 11", "109651, Россия, г Москва, ул. Маршала Голованова д.2 кв.170", "141206, Россия, г. Пушкино, ул. Западная, д. 7", "192012, Россия, Санкт-Петербург, пр. Обуховской обороны, д. 129, лит. Л", "143405, Московская обл., г.Красногорск, ул.Авангардная д.8 кв.429", "454036, г. Челябинск, Свердловский тракт, дом № 12", "185016, Россия, г. Петрозаводск, Лососинское шоссе, 37", "192102, Россия, Санкт-Петербург, а/я 210", "400001, Россия, г. Волгоград, ул. Социалистическая д. 17", "117042, Россия, г.Москва. Бул.Адмирала Ушакова д.18,кв.306", "197110, Россия, г. Санкт-Петербург, ул. Большая Разночинная, д. 28, офис 302", "214011, Россия, г. Смоленск, ул. Верхне-Сенная, д.4", "107113, Россия, г. Москва, Сокольническая пл, дом № 4А, офис 309", "117036, Россия, г. Москва, ул. Кедрова дом 13 корп. 2", "440000, Россия, г. Пенза, ул. Октябрьская, 4", "107076, Россия, г. Москва, ул. Матросская Тишина, д. 23, стр. 1", "197110, Россия, г. Санкт-Петербург, ул. Новоладожская 4 кор.1", "664007, Россия, г. Иркутск, ул. Декабрьских Событий, 119а, офис 11", "115230, Россия, г. Москва, Варшавское шоссе, д. 47, корп. 4, пом. XII", "115280, Россия, г. Москва,  проезд Автозаводский 3-ий, д. 4, комн. 8, этаж 1", "117218, Россия, г. Москва, ул. Профсоюзная, д. 17, корп. 3 пом. II", "117218, Россия, г. Москва, ул. Профсоюзная д. 17 корп. 3 пом. II", "117587, Россия, г. Москва, а/я 136, для ООО &quot;Инвапром&quot;", "123458, Россия, г.Москва, ул. Маршала Катукова д. 26", "355035, Россия, г.Ставрополь, ул.3-я Промышленная 2&quot;Б&quot;", "127642, Россия, г. Москва, ул. Сухонская д.11 кв. 103 (для Елены Цуркиной)", "664023, Россия, г. Иркутск, ул. Трилиссера д. 126 кв. 20");
if ($adrs) {
    foreach ($adrs as $address) {
        $message = array();
        $message_txt = null;
        $res = parseAddress($address);
        if ($res) {
            $address = $res['address'];
            if (!$res['index']) {
                $message[] = 'индекс';
            }
            if (!$res['country_id']) {
                $message[] = 'страну';
            }
            if (!$res['city_id']) {
                $message[] = 'город';
            }
        }
        if (!$res || !empty($message)) {
            if (!$res || count($message) == 3) {
                $message_txt = 'Не удалось разобрать адрес.';
コード例 #11
0
ファイル: address.php プロジェクト: coderhelps/try_samples
    $res = array();
    $pattern = '(.*)<(.*)>';
    //	$pattern = "([^<>]*)<([^<>]+)>";
    foreach ($list as $it) {
        $mail = trim($it);
        $name = "";
        if ($mail) {
            if (ereg($pattern, $it, $m)) {
                $name = trim($m[1]);
                $mail = trim($m[2]);
            }
            if (strpos($mail, '@') !== false) {
                array_push($res, array("name" => $name, "mail" => $mail));
            }
        }
    }
    return $res;
}
function dumpList($list)
{
    foreach ($list as $i) {
        echo "name : {$i['name']}, mail : {$i['mail']} \n";
    }
}
dumpList(parseAddress("*****@*****.**"));
dumpList(parseAddress("管理者 <*****@*****.**>"));
dumpList(parseAddress(" <*****@*****.**>"));
dumpList(parseAddress("abc@aaa<1>"));
echo "\n";
dumpList(parseAddress("管理者1 <*****@*****.**>; 管理者2<*****@*****.** >; test@bb.cc; aa<b>;<*****@*****.**>;d<e>123;-1;false;  ><;abc@aaa<1>"));
コード例 #12
0
ファイル: express.php プロジェクト: mrzeng/raxprint
<?php

include_once "api.php";
include_once "fpdf_ch.php";
//print_r($_REQUEST);
$strAddress = isset($_POST['address']) ? trim($_REQUEST['address']) : "";
$strComment = isset($_POST['comment']) ? trim($_REQUEST['comment']) : "";
$strDate = isset($_POST['date']) ? trim($_REQUEST['date']) : date("Y m d");
$iExpress = isset($_REQUEST['express']) ? intval($_REQUEST['express']) : 0;
$arrInfo = parseAddress($strAddress);
$arrPos = array_key_exists($iExpress, $arrPosition) ? $arrPosition[$iExpress] : $arrPosition[0];
$objPDF = new PDF_Chinese("Landscape", "mm", $arrPos['size']->toArray());
$objPDF->AddGBFont();
$objPDF->SetFontSize(11);
$objPDF->AddPage();
$objPDF->SetFont("Arial");
$objPDF->Text($arrPos['sendDate']->x, $arrPos['sendDate']->y, parseDate($strDate, $arrPos['dateFormat']));
$objPDF->Text($arrPos['srcPhone']->x, $arrPos['srcPhone']->y, "0571-85790698");
if ($arrPos['srcPCode'] != NULL) {
    $objPDF->Text($arrPos['srcPCode']->x, $arrPos['srcPCode']->y, "310053");
}
$objPDF->Text($arrPos['dstPhone1']->x, $arrPos['dstPhone1']->y, $arrInfo['phone1']);
if (isset($arrInfo['phone2'])) {
    $objPDF->Text($arrPos['dstPhone2']->x, $arrPos['dstPhone2']->y, $arrInfo['phone2']);
}
if ($arrPos['dstPCode'] != NULL) {
    $objPDF->Text($arrPos['dstPCode']->x, $arrPos['srcPCode']->y, $arrInfo['postcode']);
}
$objPDF->SetFont("GB");
$oSize = $objPDF->GetFontSize();
if ($arrPos['srcAddrSize'] != NULL) {
コード例 #13
0
 /**
  * Создать письма в разделе /siteadmin/letters/ для БС архива
  * 
  * @param type $ids
  * @param CFile $cfile
  */
 public function addArchiveToLetters($ids, CFile $cfile)
 {
     require_once ABS_PATH . '/classes/reserves/ReservesTServiceOrderModel.php';
     require_once ABS_PATH . '/classes/letters.php';
     //require_once(ABS_PATH . '/classes/country.php');
     require_once ABS_PATH . '/classes/city.php';
     $users_reqv = ReservesTServiceOrderModel::model()->getReservesBankReqvByIds($ids);
     if (!$users_reqv) {
         return false;
     }
     $letters = new letters();
     $letter_ids_exist = $this->getLetterIds($ids);
     $letter_ids_new = array();
     //$countryObject = new country();
     $cityObject = new city();
     foreach ($users_reqv as $user_reqv) {
         $uid = $user_reqv['uid'];
         $src_id = $user_reqv['src_id'];
         $address = $user_reqv['address'];
         $country_id = null;
         $city_id = null;
         if ($res = parseAddress($address)) {
             $address = $res['address'];
             $country_id = $res['country_id'];
             $city_id = $res['city_id'];
         }
         if (!$city_id) {
             $city_name = trim(str_replace('г.', '', $user_reqv['city']));
             $city_data = $cityObject->getByName($city_name);
             if ($city_data) {
                 $country_id = $city_data['country_id'];
                 $city_id = $city_data['id'];
             }
         }
         if (!$city_id) {
             $city_id = $user_reqv['city_id'];
         }
         if (!$country_id) {
             $country_id = $user_reqv['country_id'];
         }
         $name = htmlspecialchars_decode($user_reqv['name'], ENT_QUOTES);
         $letter_company_id = $letters->findCompanyId(array('fio' => $user_reqv['fio'], 'name' => $name, 'address' => $address, 'index' => $user_reqv['index']));
         if (!$letter_company_id) {
             $letter_company_id = $letters->addCompany(array('frm_company_name' => $name, 'country_columns' => array($country_id, $city_id), 'frm_company_index' => $user_reqv['index'], 'frm_company_address' => $address, 'frm_company_fio' => $user_reqv['fio'], 'frm_company_type' => sbr_meta::$types_short[$user_reqv['type']]));
         }
         $frm = array('letters_doc_frm_title' => sprintf(ReservesTServiceOrderModel::NUM_FORMAT, $user_reqv['src_id']), 'letters_doc_frm_user_1_db_id' => 4, 'letters_doc_frm_user_2_db_id' => $letter_company_id, 'letters_doc_frm_delivery_db_id' => 1, 'letters_doc_frm_user2_status_data' => 11, 'letters_doc_frm_user_1_section' => true, 'letters_doc_frm_user_2_section' => true, 'letters_doc_frm_group' => sprintf(self::LETTER_GROUP_TXT, $cfile->getOriginalName()), 'letters_doc_frm_comment' => sprintf(self::LETTER_COMMENT, $cfile->getUrl()));
         if (isset($letter_ids_exist[$src_id])) {
             $letters->updateDocument($letter_ids_exist[$src_id], $frm);
         } else {
             $letter_ids_new[] = array('letter_id' => $letters->addDocument($frm), 'order_id' => $src_id);
         }
     }
     if (!empty($letter_ids_new)) {
         $this->addLetterIds($letter_ids_new);
     }
     return true;
 }
コード例 #14
0
ファイル: dashboard.php プロジェクト: tysonggraham/cs313php
  			<li class="active"><a href="http://php-tysonggraham.rhcloud.com/">Home</a></li>
        <li class="active"><a href="http://php-tysonggraham.rhcloud.com/assignments.html">Assignments</a></li>
  			<li><a href="https://www.spiritanimal.info/spirit-animal-quiz/">Guess My Spirit Animal</a></li>
  			<li><a href='./listUsers.php'>View All Users</a></li>
  			<li><a href='./compatibility_survey/survey.php'>Compatibility Survey</a></li>
  			<li><a href='./editProfile.php'>Edit Profile</a></li>
  			<li><a href='/logout.php'>Log Out</a></li>
		</ul>
	</div>
</nav>

<?php 
$addr1 = "1521 1st Ave, Seattle, WA";
$addr2 = "1301 Alaskan Way, Seattle, WA";
$parts1 = parseAddress($addr1);
$parts2 = parseAddress($addr2);
// $coord1 = get_coordinates("Seattle", "1521 1st Ave", "Washington");
$coord1 = get_coordinates($parts1[1], $parts1[0], $parts1[2]);
$coord2 = get_coordinates($parts2[1], $parts2[0], $parts2[2]);
echo $parts1[1] . " - " . $parts1[0] . " - " . $parts1[2] . "<br>";
echo $parts2[1] . " - " . $parts2[0] . " - " . $parts2[2] . "<br>";
if ($coord1 && $coord2) {
    $dist = GetDrivingDistance($coord1['lat'], $coord2['lat'], $coord1['long'], $coord2['long']);
    echo 'Distance: <b>' . $dist['distance'] . '</b><br>Travel time duration: <b>' . $dist['time'] . '</b>';
} else {
    echo 'Bad address.';
}
?>
	<div style:"text-align:center; display:block; margin:auto;">
	<b>Origin: </b>
	<select id="start">
コード例 #15
0
ファイル: invoices.php プロジェクト: Zulukas/cs313-php
			<ul class="nav navbar-nav">
	  			<li><a href="home.php">Home</a></li>
	  			<li><a href="deliveries.php">Deliveries</a></li>
	  			<li class="active"><a href="#">Invoices</a></li>
	  			<li><a href="users.php">Users</a></li>
                <li><a href="logout.php">Logout</a></li>
			</ul>
		</div>
	</nav>

	<div class="container">
<?php 
foreach ($delData as $row) {
    $parts = parseAddress($row["pick_up_location"]);
    $coord1 = get_coordinates($parts[1], $parts[0], $parts[2]);
    $parts = parseAddress($row["drop_off_location"]);
    $coord2 = get_coordinates($parts[1], $parts[0], $parts[2]);
    $distanceKM = "";
    $miles = "";
    $distanceMI = "";
    if (!$coord1 || !$coord2) {
        $distanceKM = 'Bad address(es).';
        $distanceMI = $distanceKM;
    } else {
        $dist = GetDrivingDistance($coord1['lat'], $coord2['lat'], $coord1['long'], $coord2['long']);
        $distanceKM = $dist["distance"];
        // echo $distanceKM . "<br>";
        $parts = explode(" ", $distanceKM);
        $km = str_replace(",", "", $parts[0]);
        $miles = round($km / 1.6093442, 1);
        $distanceMI = $miles . " miles";