本文整理汇总了PHP中PEAR::IsError方法的典型用法代码示例。如果您正苦于以下问题:PHP PEAR::IsError方法的具体用法?PHP PEAR::IsError怎么用?PHP PEAR::IsError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PEAR
的用法示例。
在下文中一共展示了PEAR::IsError方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: UnpackFiles
/**
* Check if input (an array of $_FILES) are .tar or .zip files, if they
* are then these get unpacked and returns an managed as $_FILES (returning
* an array with the same structure $_FILES uses and move pics to /tmp)
*
* @access public
* @param array $files $_FILES
* @return array $_FILES format
*/
function UnpackFiles($files)
{
if (!is_array($files)) {
return array();
}
$cleanFiles = array();
$tmpDir = sys_get_temp_dir();
$counter = 1;
require_once PEAR_PATH . 'File/Archive.php';
foreach ($files as $key => $file) {
if (empty($file['tmp_name'])) {
continue;
}
$ext = strrchr($file['name'], '.');
switch ($ext) {
case '.gz':
$ext = '.tgz';
break;
case '.bz2':
case '.bzip2':
$ext = '.tbz';
break;
}
$ext = strtolower(ltrim($ext, '.'));
if (File_Archive::isKnownExtension($ext)) {
$tmpArchiveName = $tmpDir . DIRECTORY_SEPARATOR . $file['name'];
if (!move_uploaded_file($file['tmp_name'], $tmpArchiveName)) {
continue;
}
$reader = File_Archive::read($tmpArchiveName);
$source = File_Archive::readArchive($ext, $reader);
if (!PEAR::isError($source)) {
while ($source->next()) {
$destFile = $tmpDir . DIRECTORY_SEPARATOR . basename($source->getFilename());
$sourceFile = $tmpArchiveName . '/' . $source->getFilename();
$extract = File_Archive::extract($sourceFile, $tmpDir);
if (PEAR::IsError($extract)) {
continue;
}
$cleanFiles['photo' . $counter] = array('name' => basename($source->getFilename()), 'type' => $source->getMime(), 'tmp_name' => $destFile, 'size' => @filesize($destFile), 'error' => 0);
$counter++;
}
}
} else {
$cleanFiles['photo' . $counter] = $file;
$counter++;
}
}
return $cleanFiles;
}
示例2: fail
function &getDB($bNew = false, $bPersistent = false)
{
// Get the database object
$oDB =& DB::connect(CONST_Database_DSN . ($bNew ? '?new_link=true' : ''), $bPersistent);
if (PEAR::IsError($oDB)) {
var_dump(CONST_Database_DSN);
var_Dump($oDB);
fail($oDB->getMessage());
}
$oDB->setFetchMode(DB_FETCHMODE_ASSOC);
$oDB->query("SET DateStyle TO 'sql,european'");
$oDB->query("SET client_encoding TO 'utf-8'");
return $oDB;
}
示例3: failInternalError
//var_dump($sSQL);
$aPlace = $oDB->getRow($sSQL);
$iPlaceID = $aPlace['place_id'];
$iParentPlaceID = $aPlace['parent_place_id'];
if (PEAR::IsError($iPlaceID)) {
failInternalError("Could not determine closest place.", $sSQL, $iPlaceID);
}
}
// The point we found might be too small - use the address to find what it is a child of
if ($iPlaceID && $iMaxRank < 28) {
if ($aPlace['rank_search'] > 28 && $iParentPlaceID) {
$iPlaceID = $iParentPlaceID;
}
$sSQL = "select address_place_id from place_addressline where place_id = {$iPlaceID} order by abs(cached_rank_address - {$iMaxRank}) asc,cached_rank_address desc,isaddress desc,distance desc limit 1";
$iPlaceID = $oDB->getOne($sSQL);
if (PEAR::IsError($iPlaceID)) {
failInternalError("Could not get parent for place.", $sSQL, $iPlaceID);
}
if (!$iPlaceID) {
$iPlaceID = $aPlace['place_id'];
}
}
}
if ($iPlaceID) {
$sSQL = "select placex.*,";
$sSQL .= " get_address_by_language(place_id, {$sLanguagePrefArraySQL}) as langaddress,";
$sSQL .= " get_name_by_language(name, {$sLanguagePrefArraySQL}) as placename,";
$sSQL .= " get_name_by_language(name, ARRAY['ref']) as ref,";
$sSQL .= " st_y(st_centroid(geometry)) as lat, st_x(st_centroid(geometry)) as lon";
$sSQL .= " from placex where place_id = {$iPlaceID} ";
//var_dump($sSQL);
示例4: getTableFieldDefinition
/**
* Get the stucture of a field into an array
*
* @param string $table name of table that should be used in method
* @param string $field_name name of field that should be used in method
* @return mixed data array on success, a MDB2 error on failure.
* The returned array contains an array for each field definition,
* with (some of) these indices:
* [notnull] [nativetype] [length] [fixed] [default] [type] [mdb2type]
* @access public
*/
function getTableFieldDefinition($table, $field_name)
{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$result = $db->loadModule('Datatype', null, true);
if (PEAR::isError($result)) {
return $result;
}
$query = "SELECT sql FROM sqlite_master WHERE type='table' AND ";
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
$query .= 'LOWER(name)=' . $db->quote(strtolower($table), 'text');
} else {
$query .= 'name=' . $db->quote($table, 'text');
}
$sql = $db->queryOne($query);
if (PEAR::isError($sql)) {
return $sql;
}
$columns = $this->_getTableColumns($sql);
foreach ($columns as $column) {
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
if ($db->options['field_case'] == CASE_LOWER) {
$column['name'] = strtolower($column['name']);
} else {
$column['name'] = strtoupper($column['name']);
}
} else {
$column = array_change_key_case($column, $db->options['field_case']);
}
if ($field_name == $column['name']) {
$mapped_datatype = $db->datatype->mapNativeDatatype($column);
if (PEAR::IsError($mapped_datatype)) {
return $mapped_datatype;
}
list($types, $length, $unsigned, $fixed) = $mapped_datatype;
$notnull = false;
if (!empty($column['notnull'])) {
$notnull = $column['notnull'];
}
$default = false;
if (array_key_exists('default', $column)) {
$default = $column['default'];
if (is_null($default) && $notnull) {
$default = '';
}
}
$autoincrement = false;
if (!empty($column['autoincrement'])) {
$autoincrement = true;
}
$definition[0] = array('notnull' => $notnull, 'nativetype' => preg_replace('/^([a-z]+)[^a-z].*/i', '\\1', $column['type']));
if (!is_null($length)) {
$definition[0]['length'] = $length;
}
if (!is_null($unsigned)) {
$definition[0]['unsigned'] = $unsigned;
}
if (!is_null($fixed)) {
$definition[0]['fixed'] = $fixed;
}
if ($default !== false) {
$definition[0]['default'] = $default;
}
if ($autoincrement !== false) {
$definition[0]['autoincrement'] = $autoincrement;
}
foreach ($types as $key => $type) {
$definition[$key] = $definition[0];
if ($type == 'clob' || $type == 'blob') {
unset($definition[$key]['default']);
}
$definition[$key]['type'] = $type;
$definition[$key]['mdb2type'] = $type;
}
return $definition;
}
}
return $db->raiseError(MDB2_ERROR_NOT_FOUND, null, null, 'it was not specified an existing table column', __FUNCTION__);
}
示例5: getAddressDetails
function getAddressDetails($bAll = false)
{
if (!$this->iPlaceID) {
return null;
}
$sLanguagePrefArraySQL = "ARRAY[" . join(',', array_map("getDBQuoted", $this->aLangPrefOrder)) . "]";
$sSQL = "select *,get_name_by_language(name,{$sLanguagePrefArraySQL}) as localname from get_addressdata(" . $this->iPlaceID . ")";
if (!$bAll) {
$sSQL .= " WHERE isaddress OR type = 'country_code'";
}
$sSQL .= " order by rank_address desc,isaddress desc";
$aAddressLines = $this->oDB->getAll($sSQL);
if (PEAR::IsError($aAddressLines)) {
var_dump($aAddressLines);
exit;
}
return $aAddressLines;
}
示例6: getClassTypesWithImportance
$iZoom = 14;
$aClassType = getClassTypesWithImportance();
$aPointDetails['icon'] = $aClassType[$aPointDetails['class'] . ':' . $aPointDetails['type']]['icon'];
// Get all alternative names (languages, etc)
$sSQL = "select (each(name)).key,(each(name)).value from placex where place_id = {$iPlaceID} order by (each(name)).key";
$aPointDetails['aNames'] = $oDB->getAssoc($sSQL);
// Extra tags
$sSQL = "select (each(extratags)).key,(each(extratags)).value from placex where place_id = {$iPlaceID} order by (each(extratags)).key";
$aPointDetails['aExtraTags'] = $oDB->getAssoc($sSQL);
// Get the bounding box and outline polygon
$sSQL = "select ST_AsText(geometry) as outlinestring,";
$sSQL .= "ST_YMin(geometry) as minlat,ST_YMax(geometry) as maxlat,";
$sSQL .= "ST_XMin(geometry) as minlon,ST_XMax(geometry) as maxlon";
$sSQL .= " from placex where place_id = {$iPlaceID}";
$aPointPolygon = $oDB->getRow($sSQL);
if (PEAR::IsError($aPointPolygon)) {
failInternalError("Could not get bounding box of place object.", $sSQL, $aPointPolygon);
}
if (preg_match('#POLYGON\\(\\(([- 0-9.,]+)#', $aPointPolygon['outlinestring'], $aMatch)) {
preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/', $aMatch[1], $aPolyPoints, PREG_SET_ORDER);
} elseif (preg_match('#MULTIPOLYGON\\(\\(\\(([- 0-9.,]+)#', $aPointPolygon['outlinestring'], $aMatch)) {
// TODO: this just takes the first ring
preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/', $aMatch[1], $aPolyPoints, PREG_SET_ORDER);
} elseif (preg_match('#POINT\\((-?[0-9.]+) (-?[0-9.]+)\\)#', $aPointPolygon['outlinestring'], $aMatch)) {
$fRadius = 0.01;
if ($aPointDetails['rank_search'] > 20) {
$fRadius = 0.0001;
}
$iSteps = min(max($fRadius * 40000 ^ 2, 16), 100);
$fStepSize = 2 * pi() / $iSteps;
$aPolyPoints = array();
示例7: getTableFieldDefinition
/**
* Get the structure of a field into an array
*
* @param string $table name of table that should be used in method
* @param string $field_name name of field that should be used in method
* @return mixed data array on success, a MDB2 error on failure
* @access public
*/
function getTableFieldDefinition($table, $field_name)
{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$result = $db->loadModule('Datatype', null, true);
if (PEAR::isError($result)) {
return $result;
}
$query = "SELECT a.attname AS name,\r\n t.typname AS type,\r\n CASE a.attlen\r\n WHEN -1 THEN\r\n\t CASE t.typname\r\n\t WHEN 'numeric' THEN (a.atttypmod / 65536)\r\n\t WHEN 'decimal' THEN (a.atttypmod / 65536)\r\n\t WHEN 'money' THEN (a.atttypmod / 65536)\r\n\t ELSE CASE a.atttypmod\r\n WHEN -1 THEN NULL\r\n\t ELSE a.atttypmod - 4\r\n\t END\r\n END\r\n\t ELSE a.attlen\r\n END AS length,\r\n\t CASE t.typname\r\n\t WHEN 'numeric' THEN (a.atttypmod % 65536) - 4\r\n\t WHEN 'decimal' THEN (a.atttypmod % 65536) - 4\r\n\t WHEN 'money' THEN (a.atttypmod % 65536) - 4\r\n\t ELSE 0\r\n END AS scale,\r\n a.attnotnull,\r\n a.atttypmod,\r\n a.atthasdef,\r\n (SELECT substring(pg_get_expr(d.adbin, d.adrelid) for 128)\r\n FROM pg_attrdef d\r\n WHERE d.adrelid = a.attrelid\r\n AND d.adnum = a.attnum\r\n AND a.atthasdef\r\n ) as default\r\n FROM pg_attribute a,\r\n pg_class c,\r\n pg_type t\r\n WHERE c.relname = " . $db->quote($table, 'text') . "\r\n AND a.atttypid = t.oid\r\n AND c.oid = a.attrelid\r\n AND NOT a.attisdropped\r\n AND a.attnum > 0\r\n AND a.attname = " . $db->quote($field_name, 'text') . "\r\n ORDER BY a.attnum";
$column = $db->queryRow($query, null, MDB2_FETCHMODE_ASSOC);
if (PEAR::isError($column)) {
return $column;
}
if (empty($column)) {
return $db->raiseError(MDB2_ERROR_NOT_FOUND, null, null, 'it was not specified an existing table column', __FUNCTION__);
}
$column = array_change_key_case($column, CASE_LOWER);
$mapped_datatype = $db->datatype->mapNativeDatatype($column);
if (PEAR::IsError($mapped_datatype)) {
return $mapped_datatype;
}
list($types, $length, $unsigned, $fixed) = $mapped_datatype;
$notnull = false;
if (!empty($column['attnotnull']) && $column['attnotnull'] == 't') {
$notnull = true;
}
$default = null;
if ($column['atthasdef'] === 't' && !preg_match("/nextval\\('([^']+)'/", $column['default'])) {
$default = $column['default'];
#substr($column['adsrc'], 1, -1);
if (is_null($default) && $notnull) {
$default = '';
}
}
$autoincrement = false;
if (preg_match("/nextval\\('([^']+)'/", $column['default'], $nextvals)) {
$autoincrement = true;
}
$definition[0] = array('notnull' => $notnull, 'nativetype' => $column['type']);
if (!is_null($length)) {
$definition[0]['length'] = $length;
}
if (!is_null($unsigned)) {
$definition[0]['unsigned'] = $unsigned;
}
if (!is_null($fixed)) {
$definition[0]['fixed'] = $fixed;
}
if ($default !== false) {
$definition[0]['default'] = $default;
}
if ($autoincrement !== false) {
$definition[0]['autoincrement'] = $autoincrement;
}
foreach ($types as $key => $type) {
$definition[$key] = $definition[0];
if ($type == 'clob' || $type == 'blob') {
unset($definition[$key]['default']);
}
$definition[$key]['type'] = $type;
$definition[$key]['mdb2type'] = $type;
}
return $definition;
}
示例8: getTableFieldDefinition
/**
* Get the structure of a field into an array
*
* @param string $table name of table that should be used in method
* @param string $field_name name of field that should be used in method
* @return mixed data array on success, a MDB2 error on failure
* @access public
*/
function getTableFieldDefinition($table, $field_name)
{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$result = $db->loadModule('Datatype', null, true);
if (PEAR::isError($result)) {
return $result;
}
$table = $db->quoteIdentifier($table, true);
$query = "SHOW COLUMNS FROM {$table} LIKE " . $db->quote($field_name);
$columns = $db->queryAll($query, null, MDB2_FETCHMODE_ASSOC);
if (PEAR::isError($columns)) {
return $columns;
}
foreach ($columns as $column) {
$column = array_change_key_case($column, CASE_LOWER);
$column['name'] = $column['field'];
unset($column['field']);
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
if ($db->options['field_case'] == CASE_LOWER) {
$column['name'] = strtolower($column['name']);
} else {
$column['name'] = strtoupper($column['name']);
}
} else {
$column = array_change_key_case($column, $db->options['field_case']);
}
if ($field_name == $column['name']) {
$mapped_datatype = $db->datatype->mapNativeDatatype($column);
if (PEAR::IsError($mapped_datatype)) {
return $mapped_datatype;
}
list($types, $length, $unsigned, $fixed) = $mapped_datatype;
$notnull = false;
if (empty($column['null']) || $column['null'] !== 'YES') {
$notnull = true;
}
$default = false;
if (array_key_exists('default', $column)) {
$default = $column['default'];
if (is_null($default) && $notnull) {
$default = '';
}
}
$autoincrement = false;
if (!empty($column['extra']) && $column['extra'] == 'auto_increment') {
$autoincrement = true;
}
$definition[0] = array('notnull' => $notnull, 'nativetype' => preg_replace('/^([a-z]+)[^a-z].*/i', '\\1', $column['type']));
if (!is_null($length)) {
$definition[0]['length'] = $length;
}
if (!is_null($unsigned)) {
$definition[0]['unsigned'] = $unsigned;
}
if (!is_null($fixed)) {
$definition[0]['fixed'] = $fixed;
}
if ($default !== false) {
$definition[0]['default'] = $default;
}
if ($autoincrement !== false) {
$definition[0]['autoincrement'] = $autoincrement;
}
foreach ($types as $key => $type) {
$definition[$key] = $definition[0];
if ($type == 'clob' || $type == 'blob') {
unset($definition[$key]['default']);
}
$definition[$key]['type'] = $type;
$definition[$key]['mdb2type'] = $type;
}
return $definition;
}
}
return $db->raiseError(MDB2_ERROR_NOT_FOUND, null, null, 'it was not specified an existing table column', __FUNCTION__);
}
示例9: getTableFieldDefinition
/**
* Get the structure of a field into an array
*
* @param string $table name of table that should be used in method
* @param string $field_name name of field that should be used in method
* @return mixed data array on success, a MDB2 error on failure
* @access public
*/
function getTableFieldDefinition($table, $field_name)
{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$result = $db->loadModule('Datatype', null, true);
if (PEAR::isError($result)) {
return $result;
}
$table = $db->quoteIdentifier($table, true);
$fldname = $db->quoteIdentifier($field_name, true);
$query = "SELECT t.table_name,\n c.column_name 'name',\n c.data_type 'type',\n CASE c.is_nullable WHEN 'YES' THEN 1 ELSE 0 END AS 'is_nullable',\n \t\t c.column_default,\n \t\t c.character_maximum_length 'length',\n c.numeric_precision,\n c.numeric_scale,\n c.character_set_name,\n c.collation_name\n FROM INFORMATION_SCHEMA.TABLES t,\n INFORMATION_SCHEMA.COLUMNS c\n WHERE t.table_name = c.table_name\n AND t.table_name = '{$table}'\n AND c.column_name = '{$fldname}'\n ORDER BY t.table_name";
$column = $db->queryRow($query, null, MDB2_FETCHMODE_ASSOC);
if (PEAR::isError($column)) {
return $column;
}
if (empty($column)) {
return $db->raiseError(MDB2_ERROR_NOT_FOUND, null, null, 'it was not specified an existing table column', __FUNCTION__);
}
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
if ($db->options['field_case'] == CASE_LOWER) {
$column['name'] = strtolower($column['name']);
} else {
$column['name'] = strtoupper($column['name']);
}
} else {
$column = array_change_key_case($column, $db->options['field_case']);
}
$mapped_datatype = $db->datatype->mapNativeDatatype($column);
if (PEAR::IsError($mapped_datatype)) {
return $mapped_datatype;
}
list($types, $length, $unsigned, $fixed) = $mapped_datatype;
$notnull = true;
if ($column['is_nullable']) {
$notnull = false;
}
$default = false;
if (array_key_exists('column_default', $column)) {
$default = $column['column_default'];
if (is_null($default) && $notnull) {
$default = '';
} elseif (strlen($default) > 4 && substr($default, 0, 1) == '(' && substr($default, -1, 1) == ')') {
//mssql wraps the default value in parentheses: "((1234))", "(NULL)"
$default = trim($default, '()');
if ($default == 'NULL') {
$default = null;
}
}
}
$definition[0] = array('notnull' => $notnull, 'nativetype' => preg_replace('/^([a-z]+)[^a-z].*/i', '\\1', $column['type']));
if (!is_null($length)) {
$definition[0]['length'] = $length;
}
if (!is_null($unsigned)) {
$definition[0]['unsigned'] = $unsigned;
}
if (!is_null($fixed)) {
$definition[0]['fixed'] = $fixed;
}
if ($default !== false) {
$definition[0]['default'] = $default;
}
foreach ($types as $key => $type) {
$definition[$key] = $definition[0];
if ($type == 'clob' || $type == 'blob') {
unset($definition[$key]['default']);
}
$definition[$key]['type'] = $type;
$definition[$key]['mdb2type'] = $type;
}
return $definition;
}
示例10: getTableFieldDefinition
/**
* Get the structure of a field into an array
*
* @param string $table name of table that should be used in method
* @param string $field_name name of field that should be used in method
* @return mixed data array on success, a MDB2 error on failure
* @access public
*/
function getTableFieldDefinition($table, $field_name)
{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$result = $db->loadModule('Datatype', null, true);
if (PEAR::isError($result)) {
return $result;
}
$table = $db->quote(strtoupper($table), 'text');
$field_name = $db->quote(strtoupper($field_name), 'text');
$query = "SELECT RDB\$RELATION_FIELDS.RDB\$FIELD_NAME AS name,\n RDB\$FIELDS.RDB\$FIELD_LENGTH AS \"length\",\n RDB\$FIELDS.RDB\$FIELD_PRECISION AS \"precision\",\n (RDB\$FIELDS.RDB\$FIELD_SCALE * -1) AS \"scale\",\n RDB\$FIELDS.RDB\$FIELD_TYPE AS field_type_code,\n RDB\$FIELDS.RDB\$FIELD_SUB_TYPE AS field_sub_type_code,\n RDB\$RELATION_FIELDS.RDB\$DESCRIPTION AS description,\n RDB\$RELATION_FIELDS.RDB\$NULL_FLAG AS null_flag,\n RDB\$FIELDS.RDB\$DEFAULT_SOURCE AS default_source\n FROM RDB\$FIELDS\n LEFT JOIN RDB\$RELATION_FIELDS ON RDB\$FIELDS.RDB\$FIELD_NAME = RDB\$RELATION_FIELDS.RDB\$FIELD_SOURCE\n WHERE UPPER(RDB\$RELATION_FIELDS.RDB\$RELATION_NAME)={$table}\n AND UPPER(RDB\$RELATION_FIELDS.RDB\$FIELD_NAME)={$field_name};";
$column = $db->queryRow($query, null, MDB2_FETCHMODE_ASSOC);
if (PEAR::isError($column)) {
return $column;
}
if (empty($column)) {
return $db->raiseError(MDB2_ERROR_NOT_FOUND, null, null, 'it was not specified an existing table column', __FUNCTION__);
}
$column = array_change_key_case($column, CASE_LOWER);
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
if ($db->options['field_case'] == CASE_LOWER) {
$column['name'] = strtolower($column['name']);
} else {
$column['name'] = strtoupper($column['name']);
}
}
$column['type'] = array_key_exists((int) $column['field_type_code'], $this->types) ? $this->types[(int) $column['field_type_code']] : 'undefined';
if ($column['field_sub_type_code'] && array_key_exists((int) $column['field_type_code'], $this->subtypes) && array_key_exists($column['field_sub_type_code'], $this->subtypes[(int) $column['field_type_code']])) {
$column['field_sub_type'] = $this->subtypes[(int) $column['field_type_code']][$column['field_sub_type_code']];
} else {
$column['field_sub_type'] = null;
}
$mapped_datatype = $db->datatype->mapNativeDatatype($column);
if (PEAR::IsError($mapped_datatype)) {
return $mapped_datatype;
}
list($types, $length, $unsigned, $fixed) = $mapped_datatype;
$notnull = !empty($column['null_flag']);
$default = $column['default_source'];
if (is_null($default) && $notnull) {
$default = $types[0] == 'integer' ? 0 : '';
}
$definition[0] = array('notnull' => $notnull, 'nativetype' => $column['type']);
if (!is_null($length)) {
$definition[0]['length'] = $length;
}
if (!is_null($unsigned)) {
$definition[0]['unsigned'] = $unsigned;
}
if (!is_null($fixed)) {
$definition[0]['fixed'] = $fixed;
}
if ($default !== false) {
$definition[0]['default'] = $default;
}
foreach ($types as $key => $type) {
$definition[$key] = $definition[0];
if ($type == 'clob' || $type == 'blob') {
unset($definition[$key]['default']);
}
$definition[$key]['type'] = $type;
$definition[$key]['mdb2type'] = $type;
}
return $definition;
}
示例11: getOutlines
function getOutlines($iPlaceID, $fLon = null, $fLat = null, $fRadius = null)
{
$aOutlineResult = array();
if (!$iPlaceID) {
return $aOutlineResult;
}
if (CONST_Search_AreaPolygons) {
// Get the bounding box and outline polygon
$sSQL = "select place_id,0 as numfeatures,st_area(geometry) as area,";
$sSQL .= "ST_Y(centroid) as centrelat,ST_X(centroid) as centrelon,";
$sSQL .= "ST_YMin(geometry) as minlat,ST_YMax(geometry) as maxlat,";
$sSQL .= "ST_XMin(geometry) as minlon,ST_XMax(geometry) as maxlon";
if ($this->bIncludePolygonAsGeoJSON) {
$sSQL .= ",ST_AsGeoJSON(geometry) as asgeojson";
}
if ($this->bIncludePolygonAsKML) {
$sSQL .= ",ST_AsKML(geometry) as askml";
}
if ($this->bIncludePolygonAsSVG) {
$sSQL .= ",ST_AsSVG(geometry) as assvg";
}
if ($this->bIncludePolygonAsText || $this->bIncludePolygonAsPoints) {
$sSQL .= ",ST_AsText(geometry) as astext";
}
$sFrom = " from placex where place_id = " . $iPlaceID;
if ($this->fPolygonSimplificationThreshold > 0) {
$sSQL .= " from (select place_id,centroid,ST_SimplifyPreserveTopology(geometry," . $this->fPolygonSimplificationThreshold . ") as geometry" . $sFrom . ") as plx";
} else {
$sSQL .= $sFrom;
}
$aPointPolygon = $this->oDB->getRow($sSQL);
if (PEAR::IsError($aPointPolygon)) {
echo var_dump($aPointPolygon);
failInternalError("Could not get outline.", $sSQL, $aPointPolygon);
}
if ($aPointPolygon['place_id']) {
if ($aPointPolygon['centrelon'] !== null && $aPointPolygon['centrelat'] !== null) {
$aOutlineResult['lat'] = $aPointPolygon['centrelat'];
$aOutlineResult['lon'] = $aPointPolygon['centrelon'];
}
if ($this->bIncludePolygonAsGeoJSON) {
$aOutlineResult['asgeojson'] = $aPointPolygon['asgeojson'];
}
if ($this->bIncludePolygonAsKML) {
$aOutlineResult['askml'] = $aPointPolygon['askml'];
}
if ($this->bIncludePolygonAsSVG) {
$aOutlineResult['assvg'] = $aPointPolygon['assvg'];
}
if ($this->bIncludePolygonAsText) {
$aOutlineResult['astext'] = $aPointPolygon['astext'];
}
if ($this->bIncludePolygonAsPoints) {
$aOutlineResult['aPolyPoints'] = geometryText2Points($aPointPolygon['astext'], $fRadius);
}
if (abs($aPointPolygon['minlat'] - $aPointPolygon['maxlat']) < 1.0E-7) {
$aPointPolygon['minlat'] = $aPointPolygon['minlat'] - $fRadius;
$aPointPolygon['maxlat'] = $aPointPolygon['maxlat'] + $fRadius;
}
if (abs($aPointPolygon['minlon'] - $aPointPolygon['maxlon']) < 1.0E-7) {
$aPointPolygon['minlon'] = $aPointPolygon['minlon'] - $fRadius;
$aPointPolygon['maxlon'] = $aPointPolygon['maxlon'] + $fRadius;
}
$aOutlineResult['aBoundingBox'] = array((string) $aPointPolygon['minlat'], (string) $aPointPolygon['maxlat'], (string) $aPointPolygon['minlon'], (string) $aPointPolygon['maxlon']);
}
}
// CONST_Search_AreaPolygons
// as a fallback we generate a bounding box without knowing the size of the geometry
if (!isset($aOutlineResult['aBoundingBox']) && isset($fLon)) {
if ($this->bIncludePolygonAsPoints) {
$sGeometryText = 'POINT(' . $fLon . ',' . $fLat . ')';
$aOutlineResult['aPolyPoints'] = geometryText2Points($sGeometryText, $fRadius);
}
$aBounds = array();
$aBounds['minlat'] = $fLat - $fRadius;
$aBounds['maxlat'] = $fLat + $fRadius;
$aBounds['minlon'] = $fLon - $fRadius;
$aBounds['maxlon'] = $fLon + $fRadius;
$aOutlineResult['aBoundingBox'] = array((string) $aBounds['minlat'], (string) $aBounds['maxlat'], (string) $aBounds['minlon'], (string) $aBounds['maxlon']);
}
return $aOutlineResult;
}
示例12: array
# http://pear.php.net/manual/en/package.mail.mail-mime.php
##---------------------------------------------------
## OBSERVAÇÃO: Caso deseje um exemplo de como enviar arquivos em anexo,
## gere um script com "Formato do e-mail" igual a "HTML".
# Faz o include do PEAR Mail.
include "Mail.php";
# E-mail de destino. Caso seja mais de um destino, crie um array de e-mails.
# *OBRIGATÓRIO*
$recipients = 'contato@funcionalstudio.com.br';
# Cabeçalho do e-mail.
$headers = array('From' => 'contato@funcionalstudio.com.br', 'To' => 'contato@funcionalstudio.com.br', 'Subject' => $motivo, 'Date' => date('r'), 'Reply-To' => $email);
# Utilize esta opção caso deseje definir o e-mail de resposta
# $headers['Reply-To'] = 'EMailDeResposta@DominioDeResposta.com';
# Utilize esta opção caso deseje definir o e-mail de retorno em caso de erro de envio
# $headers['Errors-To'] = 'EMailDeRerornoDeERRO@DominioDeretornoDeErro.com';
# Utilize esta opção caso deseje definir a prioridade do e-mail
# $headers['X-Priority'] = '3'; # 1 UrgentMessage, 3 Normal
# Corpo da Mensagem
$body = $txt;
# Parâmetros para o SMTP. *OBRIGATÓRIO*
$params = array('auth' => true, 'host' => 'smtp.funcionalstudio.com.br', 'username' => 'contato=funcionalstudio.com.br', 'password' => 'contato5535');
# Define o método de envio! queremos 'smtp'. *OBRIGATÓRIO*
$mail_object =& Mail::factory('smtp', $params);
# Envia o email. Se não ocorrer erro, retorna TRUE caso contrário, retorna um
# objeto PEAR_Error. Para ler a mensagem de erro, use o método 'getMessage()'.
$result = $mail_object->send($recipients, $headers, $body);
if (PEAR::IsError($result)) {
echo "<script>alert('Erro ao enviar o e-mail. Tente novamente por favor.');window.location.href='http://'+window.location.hostname+'/contato.html';</script>";
} else {
echo "<script>alert('E-mail enviado com sucesso!');window.location.href='http://'+window.location.hostname+'/contato.html';</script>";
}
示例13: lookup
function lookup()
{
$sPointSQL = 'ST_SetSRID(ST_Point(' . $this->fLon . ',' . $this->fLat . '),4326)';
$iMaxRank = $this->iMaxRank;
$iMaxRank_orig = $this->iMaxRank;
// Find the nearest point
$fSearchDiam = 0.0004;
$iPlaceID = null;
$aArea = false;
$fMaxAreaDistance = 1;
$bIsInUnitedStates = false;
$bPlaceIsTiger = false;
while (!$iPlaceID && $fSearchDiam < $fMaxAreaDistance) {
$fSearchDiam = $fSearchDiam * 2;
// If we have to expand the search area by a large amount then we need a larger feature
// then there is a limit to how small the feature should be
if ($fSearchDiam > 2 && $iMaxRank > 4) {
$iMaxRank = 4;
}
if ($fSearchDiam > 1 && $iMaxRank > 9) {
$iMaxRank = 8;
}
if ($fSearchDiam > 0.8 && $iMaxRank > 10) {
$iMaxRank = 10;
}
if ($fSearchDiam > 0.6 && $iMaxRank > 12) {
$iMaxRank = 12;
}
if ($fSearchDiam > 0.2 && $iMaxRank > 17) {
$iMaxRank = 17;
}
if ($fSearchDiam > 0.1 && $iMaxRank > 18) {
$iMaxRank = 18;
}
if ($fSearchDiam > 0.008 && $iMaxRank > 22) {
$iMaxRank = 22;
}
if ($fSearchDiam > 0.001 && $iMaxRank > 26) {
$iMaxRank = 26;
}
$sSQL = 'select place_id,parent_place_id,rank_search,calculated_country_code from placex';
$sSQL .= ' WHERE ST_DWithin(' . $sPointSQL . ', geometry, ' . $fSearchDiam . ')';
$sSQL .= ' and rank_search != 28 and rank_search >= ' . $iMaxRank;
$sSQL .= ' and (name is not null or housenumber is not null)';
$sSQL .= ' and class not in (\'waterway\',\'railway\',\'tunnel\',\'bridge\',\'man_made\')';
$sSQL .= ' and indexed_status = 0 ';
$sSQL .= ' and (ST_GeometryType(geometry) not in (\'ST_Polygon\',\'ST_MultiPolygon\') ';
$sSQL .= ' OR ST_DWithin(' . $sPointSQL . ', centroid, ' . $fSearchDiam . '))';
$sSQL .= ' ORDER BY ST_distance(' . $sPointSQL . ', geometry) ASC limit 1';
if (CONST_Debug) {
var_dump($sSQL);
}
$aPlace = $this->oDB->getRow($sSQL);
if (PEAR::IsError($aPlace)) {
failInternalError("Could not determine closest place.", $sSQL, $aPlace);
}
$iPlaceID = $aPlace['place_id'];
$iParentPlaceID = $aPlace['parent_place_id'];
$bIsInUnitedStates = $aPlace['calculated_country_code'] == 'us';
}
// Only street found? If it's in the US we can check TIGER data for nearest housenumber
if ($bIsInUnitedStates && $iMaxRank_orig >= 28 && $iPlaceID && ($aPlace['rank_search'] == 26 || $aPlace['rank_search'] == 27)) {
$fSearchDiam = 0.001;
$sSQL = 'SELECT place_id,parent_place_id,30 as rank_search ';
if (CONST_Debug) {
$sSQL .= ', housenumber, ST_distance(' . $sPointSQL . ', centroid) as distance, st_y(centroid) as lat, st_x(centroid) as lon';
}
$sSQL .= ' FROM location_property_tiger WHERE parent_place_id = ' . $iPlaceID;
$sSQL .= ' AND ST_DWithin(' . $sPointSQL . ', centroid, ' . $fSearchDiam . ')';
$sSQL .= ' ORDER BY ST_distance(' . $sPointSQL . ', centroid) ASC limit 1';
// print all house numbers in the parent (street)
if (CONST_Debug) {
$sSQL = preg_replace('/limit 1/', 'limit 100', $sSQL);
var_dump($sSQL);
$aAllHouses = $this->oDB->getAll($sSQL);
foreach ($aAllHouses as $i) {
echo $i['housenumber'] . ' | ' . $i['distance'] * 1000 . ' | ' . $i['lat'] . ' | ' . $i['lon'] . ' | ' . "<br>\n";
}
}
$aPlaceTiger = $this->oDB->getRow($sSQL);
if (PEAR::IsError($aPlace)) {
failInternalError("Could not determine closest Tiger place.", $sSQL, $aPlaceTiger);
}
if ($aPlaceTiger) {
if (CONST_Debug) {
var_dump('found Tiger place', $aPlaceTiger);
}
$bPlaceIsTiger = true;
$aPlace = $aPlaceTiger;
$iPlaceID = $aPlaceTiger['place_id'];
$iParentPlaceID = $aPlaceTiger['parent_place_id'];
// the street
}
}
// The point we found might be too small - use the address to find what it is a child of
if ($iPlaceID && $iMaxRank < 28) {
if ($aPlace['rank_search'] > 28 && $iParentPlaceID && !$bPlaceIsTiger) {
$iPlaceID = $iParentPlaceID;
}
$sSQL = "select address_place_id from place_addressline where place_id = {$iPlaceID} order by abs(cached_rank_address - {$iMaxRank}) asc,cached_rank_address desc,isaddress desc,distance desc limit 1";
//.........这里部分代码省略.........
示例14: send
/**
* send()
*
* Method to send the prepared email, the prepare method
* must be called prior to calling this function.
*
* %attachments must be an associative array with the
* following stucture.
* $attachments['data'] = The actual attachment data
* $attachments['name'] = The filename of the attachment
* $attachments['type'] = The mime content type, defaults to application/octet-stream
* $attachments['encoding'] = The type of encoding to be used, defaults to base64
*
* $headers must be an associative array with the
* key being the header name like so.
* $header['Reply-To'] = "someone@somewhere.com"
*
* If you include values for Subject or From in the $headers
* array they will be used instead of the respective values
* from the prepared notification
*
* @param array $attachments Array of items to attach
* @param array $headers Array of additonal headers to be included
* @return boolean TRUE on success, FALSE on error. See getLastError() for the reason
*/
function send($attachments = NULL, $headers = NULL){
if($this->active == 'N'){
$this->error = "Notification::send(): Skipping inactive message!";
return TRUE;
}
if(empty($this->prepared_body) || empty($this->prepared_addresses)){
$this->error = "Notification::send(): Skipping message with empty body or addresses!";
var_dump($this);
var_dump($this->parameters);
return FALSE;
}
if($headers != NULL && !is_array($headers)){
$this->error = "Notification::send(): Invalid headers provided!";
return FALSE;
}else{
$found_from = FALSE;
$found_subject = FALSE;
foreach($headers as $header => $value){
if(strtolower($header) == "from")
$found_from = TRUE;
elseif(strtolower($header) == "subject")
$found_subject = TRUE;
}
if(!$found_from)
$headers['From'] = $this->prepared_from;
if(!$found_subject)
$headers['Subject'] = $this->prepared_subject;
}
$mime = new Mail_mime();
$mime->setTXTBody($this->prepared_body);
if(is_array($attachments) && count($attachments) > 0){
foreach($attachments as $attach){
if(empty($attach['data']) || empty($attach['name'])){
$this->error = "Notification::send(): Invalid attachment!";
return FALSE;
}
if(!isset($attach['type'])) $attach['type'] = 'application/octet-stream';
if(!isset($attach['encoding'])) $attach['encoding'] = 'base64';
$result = $mime->addAttachment($attach['data'], $attach['type'], $attach['name'], FALSE, $attach['encoding']);
if(PEAR::IsError($result)){
$this->error = "Notification::send(): Error adding attachment: ".$result->getMessage();
return FALSE;
}
}
}
$message = $mime->get();
$headers = $mime->headers($headers);
$mailer = Mail::factory('mail');
$result = $mailer->send($this->prepared_addresses, $headers, $message);
if(PEAR::IsError($result)){
$this->error = "Notification::send(): Error sending message: ".$result->getMessage();
return FALSE;
}
return TRUE;
}
示例15: getTableFieldDefinition
/**
* Get the structure of a field into an array
*
* @param string $table name of table that should be used in method
* @param string $field_name name of field that should be used in method
* @return mixed data array on success, a MDB2 error on failure
* @access public
*/
function getTableFieldDefinition($table, $field_name)
{
$db =& $this->getDBInstance();
if (PEAR::isError($db)) {
return $db;
}
$result = $db->loadModule('Datatype', null, true);
if (PEAR::isError($result)) {
return $result;
}
$query = 'SELECT column_name name, data_type "type", nullable, data_default "default"';
$query .= ', COALESCE(data_precision, data_length) "length", data_scale "scale"';
$query .= ' FROM user_tab_columns';
$query .= ' WHERE (table_name=' . $db->quote($table, 'text') . ' OR table_name=' . $db->quote(strtoupper($table), 'text') . ')';
$query .= ' AND (column_name=' . $db->quote($field_name, 'text') . ' OR column_name=' . $db->quote(strtoupper($field_name), 'text') . ')';
$query .= ' ORDER BY column_id';
$column = $db->queryRow($query, null, MDB2_FETCHMODE_ASSOC);
if (PEAR::isError($column)) {
return $column;
}
if (empty($column)) {
return $db->raiseError(MDB2_ERROR_NOT_FOUND, null, null, 'it was not specified an existing table column', __FUNCTION__);
}
$column = array_change_key_case($column, CASE_LOWER);
if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
if ($db->options['field_case'] == CASE_LOWER) {
$column['name'] = strtolower($column['name']);
} else {
$column['name'] = strtoupper($column['name']);
}
}
$mapped_datatype = $db->datatype->mapNativeDatatype($column);
if (PEAR::IsError($mapped_datatype)) {
return $mapped_datatype;
}
list($types, $length, $unsigned, $fixed) = $mapped_datatype;
$notnull = false;
if (!empty($column['nullable']) && $column['nullable'] == 'N') {
$notnull = true;
}
$default = false;
if (array_key_exists('default', $column)) {
$default = $column['default'];
if ($default === 'NULL') {
$default = null;
}
if (is_null($default) && $notnull) {
$default = '';
}
}
$definition[0] = array('notnull' => $notnull, 'nativetype' => $column['type']);
if (!is_null($length)) {
$definition[0]['length'] = $length;
}
if (!is_null($unsigned)) {
$definition[0]['unsigned'] = $unsigned;
}
if (!is_null($fixed)) {
$definition[0]['fixed'] = $fixed;
}
if ($default !== false) {
$definition[0]['default'] = $default;
}
foreach ($types as $key => $type) {
$definition[$key] = $definition[0];
if ($type == 'clob' || $type == 'blob') {
unset($definition[$key]['default']);
}
$definition[$key]['type'] = $type;
$definition[$key]['mdb2type'] = $type;
}
if ($type == 'integer') {
$query = "SELECT DISTINCT name\r\n FROM all_source\r\n WHERE type='TRIGGER'\r\n AND UPPER(text) like '%ON " . strtoupper($db->escape($table, 'text')) . "%'";
$result = $db->query($query);
if (!PEAR::isError($result)) {
while ($row = $result->fetchRow(MDB2_FETCHMODE_ASSOC)) {
$row = array_change_key_case($row, CASE_LOWER);
$trquery = 'SELECT text
FROM all_source
WHERE name=' . $db->quote($row['name'], 'text') . ' ORDER BY line';
$triggersth = $db->query($trquery);
$triggerstr = '';
while ($triggerline = $triggersth->fetchRow(MDB2_FETCHMODE_ASSOC)) {
$triggerline = array_change_key_case($triggerline, CASE_LOWER);
$triggerstr .= $triggerline['text'] . ' ';
}
$matches = array();
if (preg_match('/.*\\W(.+)\\.nextval into :NEW\\.' . $field_name . ' FROM dual/i', $triggerstr, $matches)) {
// we reckon it's an autoincrementing trigger on field_name
// there will be other pcre patterns needed here for other ways of mimicking auto_increment in ora.
$definition[0]['autoincrement'] = $matches[1];
}
//.........这里部分代码省略.........