public static function DecryptMsg($data, $sReqData) { $sMsg = ""; // 解析之后的明文 $errCode = self::$instance->DecryptMsg($data['msg_signature'], $data['timestamp'], $data['nonce'], $sReqData, $sMsg); if ($errCode != 0) { self::Error("ERR: " . $errCode, $errCode); } return Util_String::XMLToArray($sMsg); }
public static function Format($result, $format = 'json') { switch ($format) { case 'json': default: $result = Util_String::jsonEncode($result); break; } return $result; }
public static function save_with_token($member_id, $email) { if (!($obj = Model_MemberEmailPre::get4member_id($member_id))) { $obj = Model_MemberEmailPre::forge(); } $obj->member_id = $member_id; $obj->email = $email; $obj->token = Security::generate_token(); $obj->code = Util_String::get_random_code(static::$_properties['code']['form']['validation']['exact_length'][0]); if (!$obj->save()) { return false; } return $obj; }
public static function GetID($length, $table) { $id = Util_String::GenRandomStr($length, Util_String::CHAR_NUM); while (self::$idArray[$id]) { if ($length <= 5) { //保证程序健壮性 防止死循环 return false; } $id = Util_String::GenRandomStr($length, Util_String::CHAR_NUM); } if (DB::Exists($table, array('id' => $id))) { return false; } self::$idArray[$id] = 1; return $id; }
/** * 获取一个二维数组的一列数据 * * @param array $array 输入数组 * @param string $colKey 指定列 * @return array */ public static function GetColumn($array, $colKey, $subName = null, $nullFilter = true) { if (!$array || !is_array($array) || !$colKey) { return null; } if (is_object($array)) { $array = self::ObjectToArray($array); } $colArray = array(); foreach ($array as $index => $value) { if (is_object($value)) { $curValue = $value->{$colKey}; } else { if (is_array($value)) { $curValue = $value[$colKey]; } else { continue; } } if (is_array($curValue) || is_object($curValue)) { $curKey = Util_String::MD5($curValue); } else { $curKey = $curValue; } if ($nullFilter) { if (isset($curValue) && $curValue !== '') { $colArray[$curKey] = $curValue; } } else { $colArray[] = $curValue; } if ($subName && $value[$subName]) { $subValues = self::GetColumn($value[$subName], $colKey, $subName); if ($subValues) { foreach ($subValues as $subIndex => $subValue) { $colArray[$subValue] = $subValue; } } } } $colArray = array_values($colArray); return $colArray; }
public function request($method, $param, $path) { $content = self::buildXML($param); $queueName = $this->queueName; $date = Util_Time::GetGMTDate(); $canonicalizedMQSHeaders = array('x-mns-version' => $this->version); $sign = $this->createSign($method, $canonicalizedMQSHeaders, $date, $path); $host = $this->accountID . '.' . self::$beijingURL; $headers = array('Host' => $host, 'Date' => $date, 'Content-Type' => $this->contentType, 'Authorization' => $sign); foreach ($canonicalizedMQSHeaders as $key => $value) { $headers[$key] = $value; } $uri = $host . $path; $result = self::Http($uri, $method, $headers, $content, $path); if ($result) { $result = Util_String::XMLToArray($result); } return $result; }
/** * 文件上传 * */ public static function Save($uploadFileKey, $prefix = '', $saveFolder = '', $savePath = '') { $file = $_FILES[$uploadFileKey]; if (!$file) { System::AddError("文件上传失败,没有文件", System::MESSAGE_SYS); return false; } $error = $file['error']; $tmpName = $file['tmp_name']; if ($error != UPLOAD_ERR_OK) { System::AddError("文件上传失败,错误码:" . $error, System::MESSAGE_SYS); return false; } $maxSize = self::$max_upload_size; if ($file['size'] > self::$max_upload_size * 1024 * 1024) { System::AddError("文件过大,最大不得超过{$maxSize}M:", System::MESSAGE_SYS); return false; } if (!$savePath) { $fileNames = explode('.', $file['name']); $fileName = md5($fileNames[0]); $fileName = $prefix . $fileName . Util_String::GenRandomStr(6); $countNamesCount = count($fileNames); if ($countNamesCount > 1) { $fileName .= ".{$fileNames[$countNamesCount - 1]}"; } $fileName = strtolower($fileName); $folder = self::GetDefaultFolder($file['type'], $saveFolder); if (!$folder) { return false; } $savePath = $folder . '/' . $fileName; } $result = move_uploaded_file($tmpName, $savePath); if (!$result) { System::AddError("文件保存失败~"); return false; } $count = strlen(ROOT_PATH); $savePath = substr($savePath, $count); return $savePath; }
/** * Get the validation message for an attribute and rule. * * @param string $attribute * @param string $rule * @return string */ protected function getMessage($attribute, $rule) { $lowRule = Util_String::snake($rule); return $this->messageFormats[$lowRule]; }
protected static function get_cache_key($url, $device_type = 'pc', $prefix = '') { $target_str = Util_String::convert2accepted_charas4cache_id(preg_replace('#https?://#u', '', $url)); return sprintf('%s%s_%s', $prefix, $target_str, $device_type); }
public function handle_request_internal() { if (Bll_Weshop::weshopPropsIsMaintain()) { return array('status' => 'error', 'message' => "系统维护中,请稍后再试!"); } header("Access-Control-Allow-Origin: *"); //获取房源 获取房源图片 $brokerId = $this->_params['brokerId']; $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId); if (!$brokerInfo) { throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS); } //获取房源信息 $propId = $this->_params['propId']; $propInfo = Model_Weshop_Props::getWeshopProp($propId); if (empty($propInfo)) { throw new Exception_Property_NotFound(Const_APIStatus::E_PROP_INFO_FAILED); } //小区信息 $commInfo = Bll_Community_APIComm::getInstance()->getInfoByIdMapping($propInfo->commId, 2); $city_set = APF::get_instance()->get_config("city_set", "multicity"); $cityPinYin = $city_set[$brokerInfo->cityId]['pinyin']; $row = array(); $row['propId'] = $propId; $row['floor'] = $propInfo->floor; $row['totalFloor'] = $propInfo->totalFloor; $row['commId'] = $propInfo->commId; $row['commName'] = $commInfo['commName']; $row['commLocation'] = $commInfo['commLocal']; $row['sosolat'] = $commInfo['sosolat']; //纬度 $row['sosolng'] = $commInfo['sosolng']; //经度 //$areaId = substr($commInfo['areaCode'], 0, 8); //$areaInfo = Model_City_TypeCode::getTypeName($areaId); //$row['areaName'] = $areaInfo->typeName; $blockId = $commInfo['areaCode']; $blockInfo = Bll_Commtype_Api::getInfoByTypeCode($blockId); $areaInfo = Bll_Commtype_Api::getInfoByTypeId($blockInfo['parentId']); $row['areaName'] = $areaInfo['typeName']; $row['blockName'] = $blockInfo['typeName']; $row['room'] = $propInfo->room; $row['hall'] = $propInfo->hall; $row['toilet'] = $propInfo->toilet; $row['area'] = $propInfo->acreage; $row['areaUnit'] = '平米'; $row['price'] = intval($propInfo->price); $row['priceUnit'] = '万'; $isJson = Util_String::isJson($propInfo->description); $row['propDescription'] = $isJson ? json_decode($propInfo->description) : $propInfo->description; $row['title'] = $propInfo->title ? $propInfo->title : $row['commName'] . ' ' . $row['room'] . '室' . $row['hall'] . '厅' . ' ' . $row['area'] . '平' . ' ' . $row['price'] . '万'; $row['cityPinYin'] = $cityPinYin; //从数据库取房源特色id $tagIds = $propInfo->tagIds; $tagIds = explode(',', $tagIds); $allTags = APF::get_instance()->get_config('weshop_tags'); $propTags = array(); foreach ($tagIds as $tagId) { $tagId = trim($tagId); if ($tagId) { $tag = array(); $tag['tagId'] = $tagId; $tag['tagName'] = $allTags[$tagId]; $propTags[] = $tag; } } $row['tags'] = $propTags; //获取房源图片 $propImages = Model_Weshop_PropImages::getWeshopPropImages($propId); $row['propImages'] = $row['outdoorImage'] = array(); foreach ($propImages as $propImage) { $image = array(); $image['host'] = $propImage->imageHostId; $image['hash'] = $propImage->imageHash; $url = Util_ImageUtils::getResizeURL($propImage->imageHash, $propImage->imageHostId, 290, 240); $url = str_replace("display", "display/e", $url); //无水印格式 $url = str_replace("240", "240c", $url); //图片url 加c $image['smallImageUrl'] = $url; $url = Util_ImageUtils::getResizeURL($propImage->imageHash, $propImage->imageHostId, 600, 600); $url = str_replace("display", "display/e", $url); //无水印格式 $image['bigImageUrl'] = $url; //区分户型图和室内图 if ($propImage->imageType == 1) { $row['propImages'][] = $image; } elseif ($propImage->imageType == 2) { $row['outdoorImage'][] = $image; } } $row['cityId'] = $brokerInfo->cityId; return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => $row); }
/** * 拼接租房最后房源数据 * @param $proInfos 房源信息 * @param $proClickInfo 房源点击量信息 * @param $adProInfos 房源主推信息 * @param $propMianNew 房源主表信息 */ private function initZfProData($proInfos, $proClickInfo, $adProInfos, $propMianNew) { $data = $orderProId = array(); $tD = date('Ymd'); foreach ($proInfos as $proInVal) { $pro = array(); $orderProId[] = $proInVal->proid; $pro['id'] = $proInVal->proid; $pro['name'] = $propMianNew[$proInVal->proid]['contentBasic']['title']; $pro['commName'] = Util_String::truncate($proInVal->commname, 20, ''); $pro['area'] = $propMianNew[$proInVal->proid]['contentBasic']['areanum']; $roomStr = ''; if ($propMianNew[$proInVal->proid]['contentBasic']['roomnum']) { $roomStr .= $propMianNew[$proInVal->proid]['contentBasic']['roomnum'] . '室'; } if ($propMianNew[$proInVal->proid]['contentBasic']['hallnum']) { $roomStr .= $propMianNew[$proInVal->proid]['contentBasic']['hallnum'] . '厅'; } $pro['houseType'] = $roomStr; $pro['floor'] = intval($propMianNew[$proInVal->proid]['contentBasic']['floor']); $pro['floorAll'] = intval($propMianNew[$proInVal->proid]['contentBasic']['totalfloor']); $pro['price'] = $proInVal->pricenum * 100; $pro['day'] = Bll_House_HzHouse::getLeftDays($proInVal->created); if ($pro['day']) { $pro['day'] .= '天'; } else { $pro['day'] = '<1天'; } /* $createDay = date('Ymd',$proInVal->created); if ($tD == $createDay) { $pro['day'] = '新发'; } else { $timeFixstr = strtotime($createDay) + 86400; $leftDays = 90 - floor((time() - $timeFixstr) / 86400); $leftDays = $leftDays > 0 ? $leftDays : 0; $pro['day'] = $leftDays . '天'; } */ $pro['clickNum'] = intval($proClickInfo[$proInVal->proid]); $pro['isChoose'] = $adProInfos[$proInVal->proid] ? 1 : 0; $pro['rentType'] = $propMianNew[$proInVal->proid]['contentBasic']['renttype'] == 1 ? 0 : 1; //出租方式,0整租,1合租 $data[] = $pro; } //根据最新发布时间排序 array_multisort($orderProId, SORT_DESC, $data); $this->outData($data, 1); }
/** * @dataProvider truncate4line_provider */ public function test_truncate4line($str = null, $num = null, $trimmarker = null, $is_rtrim = null, $expected = null) { list($test, $is_truncated) = Util_String::truncate4line($str, $num, $trimmarker, $is_rtrim); $this->assertEquals($expected, $test); }
public function getUuid() { if (!$this->uuid) { $this->uuid = Util_String::uuid(); } return $this->uuid; }
public function handle_request_internal() { if (Bll_Weshop::weshopPropsIsMaintain()) { return array('status' => 'error', 'message' => "系统维护中,请稍后再试!"); } header("Access-Control-Allow-Origin: *"); $brokerId = $this->_params['brokerId']; $brokerInfo = Model_Broker_AjkBrokerExtend::findWithBrokerId($brokerId); if (!$brokerInfo) { throw new Exception_BrokerNotFoundException('经纪人不存在', Const_APIStatus::E_BROKER_NOT_EXISTS); } $sinceId = isset($this->_params['sinceId']) ? intval($this->_params['sinceId']) : 0; //从$sinceId 行开始读 $per = isset($this->_params['per']) ? $this->_params['per'] : 10; //每页显示的条数 //获取经纪人房源 $brokerProps = Model_Weshop_Props::getWeshopPropsByBrokerId($brokerId, $per + 1, $sinceId); $totalProps = Model_Weshop_Props::getWeshopPropsCount($brokerId); $propList = array(); $hasNextPage = 0; if (!empty($brokerProps)) { $hasNextPage = count($brokerProps) > $per ? 1 : 0; if ($hasNextPage) { array_pop($brokerProps); $sinceId += $per; } else { $sinceId = 0; } $propIds = array(); $commIds = array(); foreach ($brokerProps as $prop) { $propIds[] = $prop->id; $commIds[] = $prop->commId; } //批量获取小区信息 list($commInfos, $areaIds, $blockIds) = $this->getCommInfos($commIds); $araNames = $this->getCommTypeInfo($areaIds); $blockIdNames = $this->getCommTypeInfo($blockIds); //批量获取房源默认图片 $defaultImages = $this->getPropDefaultImage($propIds); foreach ($brokerProps as $brokerProp) { $row = array(); $row['propId'] = $brokerProp->id; $row['commId'] = $brokerProp->commId; $row['commName'] = $commInfos[$brokerProp->commId]['commName']; //批量获取小区信息 commIds propIds $areaId = substr($commInfos[$brokerProp->commId]['areaCode'], 0, 8); $blockId = $commInfos[$brokerProp->commId]['areaCode']; $row['areaName'] = $araNames[$areaId]; //批量获取区域 板块 $row['blockName'] = $blockIdNames[$blockId]; //批量获取区域 板块 $row['room'] = $brokerProp->room; $row['hall'] = $brokerProp->hall; $row['toilet'] = $brokerProp->toilet; $row['area'] = $brokerProp->acreage; $row['areaUnit'] = '平米'; $row['price'] = intval($brokerProp->price); $row['priceUnit'] = '万'; $isJson = Util_String::isJson($brokerProp->description); $row['propDescription'] = $isJson ? json_decode($brokerProp->description) : $brokerProp->description; $row['title'] = $brokerProp->title ? $brokerProp->title : $row['commName'] . ' ' . $row['room'] . '室' . $row['hall'] . '厅' . ' ' . $row['area'] . '平' . ' ' . $row['price'] . '万'; $imageUrl = PageHelper::pure_static_url(APF::get_instance()->get_config('prop_image_url_default', 'weshop', 'img/mobile/app/weshop_prop_default.jpg')); $url = Util_ImageUtils::getResizeURL($defaultImages[$brokerProp->id]['imageHash'], $defaultImages[$brokerProp->id]['imageHostId'], 290, 240); $url = str_replace("display", "display/e", $url); //无水印格式 $url = str_replace("240", "240c", $url); $row['imageUrl'] = $defaultImages[$brokerProp->id] ? $url : $imageUrl; $row['previewUrl'] = Bll_Weshop::getPropPreviewUrl(array('brokerId' => $brokerId, 'propId' => $brokerProp->id)); $propList[] = $row; } } return array('status' => Const_APIStatus::RETURN_CODE_OK, 'data' => array('propList' => $propList, 'sinceId' => $sinceId, 'hasNextPage' => $hasNextPage, 'totalProps' => $totalProps)); }
public function initComboZfProData($proInfos, $propMianNew, $combolist) { $data = $orderProId = array(); $tD = date('Ymd'); foreach ($proInfos as $proInVal) { $pro = array(); $orderProId[] = $proInVal->proid; $pro['id'] = $proInVal->proid; $pro['name'] = $propMianNew[$proInVal->proid]['contentBasic']['title']; $pro['commName'] = Util_String::truncate($proInVal->commname, 20, ''); $pro['area'] = $propMianNew[$proInVal->proid]['contentBasic']['areanum']; $roomStr = ''; if ($propMianNew[$proInVal->proid]['contentBasic']['roomnum']) { $roomStr .= $propMianNew[$proInVal->proid]['contentBasic']['roomnum'] . '室'; } if ($propMianNew[$proInVal->proid]['contentBasic']['hallnum']) { $roomStr .= $propMianNew[$proInVal->proid]['contentBasic']['hallnum'] . '厅'; } $pro['houseType'] = $roomStr; $pro['floor'] = intval($propMianNew[$proInVal->proid]['contentBasic']['floor']); $pro['floorAll'] = intval($propMianNew[$proInVal->proid]['contentBasic']['totalfloor']); $pro['price'] = $proInVal->pricenum; $pro['day'] = Bll_House_HzHouse::getLeftDays($proInVal->created); if ($pro['day']) { $pro['day'] .= '天'; } else { $pro['day'] = '<1天'; } /* $createDay = date('Ymd',$proInVal->created); if ($tD == $createDay) { $pro['day'] = '新发'; } else { $timeFixstr = strtotime($createDay) + 86400; $leftDays = 90 - floor((time() - $timeFixstr) / 86400); $leftDays = $leftDays > 0 ? $leftDays : 0; $pro['day'] = $leftDays . '天'; } */ foreach ($combolist as $val) { if ($val['houseId'] == $proInVal->proid) { $pro['status'] = $val['state']; } } if (!$pro['status']) { $pro['status'] = 2; } $pro['rentType'] = $propMianNew[$proInVal->proid]['contentBasic']['renttype'] == 1 ? 0 : 1; //出租方式,0整租,1合租 $data[] = $pro; } //根据最新发布时间排序 array_multisort($orderProId, SORT_DESC, $data); return $data; }
public static function dbRandomId($pkName = 'id') { $pkName = $pkName ? $pkName : 'id'; $randomId = Util_String::GenRandomStr(8, Util_String::CHAR_NUM); $db = self::dbObject(); if ($db->exsits(array($pkName => $randomId), $pkName)) { return null; } else { return $randomId; } }
protected function set_body($data = array()) { $this->options['body'] = $this->parser->render($this->config['body'], $data); $this->options['body'] .= $this->get_signature($data); $this->options['body'] = Util_String::normalize_platform_dependent_chars($this->options['body'], $this->options['is_use_normalizer']); }