Example #1
0
File: misc.php Project: jasny/Q
/**
 * Split a string on $seperator as key=value, grouping values between quotes and round brackets.
 *
 * @param string $seperator  Character list; Split on any character in $seperator. With .. you can specify a range of characters.
 * @param string $string
 * @param string $unquote    Character list; Trim these characters for each part. TRUE: remove ' and ";
 * @return array
 */
function split_set($seperator, $string, $unquote = true)
{
    if (!is_scalar($string) || empty($string)) {
        return $string;
    }
    $matches = null;
    $seperator = str_replace('\\.\\.', '-', preg_quote($seperator));
    if ($unquote === true) {
        $unquote = '\'"';
    }
    $str = "";
    $values = array();
    preg_match_all('/(?:([^' . $seperator . '=]+)\\s*\\=)?((?:(`[^`]*`)|("(?:\\\\"|[^"])*")|(\'(?:\\\\\'|[^\'])*\')|\\((?:(?R)|[' . $seperator . '])*\\)|([^`"\'()' . $seperator . ']+))+)/', $string, $matches, PREG_SET_ORDER);
    foreach ($matches as $match) {
        $value = trim($match[2]);
        if ($value == 'false') {
            $value = false;
        } elseif ($value == 'true') {
            $value = true;
        }
        if (empty($match[1])) {
            $values[] = $unquote && is_string($value) ? unquote($value, $unquote) : $value;
        } else {
            parse_key(trim($match[1]), $unquote && is_string($value) ? unquote($value, $unquote) : $value, $values);
        }
    }
    return $values;
}
Example #2
0
function parse_wholekey($k, $list_columns) {
  $ret=array();

  $keys_list=explode(",", $k);
  foreach($keys_list as $keys_part) {
    $keys=explode(" ", $keys_part);

    $l=array();
    foreach($keys as $i=>$k) {
      $l1=parse_key($k, &$list_columns);
      if($l1) $l[]=$l1;
    }

    $ret[]=implode(" AND ", $l);
  }

  if(sizeof($ret)>1)
    return "(".implode(") OR (", $ret).")";
  else
    return $ret[0];
}
$config['_html_thanks'] = '';
$config['_database_host'] = '';
$config['_database_user'] = '';
$config['_database_pass'] = '';
$config['_database_name'] = '';
$config['_save_database'] = '';
$config['_csv_directory'] = '/tmp';
$config['_save_csv'] = '';
$config['_mandatory'] = '';
// array of formfields
$store = array();
$missing = 0;
// get http params and parse each entry
$params = array_merge($HTTP_GET_VARS, $HTTP_POST_VARS);
foreach ($params as $key => $val) {
    parse_key($key, $val);
}
// === M A I N ==========================================================
// check if page is refered from our server
check_referer(empty($_SERVER['HTTP_REFERER']) ? $config['_html_return'] : $_SERVER['HTTP_REFERER']);
// check if we have action to take
if (empty($config['_html_return']) || empty($config['_html_confirm']) && empty($config['_mail_to']) && empty($config['_save_csv']) && empty($config['_save_database'])) {
    missing_action();
}
// check if mandatory fields are entered or cancel was pressed
if (!empty($config['_mandatory'])) {
    if (ereg(',', $config['_mandatory'])) {
        $amkeys = split(',', $config['_mandatory']);
        foreach ($amkeys as $mkey) {
            if (!isset($store[$mkey])) {
                $store[$mkey] = "__ERROR__ ";
Example #4
0
<?php

require_once "boot.php";
// undefine('ROOT');
use flight\Flight;
// path 下的第一级目录名为Appname,二级目录为module name,最后的文件名为OP type
$path = $argv[1];
$key_pref = $argv[2];
if (!is_dir($path)) {
    die($path . " is not a valid directory!");
}
$result = get_sqldoc_keys($path, $key_pref);
foreach ($result as $k => $value) {
    $proj_info = parse_key($value);
    $op_type = $proj_info['op_type'];
    unset($proj_info['op_type']);
    $proj_id = insert_proj($proj_info);
    $sql_infos = Flight::conf()->get($value . '.*');
    foreach ($sql_infos as $key => $sql_info) {
        $key_name = $value . '.' . $key;
        $sk_id = insert_key($sql_info, $key_name, $proj_id, $op_type);
        if (isset($sql_info['params'])) {
            foreach ($sql_info['params'] as $pname => $p_info) {
                insert_param($p_info, $sk_id, $pname);
            }
        }
    }
}
function insert_proj($proj_info)
{
    $is_exsists = Flight::db()->fetchOne('sql.sqldoc.projects.select.proj_by_app_module', $proj_info);