Пример #1
0
function adodb_unserialize($serialized_string)
{
    $variables = array();
    $a = preg_explode("/(\\w+)\\|/", $serialized_string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
    for ($i = 0; $i < count($a); $i = $i + 2) {
        $variables[$a[$i]] = unserialize($a[$i + 1]);
    }
    return $variables;
}
Пример #2
0
 /**
  * Encode string to quoted-printable.
  * Only uses standard PHP, slow, but will always work
  * @access public
  * @param string $string the text to encode
  * @param integer $line_max Number of chars allowed on a line before wrapping
  * @return string
  */
 public function EncodeQPphp($input = '', $line_max = 76, $space_conv = false)
 {
     $hex = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
     $lines = preg_explode('/(?:\\r\\n|\\r|\\n)/', $input);
     $eol = "\r\n";
     $escape = '=';
     $output = '';
     while (list(, $line) = each($lines)) {
         $linlen = strlen($line);
         $newline = '';
         for ($i = 0; $i < $linlen; $i++) {
             $c = substr($line, $i, 1);
             $dec = ord($c);
             if ($i == 0 && $dec == 46) {
                 // convert first point in the line into =2E
                 $c = '=2E';
             }
             if ($dec == 32) {
                 if ($i == $linlen - 1) {
                     // convert space at eol only
                     $c = '=20';
                 } else {
                     if ($space_conv) {
                         $c = '=20';
                     }
                 }
             } elseif ($dec == 61 || $dec < 32 || $dec > 126) {
                 // always encode "\t", which is *not* required
                 $h2 = floor($dec / 16);
                 $h1 = floor($dec % 16);
                 $c = $escape . $hex[$h2] . $hex[$h1];
             }
             if (strlen($newline) + strlen($c) >= $line_max) {
                 // CRLF is not counted
                 $output .= $newline . $escape . $eol;
                 //  soft line break; " =\r\n" is okay
                 $newline = '';
                 // check if newline first character will be point or not
                 if ($dec == 46) {
                     $c = '=2E';
                 }
             }
             $newline .= $c;
         }
         // end of for
         $output .= $newline . $eol;
     }
     // end of while
     return $output;
 }
Пример #3
0
function pro($s, $lv)
{
    if ($lv == count($GLOBALS['sep_array'])) {
        return proc($s);
    }
    if ($_POST['sep_pcre'] == 'on') {
        $a = preg_explode($GLOBALS['sep_array'][$lv], $s);
        $step = 2;
    } else {
        $a = explod($GLOBALS['sep_array'][$lv], $s);
        $step = 1;
    }
    $ct = 0;
    $x = count($a);
    for ($i = 0; $i < $x; $i += $step) {
        if (in_opt_range($ct, $lv, $x)) {
            $a[$i] = pro($a[$i], $lv + 1);
        }
        ++$ct;
    }
    if ($_POST['sep_pcre'] == 'on') {
        $s = implode('', $a);
    } else {
        $s = implode($GLOBALS['sep_array'][$lv], $a);
    }
    return $s;
}