if(is_array($expr)) return;
// Make regexp from glob'ed expression
- $expr = ereg_replace('\?', '_', $expr);
- $expr = ereg_replace('\*'. '%', $expr);
+ $expr = ereg_replace('\\?', '_', $expr);
+ $expr = ereg_replace('\\*'. '%', $expr);
$expr = $this->dbh->quoteString($expr);
$expr = "%$expr%";
// Encode the expression
$expr = $this->charset_encode($expr);
- if(!ereg('\\*', $expr))
+ if(strstr($expr, "*") === false)
$expr = "*$expr*";
$expression = "cn=$expr";
// To be replaced by advanded search expression parsing
if(is_array($expr)) return;
- // Make regexp from glob'ed expression
- $expr = ereg_replace('\?', '.', $expr);
- $expr = ereg_replace('\*', '.*', $expr);
+ // Make regexp from glob'ed expression
+ // May want to quote other special characters like (, ), -, [, ], etc.
+ $expr = ereg_replace('\\?', '.', $expr);
+ $expr = ereg_replace('\\*', '.*', $expr);
$res = array();
if(!$this->open())
** Checks whether or not the specified mailbox exists
******************************************************************************/
function sqimap_mailbox_exists ($imap_stream, $mailbox) {
+ if (! isset($mailbox))
+ return false;
fputs ($imap_stream, "a001 LIST \"\" \"$mailbox\"\r\n");
$mbx = sqimap_read_data($imap_stream, "a001", true, $response, $message);
- if (isset($mailbox) && isset($mbx[0])) {
- return !!(ereg ("$mailbox", $mbx[0])); // To force into true/false
- }
+ return isset($mbx[0]);
}
/******************************************************************************
$boxes[$g]["formatted"] = $mailbox;
}
- $boxes[$g]["unformatted-dm"] = $mailbox;
+ $boxes[$g]['unformatted-dm'] = $mailbox;
if (substr($mailbox, -1) == $dm)
$mailbox = substr($mailbox, 0, strlen($mailbox) - 1);
- $boxes[$g]["unformatted"] = $mailbox;
- $boxes[$g]["unformatted-disp"] = ereg_replace("^" . $folder_prefix, "", $mailbox);
- $boxes[$g]["id"] = $g;
+ $boxes[$g]['unformatted'] = $mailbox;
+ $boxes[$g]['unformatted-disp'] = ereg_replace('^' . $folder_prefix, '', $mailbox);
+ $boxes[$g]['id'] = $g;
if (isset($line[$g]))
ereg("\(([^)]*)\)",$line[$g],$regs);
- $flags = trim(strtolower(str_replace("\\", "",$regs[1])));
+ $flags = trim(strtolower(str_replace('\\', '',$regs[1])));
if ($flags) {
- $boxes[$g]["flags"] = explode(" ", $flags);
+ $boxes[$g]['flags'] = explode(' ', $flags);
}
}
// Then list special folders and their subfolders
for ($i = 0 ; $i < count($boxes) ; $i++) {
if ($move_to_trash &&
- eregi("^" . quotemeta($trash_folder) . "(" .
- quotemeta($dm) . ".*)?$", $boxes[$i]["unformatted"])) {
+ eregi('^' . quotemeta($trash_folder) . '(' .
+ quotemeta($dm) . '.*)?$', $boxes[$i]["unformatted"])) {
$boxesnew[] = $boxes[$i];
$used[$i] = true;
}
elseif ($move_to_sent &&
- eregi("^" . quotemeta($sent_folder) . "(" .
- quotemeta($dm) . ".*)?$", $boxes[$i]["unformatted"])) {
+ eregi('^' . quotemeta($sent_folder) . '(' .
+ quotemeta($dm) . '.*)?$', $boxes[$i]["unformatted"])) {
$boxesnew[] = $boxes[$i];
$used[$i] = true;
}
// Put INBOX.* folders ahead of the rest
for ($i = 0; $i < count($boxes); $i++) {
- if (eregi("^inbox\.", $boxes[$i]["unformatted"]) &&
+ if (eregi('^inbox\\.', $boxes[$i]["unformatted"]) &&
(!isset($used[$i]) || $used[$i] == false)) {
$boxesnew[] = $boxes[$i];
$used[$i] = true;
// a parent.
$boxesbyname[$mailbox] = $g;
$parentfolder = readMailboxParent($mailbox, $dm);
- if((eregi("^inbox".quotemeta($dm), $mailbox)) ||
- (ereg("^".$folder_prefix, $mailbox)) ||
+ if((eregi('^inbox'.quotemeta($dm), $mailbox)) ||
+ (ereg('^'.$folder_prefix, $mailbox)) ||
( isset($boxesbyname[$parentfolder]) && (strlen($parentfolder) > 0) ) ) {
if ($dm_count)
$boxes[$g]["formatted"] = str_repeat(" ", $dm_count);
if (substr($mailbox, -1) == $dm)
$mailbox = substr($mailbox, 0, strlen($mailbox) - 1);
$boxes[$g]["unformatted"] = $mailbox;
- $boxes[$g]["unformatted-disp"] = ereg_replace("^" . $folder_prefix, "", $mailbox);
+ $boxes[$g]["unformatted-disp"] = ereg_replace('^' . $folder_prefix, '', $mailbox);
$boxes[$g]["id"] = $g;
/** Now lets get the flags for this mailbox **/
$flags = substr($read_mlbx[0], strpos($read_mlbx[0], "(")+1);
$flags = substr($flags, 0, strpos($flags, ")"));
- $flags = str_replace("\\", "", $flags);
+ $flags = str_replace('\\', '', $flags);
$flags = trim(strtolower($flags));
if ($flags) {
$boxes[$g]["flags"] = explode(" ", $flags);
fputs ($imap_stream, "a003 FETCH $id RFC822.SIZE\r\n");
$read = sqimap_read_data($imap_stream, "a003", true, $r, $m);
- preg_match("/([0-9]+)\)\s*$/i", $read[0], $regs);
+ eregi("([0-9]+)[^0-9]*$", $read[0], $regs);
$size = $regs[1];
$header = new small_header;
fputs ($imap_stream, "a001 FETCH $i:$i FLAGS\r\n");
$read = sqimap_read_data ($imap_stream, "a001", true, $response, $message);
if (ereg("FLAGS(.*)", $read[0], $regs))
- return explode(" ", trim(ereg_replace('[\(\)\\]', '', $regs[1])));
+ return explode(" ", trim(ereg_replace('[\\(\\)\\\\]', '', $regs[1])));
return Array('None');
}
$hdr->type1 = "plain";
$hdr->charset = "us-ascii";
- preg_match("/\{([0-9]+)\}/", $read[$i], $regs);
- preg_match("/[0-9]+/", $regs[0], $regs);
-
while ($i < count($read)) {
if (substr($read[$i], 0, 17) == "MIME-Version: 1.0") {
$hdr->mime = true;
}
/** Detect the boundary of a multipart message **/
- if (eregi("boundary=\"([^\"]+)\"", $line, $regs)) {
+ if (eregi('boundary="([^"]+)"', $line, $regs)) {
$hdr->boundary = $regs[1];
}
}
- else if (strtolower(substr($read[$i], 0, 20)) == "content-disposition:") {
+ else if (strtolower(substr($read[$i], 0, 20)) == "content-disposition:") {
/** Add better dontent-disposition support **/
$line = $read[$i];
else if (strtolower(substr($read[$i], 0, 5)) == "date:") {
$d = substr($read[$i], 5);
$d = trim($d);
- $d = ereg_replace(" ", " ", $d);
- $d = explode(" ", $d);
+ $d = strtr($d, array(' ', ' '));
+ $d = explode(' ', $d);
$hdr->date = getTimeStamp($d);
$i++;
}
$j = 0;
while ($j < count($messagelist)) {
- $date[$j] = ereg_replace(" ", " ", $date[$j]);
+ $date[$j] = ereg_replace(' ', ' ', $date[$j]);
$tmpdate = explode(" ", trim($date[$j]));
$messages[$j]["TIME_STAMP"] = getTimeStamp($tmpdate);
fputs ($imap_stream, "a010 FETCH $id BODY[$ent_id]\r\n");
$data = sqimap_read_data ($imap_stream, 'a010', true, $response, $message);
$topline = array_shift($data);
- while (! ereg('\* [0-9]+ FETCH ', $topline) && data)
+ while (! ereg('\\* [0-9]+ FETCH ', $topline) && data)
$topline = array_shift($data);
$wholemessage = implode('', $data);
- if (ereg('\{([^\}]*)\}', $topline, $regs)) {
+ if (ereg('\\{([^\\}]*)\\}', $topline, $regs)) {
return substr($wholemessage, 0, $regs[1]);
}
else if (ereg('"([^"]*)"', $topline, $regs)) {
// This functions decode strings that is encoded according to
// RFC1522 (MIME Part Two: Message Header Extensions for Non-ASCII Text).
function decodeHeader ($string) {
- if (eregi('=\?([^?]+)\?(q|b)\?([^?]+)\?=',
+ if (eregi('=\\?([^?]+)\\?(q|b)\\?([^?]+)\\?=',
$string, $res)) {
if (ucfirst($res[2]) == "B") {
$replace = base64_decode($res[3]);
$replace = charset_decode ($res[1], $replace);
$string = eregi_replace
- ('=\?([^?]+)\?(q|b)\?([^?]+)\?=',
+ ('=\\?([^?]+)\\?(q|b)\\?([^?]+)\\?=',
$replace, $string);
// In case there should be more encoding in the string: recurse
return (decodeHeader($string));
// In order to remove the problem of users not able to create
// messages with "." on a blank line, RFC821 has made provision
// in section 4.5.2 (Transparency).
- $body = ereg_replace("\n\.", "\n\.\.", $body);
- $body = ereg_replace("^\.", "\.\.", $body);
+ $body = ereg_replace("\n\\.", "\n..", $body);
+ $body = ereg_replace("^\\.", "..", $body);
// this is to catch all plain \n instances and
// replace them with \r\n.
// Specifically, ' comes up as 5 characters instead of 1.
// This should not add newlines to the end of lines.
function sqWordWrap(&$line, $wrap) {
- preg_match('/^([\\s>]*)([^\\s>].*)?$/', $line, $regs);
+ ereg("^([\t >]*)([^\t >].*)?$", $line, $regs);
$beginning_spaces = $regs[1];
if (isset($regs[2])) {
$words = explode(' ', $regs[2]);
$PreviousSpaces = "";
for ($i = 0; $i < count($lines); $i ++)
{
- preg_match('/^([\\s>]*)([^\\s>].*)?$/', $lines[$i], $regs);
+ ereg("^([\t >]*)([^\t >].*)?$", $lines[$i], $regs);
$CurrentSpaces = $regs[1];
if (isset($regs[2]))
$CurrentRest = $regs[2];
// $IPMatch = '\[?' . $IPMatch . '(\.' . $IPMatch . '){3}\]?';
//
// Here's enough:
- $IPMatch = '\[?[0-9]{1,3}(\.[0-9]{1,3}){3}\]?';
- $Host = '(' . $IPMatch . '|[0-9a-z]([-.]?[0-9a-z])*\.[a-wyz][a-z](g|l|m|pa|t|u|v)?)';
+ $IPMatch = '\\[?[0-9]{1,3}(\\.[0-9]{1,3}){3}\\]?';
+ $Host = '(' . $IPMatch .
+'|[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|me|o|op|pa|ro|seum|t|u|v|z)?)';
$Expression = '[0-9a-z]([-_.]?[0-9a-z])*(%' . $Host . ')?@' . $Host;
/*