* @param array $bindings
* @param \Closure $callback
* @return mixed
*
* @throws \Illuminate\Database\QueryException
*/
protected function runQueryCallback($query, $bindings, Closure $callback)
{
// To execute the statement, we'll simply call the callback, which will actually
// run the SQL against the PDO connection. Then we can calculate the time it
// took to execute and log the query SQL, bindings and time in our memory.
try {
$result = $callback($query, $bindings);
}
// If an exception occurs when attempting to run a query, we'll format the error
// message to include the bindings with SQL, which will make this exception a
// lot more helpful to the developer instead of just the database's errors.
catch (Exception $e) {
throw new QueryException(
$query, $this->prepareBindings($bindings), $e
);
}
return $result;
}
/**
* Log a query in the connection's query log.
*
* @param string $query
* @param array $bindings
* @param float|null $time
* @return void
*/
public function logQuery($query, $bindings, $time = null)
{
$this->event(new QueryExecuted($query, $bindings, $time, $this));
if ($this->loggingQueries) {
"SQLSTATE[42S02]: Base table or view not found: 1146 Table 'tbd_platform.doudian_product' doesn't exist (SQL: select * from `doudian_product` where `delta_days` <= 7 and `delta_days` >= 1 order by `delta_sell_num` desc limit 21 offset 0)"
/**
* Run a select statement against the database.
*
* @param string $query
* @param array $bindings
* @param bool $useReadPdo
* @return array
*/
public function select($query, $bindings = [], $useReadPdo = true)
{
return $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) {
if ($this->pretending()) {
return [];
}
// For select statements, we'll simply execute the query and return an array
// of the database result set. Each element in the array will be a single
// row from the database table, and will either be an array or objects.
$statement = $this->prepared($this->getPdoForSelect($useReadPdo)
->prepare($query));
$this->bindValues($statement, $this->prepareBindings($bindings));
$statement->execute();
return $statement->fetchAll();
});
}
/**
* Run a select statement against the database and returns a generator.
*
* @param string $query
* @param array $bindings
* @param bool $useReadPdo
* @return \Generator
*/
public function cursor($query, $bindings = [], $useReadPdo = true)
{
$statement = $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) {
"SQLSTATE[42S02]: Base table or view not found: 1146 Table 'tbd_platform.doudian_product' doesn't exist"
/**
* Run a select statement against the database.
*
* @param string $query
* @param array $bindings
* @param bool $useReadPdo
* @return array
*/
public function select($query, $bindings = [], $useReadPdo = true)
{
return $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) {
if ($this->pretending()) {
return [];
}
// For select statements, we'll simply execute the query and return an array
// of the database result set. Each element in the array will be a single
// row from the database table, and will either be an array or objects.
$statement = $this->prepared($this->getPdoForSelect($useReadPdo)
->prepare($query));
$this->bindValues($statement, $this->prepareBindings($bindings));
$statement->execute();
return $statement->fetchAll();
});
}
/**
* Run a select statement against the database and returns a generator.
*
* @param string $query
* @param array $bindings
* @param bool $useReadPdo
* @return \Generator
*/
public function cursor($query, $bindings = [], $useReadPdo = true)
{
$statement = $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) {
return $result;
}
/**
* Run a SQL statement.
*
* @param string $query
* @param array $bindings
* @param \Closure $callback
* @return mixed
*
* @throws \Illuminate\Database\QueryException
*/
protected function runQueryCallback($query, $bindings, Closure $callback)
{
// To execute the statement, we'll simply call the callback, which will actually
// run the SQL against the PDO connection. Then we can calculate the time it
// took to execute and log the query SQL, bindings and time in our memory.
try {
$result = $callback($query, $bindings);
}
// If an exception occurs when attempting to run a query, we'll format the error
// message to include the bindings with SQL, which will make this exception a
// lot more helpful to the developer instead of just the database's errors.
catch (Exception $e) {
throw new QueryException(
$query, $this->prepareBindings($bindings), $e
);
}
return $result;
}
/**
* Log a query in the connection's query log.
*
* @param string $query
* @param array $bindings
* @param float|null $time
* Run a SQL statement and log its execution context.
*
* @param string $query
* @param array $bindings
* @param \Closure $callback
* @return mixed
*
* @throws \Illuminate\Database\QueryException
*/
protected function run($query, $bindings, Closure $callback)
{
$this->reconnectIfMissingConnection();
$start = microtime(true);
// Here we will run this query. If an exception occurs we'll determine if it was
// caused by a connection that has been lost. If that is the cause, we'll try
// to re-establish connection and re-run the query with a fresh connection.
try {
$result = $this->runQueryCallback($query, $bindings, $callback);
} catch (QueryException $e) {
$result = $this->handleQueryException(
$e, $query, $bindings, $callback
);
}
// Once we have run the query we will calculate the time that it took to run and
// then log the query, bindings, and execution time so we will report them on
// the event that the developer needs them. We'll log time in milliseconds.
$this->logQuery(
$query, $bindings, $this->getElapsedTime($start)
);
return $result;
}
/**
* Run a SQL statement.
*
* @param string $query
*/
public function select($query, $bindings = [], $useReadPdo = true)
{
return $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) {
if ($this->pretending()) {
return [];
}
// For select statements, we'll simply execute the query and return an array
// of the database result set. Each element in the array will be a single
// row from the database table, and will either be an array or objects.
$statement = $this->prepared($this->getPdoForSelect($useReadPdo)
->prepare($query));
$this->bindValues($statement, $this->prepareBindings($bindings));
$statement->execute();
return $statement->fetchAll();
});
}
/**
* Run a select statement against the database and returns a generator.
*
* @param string $query
* @param array $bindings
* @param bool $useReadPdo
* @return \Generator
*/
public function cursor($query, $bindings = [], $useReadPdo = true)
{
$statement = $this->run($query, $bindings, function ($query, $bindings) use ($useReadPdo) {
if ($this->pretending()) {
return [];
}
// First we will create a statement for the query. Then, we will set the fetch
// mode and prepare the bindings for the query. Once that's done we will be
// ready to execute the query against the database and return the cursor.
if (is_null($original)) {
$this->columns = $columns;
}
$results = $this->processor->processSelect($this, $this->runSelect());
$this->columns = $original;
return collect($results);
}
/**
* Run the query as a "select" statement against the connection.
*
* @return array
*/
protected function runSelect()
{
return $this->connection->select(
$this->toSql(), $this->getBindings(), ! $this->useWritePdo
);
}
/**
* Paginate the given query into a simple paginator.
*
* @param int $perPage
* @param array $columns
* @param string $pageName
* @param int|null $page
* @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
*/
public function paginate($perPage = 15, $columns = ['*'], $pageName = 'page', $page = null)
{
$page = $page ?: Paginator::resolveCurrentPage($pageName);
$total = $this->getCountForPagination($columns);
$results = $total ? $this->forPage($page, $perPage)->get($columns) : collect();
$result = (array) $this->first([$column]);
return count($result) > 0 ? reset($result) : null;
}
/**
* Execute the query as a "select" statement.
*
* @param array $columns
* @return \Illuminate\Support\Collection
*/
public function get($columns = ['*'])
{
$original = $this->columns;
if (is_null($original)) {
$this->columns = $columns;
}
$results = $this->processor->processSelect($this, $this->runSelect());
$this->columns = $original;
return collect($results);
}
/**
* Run the query as a "select" statement against the connection.
*
* @return array
*/
protected function runSelect()
{
return $this->connection->select(
$this->toSql(), $this->getBindings(), ! $this->useWritePdo
);
}
/**
* Paginate the given query into a simple paginator.
// If we actually found models we will also eager load any relationships that
// have been specified as needing to be eager loaded, which will solve the
// n+1 query issue for the developers to avoid running a lot of queries.
if (count($models = $builder->getModels($columns)) > 0) {
$models = $builder->eagerLoadRelations($models);
}
return $builder->getModel()->newCollection($models);
}
/**
* Get the hydrated models without eager loading.
*
* @param array $columns
* @return \Illuminate\Database\Eloquent\Model[]
*/
public function getModels($columns = ['*'])
{
return $this->model->hydrate(
$this->query->get($columns)->all()
)->all();
}
/**
* Eager load the relationships for the models.
*
* @param array $models
* @return array
*/
public function eagerLoadRelations(array $models)
{
foreach ($this->eagerLoad as $name => $constraints) {
// For nested eager loads we'll skip loading them here and they will be set as an
// eager load on the query to retrieve the relation so that they will be eager
// loaded on that query, because that is where they get hydrated as models.
if (strpos($name, '.') === false) {
$models = $this->eagerLoadRelation($models, $name, $constraints);
}
}
{
if ($result = $this->first([$column])) {
return $result->{$column};
}
}
/**
* Execute the query as a "select" statement.
*
* @param array $columns
* @return \Illuminate\Database\Eloquent\Collection|static[]
*/
public function get($columns = ['*'])
{
$builder = $this->applyScopes();
// If we actually found models we will also eager load any relationships that
// have been specified as needing to be eager loaded, which will solve the
// n+1 query issue for the developers to avoid running a lot of queries.
if (count($models = $builder->getModels($columns)) > 0) {
$models = $builder->eagerLoadRelations($models);
}
return $builder->getModel()->newCollection($models);
}
/**
* Get the hydrated models without eager loading.
*
* @param array $columns
* @return \Illuminate\Database\Eloquent\Model[]
*/
public function getModels($columns = ['*'])
{
return $this->model->hydrate(
$this->query->get($columns)->all()
)->all();
}
/**
* Paginate the given query into a simple paginator.
*
* @param int $perPage
* @param array $columns
* @param string $pageName
* @param int|null $page
* @return \Illuminate\Contracts\Pagination\Paginator
*/
public function simplePaginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
{
$page = $page ?: Paginator::resolveCurrentPage($pageName);
$perPage = $perPage ?: $this->model->getPerPage();
// Next we will set the limit and offset for this query so that when we get the
// results we get the proper section of results. Then, we'll create the full
// paginator instances for these results with the given page and per page.
$this->skip(($page - 1) * $perPage)->take($perPage + 1);
return $this->simplePaginator($this->get($columns), $perPage, $page, [
'path' => Paginator::resolveCurrentPath(),
'pageName' => $pageName,
]);
}
/**
* Save a new model and return the instance.
*
* @param array $attributes
* @return \Illuminate\Database\Eloquent\Model|$this
*/
public function create(array $attributes = [])
{
return tap($this->newModelInstance($attributes), function ($instance) {
$instance->save();
});
}
/**
* Save a new model and return the instance. Allow mass-assignment.
if($orderByType != 'DESC'){
$orderByType = 'ASC';
}
$limit = 20;
$title = "短视频商品库-抖店商品排行";
if($tag) {
$title = $tag."类短视频商品-抖店商品排行";
}
$description = "已收录1500万抖音小店商品数据";
$keywords = '抖音,抖店,抖音小店,抖商,抖音电商,抖音卖货';
$currentPage = $request->input('p', 1);
if($tagId > 0){
$productList = DoudianProduct::where(['first_cid' => $tagId])
->where('delta_days', '<=', 7)
->where('delta_days', '>=', 1)
->orWhere(['second_cid' => $tagId])
->orWhere(['cid' => $tagId])
->orderBy($orderBy, $orderByType)->simplePaginate($limit);
} else {
$productList = DoudianProduct::where('delta_days', '<=', 7)->where('delta_days', '>=', 1)->orderBy($orderBy, $orderByType)->simplePaginate($limit);
}
if( $productList->currentPage() > 1 && !Gate::allows('vip') ){
$info = '成为会员可继续查看更多抖音商品数据';
return view('info', compact('info'));
} else {
}
$currentModule = 'douyin';
$productList->appends([
'ot' => $orderByType,
'order' => $orderBy,
//'s' => $keyword,
'tag' => $tag,
//'region' => $region,
]);
$productTags = DoudianTag::get();
$tagDict = Array();
foreach($productTags as $productTag){
$tagDict[$productTag->id] = $productTag->name;
/**
* Get the middleware assigned to the controller.
*
* @return array
*/
public function getMiddleware()
{
return $this->middleware;
}
/**
* Execute an action on the controller.
*
* @param string $method
* @param array $parameters
* @return \Symfony\Component\HttpFoundation\Response
*/
public function callAction($method, $parameters)
{
return call_user_func_array([$this, $method], $parameters);
}
/**
* Handle calls to missing methods on the controller.
*
* @param string $method
* @param array $parameters
* @return mixed
*
* @throws \BadMethodCallException
*/
public function __call($method, $parameters)
{
throw new BadMethodCallException(sprintf(
'Method %s::%s does not exist.', static::class, $method
));
}
}
/**
* Get the middleware assigned to the controller.
*
* @return array
*/
public function getMiddleware()
{
return $this->middleware;
}
/**
* Execute an action on the controller.
*
* @param string $method
* @param array $parameters
* @return \Symfony\Component\HttpFoundation\Response
*/
public function callAction($method, $parameters)
{
return call_user_func_array([$this, $method], $parameters);
}
/**
* Handle calls to missing methods on the controller.
*
* @param string $method
* @param array $parameters
* @return mixed
*
* @throws \BadMethodCallException
*/
public function __call($method, $parameters)
{
throw new BadMethodCallException(sprintf(
'Method %s::%s does not exist.', static::class, $method
));
}
}
{
$this->container = $container;
}
/**
* Dispatch a request to a given controller and method.
*
* @param \Illuminate\Routing\Route $route
* @param mixed $controller
* @param string $method
* @return mixed
*/
public function dispatch(Route $route, $controller, $method)
{
$parameters = $this->resolveClassMethodDependencies(
$route->parametersWithoutNulls(), $controller, $method
);
if (method_exists($controller, 'callAction')) {
return $controller->callAction($method, $parameters);
}
return $controller->{$method}(...array_values($parameters));
}
/**
* Get the middleware for the controller instance.
*
* @param \Illuminate\Routing\Controller $controller
* @param string $method
* @return array
*/
public function getMiddleware($controller, $method)
{
if (! method_exists($controller, 'getMiddleware')) {
return [];
}
return collect($controller->getMiddleware())->reject(function ($data) use ($method) {
return static::methodExcludedByOptions($method, $data['options']);
protected function runCallable()
{
$callable = $this->action['uses'];
return $callable(...array_values($this->resolveMethodDependencies(
$this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses'])
)));
}
/**
* Run the route action and return the response.
*
* @return mixed
*
* @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
*/
protected function runController()
{
return $this->controllerDispatcher()->dispatch(
$this, $this->getController(), $this->getControllerMethod()
);
}
/**
* Get the controller instance for the route.
*
* @return mixed
*/
public function getController()
{
if (! $this->controller) {
$class = $this->parseControllerCallback()[0];
$this->controller = $this->container->make(ltrim($class, '\\'));
}
return $this->controller;
}
/**
*
* @throws \UnexpectedValueException
*/
protected function parseAction($action)
{
return RouteAction::parse($this->uri, $action);
}
/**
* Run the route action and return the response.
*
* @return mixed
*/
public function run()
{
$this->container = $this->container ?: new Container;
try {
if ($this->isControllerAction()) {
return $this->runController();
}
return $this->runCallable();
} catch (HttpResponseException $e) {
return $e->getResponse();
}
}
/**
* Checks whether the route's action is a controller.
*
* @return bool
*/
protected function isControllerAction()
{
return is_string($this->action['uses']);
}
/**
* Run the route action and return the response.
/**
* Run the given route within a Stack "onion" instance.
*
* @param \Illuminate\Routing\Route $route
* @param \Illuminate\Http\Request $request
* @return mixed
*/
protected function runRouteWithinStack(Route $route, Request $request)
{
$shouldSkipMiddleware = $this->container->bound('middleware.disable') &&
$this->container->make('middleware.disable') === true;
$middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route);
return (new Pipeline($this->container))
->send($request)
->through($middleware)
->then(function ($request) use ($route) {
return $this->prepareResponse(
$request, $route->run()
);
});
}
/**
* Gather the middleware for the given route with resolved class names.
*
* @param \Illuminate\Routing\Route $route
* @return array
*/
public function gatherRouteMiddleware(Route $route)
{
$middleware = collect($route->gatherMiddleware())->map(function ($name) {
return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups);
})->flatten();
return $this->sortMiddleware($middleware);
}
/**
use Symfony\Component\Debug\Exception\FatalThrowableError;
/**
* This extended pipeline catches any exceptions that occur during each slice.
*
* The exceptions are converted to HTTP responses for proper middleware handling.
*/
class Pipeline extends BasePipeline
{
/**
* Get the final piece of the Closure onion.
*
* @param \Closure $destination
* @return \Closure
*/
protected function prepareDestination(Closure $destination)
{
return function ($passable) use ($destination) {
try {
return $destination($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
// 初始化值
$this->cacheKey = $this->resolveKey();
$this->minutes = $this->resolveMinutes($minutes);
}
/**
* 生成或读取Response-Cache
*
* @return array
*/
protected function responseCache()
{
$this->responseCache = Cache::remember(
$this->cacheKey,
$this->minutes,
function () {
$this->cacheMissed();
$response = ($this->next)($this->request);
return $this->resolveResponseCache($response) + [
'cacheExpireAt' => Carbon::now()->addMinutes($this->minutes)->format('Y-m-d H:i:s T'),
];
}
);
return $this->responseCache;
}
/**
* 确定需要缓存Response的数据
*
* @param \Illuminate\Http\Response $response
*
* @return array
*/
protected function resolveResponseCache($response)
{
return [
/**
* Get an item from the cache, or store the default value.
*
* @param string $key
* @param \DateTimeInterface|\DateInterval|float|int $minutes
* @param \Closure $callback
* @return mixed
*/
public function remember($key, $minutes, Closure $callback)
{
$value = $this->get($key);
// If the item exists in the cache we will just return this immediately and if
// not we will execute the given Closure and cache the result of that for a
// given number of minutes so it's available for all subsequent requests.
if (! is_null($value)) {
return $value;
}
$this->put($key, $value = $callback(), $minutes);
return $value;
}
/**
* Get an item from the cache, or store the default value forever.
*
* @param string $key
* @param \Closure $callback
* @return mixed
*/
public function sear($key, Closure $callback)
{
return $this->rememberForever($key, $callback);
}
/**
* Get an item from the cache, or store the default value forever.
*
* @param string $key
* @param \Closure $callback
* @return $this
*/
public function extend($driver, Closure $callback)
{
$this->customCreators[$driver] = $callback->bindTo($this, $this);
return $this;
}
/**
* Dynamically call the default driver instance.
*
* @param string $method
* @param array $parameters
* @return mixed
*/
public function __call($method, $parameters)
{
return $this->store()->$method(...$parameters);
}
}
}
/**
* Handle dynamic, static calls to the object.
*
* @param string $method
* @param array $args
* @return mixed
*
* @throws \RuntimeException
*/
public static function __callStatic($method, $args)
{
$instance = static::getFacadeRoot();
if (! $instance) {
throw new RuntimeException('A facade root has not been set.');
}
return $instance->$method(...$args);
}
}
/**
* 生成或读取Response-Cache
*
* @return array
*/
protected function responseCache()
{
$this->responseCache = Cache::remember(
$this->cacheKey,
$this->minutes,
function () {
$this->cacheMissed();
$response = ($this->next)($this->request);
return $this->resolveResponseCache($response) + [
'cacheExpireAt' => Carbon::now()->addMinutes($this->minutes)->format('Y-m-d H:i:s T'),
];
}
);
return $this->responseCache;
}
/**
* 确定需要缓存Response的数据
*
* @param \Illuminate\Http\Response $response
*
* @return array
*/
protected function resolveResponseCache($response)
{
return [
'content' => $response->getContent(),
];
}
/**
* 缓存Key
*
* @var string
*/
protected $cacheKey;
/**
* Handle an incoming request
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param int|null $minutes
*
* @return mixed
*/
public function handle($request, Closure $next, $minutes = null)
{
$this->prepare($request, $next, $minutes);
$this->responseCache();
$response = response($this->responseCache['content']);
return $this->addHeaders($response);
}
/**
* 预备
*
* @return mixed
*/
protected function prepare($request, Closure $next, $minutes = null)
{
$this->request = $request;
$this->next = $next;
// 初始化值
$this->cacheKey = $this->resolveKey();
$this->minutes = $this->resolveMinutes($minutes);
}
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
use Cookie;
use Closure;
class TrafficSource
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$trafficSource = $request->input('sce', '');
if($trafficSource){
Cookie::queue('sce', $trafficSource, 60*24*7);
}
return $next($request);
}
}
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
//return $next($request);
// 搜索引擎暂时不限制
if(isCrawler()){
return $next($request);
}
if(Auth::check() && Auth::user()->id == 24) {
return $next($request);
}
$key = $this->resolveRequestSignature($request);
$maxAttempts = $this->resolveMaxAttempts($request, $maxAttempts);
if ($this->limiter->tooManyAttempts($key, $maxAttempts)) {
throw $this->buildException($key, $maxAttempts);
}
$this->limiter->hit($key, $decayMinutes);
return $next($request);
}
// 移除原框架中的 retry 时间 header
protected function buildException($key, $maxAttempts)
{
$retryAfter = $this->getTimeUntilNextRetry($key);
$headers = [];
return new ThrottleRequestsException(
'Too Many Attempts.', null, $headers
);
}
}
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
*/
public function __construct(Registrar $router)
{
$this->router = $router;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$this->router->substituteBindings($route = $request->route());
$this->router->substituteImplicitBindings($route);
return $next($request);
}
}
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*
* @throws \Illuminate\Session\TokenMismatchException
*/
public function handle($request, Closure $next)
{
if (
$this->isReading($request) ||
$this->runningUnitTests() ||
$this->inExceptArray($request) ||
$this->tokensMatch($request)
) {
return $this->addCookieToResponse($request, $next($request));
}
throw new TokenMismatchException;
}
/**
* Determine if the HTTP request uses a ‘read’ verb.
*
* @param \Illuminate\Http\Request $request
* @return bool
*/
protected function isReading($request)
{
return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']);
}
/**
* Determine if the application is running unit tests.
*
* @return bool
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
// If the current session has an "errors" variable bound to it, we will share
// its value with all view instances so the views can easily access errors
// without having to bind. An empty bag is set when there aren't errors.
$this->view->share(
'errors', $request->session()->get('errors') ?: new ViewErrorBag
);
// Putting the errors in the view for every view allows the developer to just
// assume that some errors are always available, which is convenient since
// they don't have to continually run checks for the presence of errors.
return $next($request);
}
}
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$this->sessionHandled = true;
// If a session driver has been configured, we will need to start the session here
// so that the data is ready for an application. Note that the Laravel sessions
// do not make use of PHP "native" sessions in any way since they are crappy.
if ($this->sessionConfigured()) {
$request->setLaravelSession(
$session = $this->startSession($request)
);
$this->collectGarbage($session);
}
$response = $next($request);
// Again, if the session has been configured we will need to close out the session
// so that the attributes may be persisted to some storage medium. We will also
// add the session identifier cookie to the application response headers now.
if ($this->sessionConfigured()) {
$this->storeCurrentUrl($request, $session);
$this->addCookieToResponse($response, $session);
}
return $response;
}
/**
* Perform any final actions for the request lifecycle.
*
* @param \Illuminate\Http\Request $request
* @param \Symfony\Component\HttpFoundation\Response $response
* @return void
*/
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
* Create a new CookieQueue instance.
*
* @param \Illuminate\Contracts\Cookie\QueueingFactory $cookies
* @return void
*/
public function __construct(CookieJar $cookies)
{
$this->cookies = $cookies;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request);
foreach ($this->cookies->getQueuedCookies() as $cookie) {
$response->headers->setCookie($cookie);
}
return $response;
}
}
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
* Disable encryption for the given cookie name(s).
*
* @param string|array $name
* @return void
*/
public function disableFor($name)
{
$this->except = array_merge($this->except, (array) $name);
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $this->encrypt($next($this->decrypt($request)));
}
/**
* Decrypt the cookies on the request.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @return \Symfony\Component\HttpFoundation\Request
*/
protected function decrypt(Request $request)
{
foreach ($request->cookies as $key => $cookie) {
if ($this->isDisabled($key)) {
continue;
}
try {
$request->cookies->set($key, $this->decryptCookie($cookie));
} catch (DecryptException $e) {
$request->cookies->set($key, null);
}
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
public function via($method)
{
$this->method = $method;
return $this;
}
/**
* Run the pipeline with a final destination callback.
*
* @param \Closure $destination
* @return mixed
*/
public function then(Closure $destination)
{
$pipeline = array_reduce(
array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination)
);
return $pipeline($this->passable);
}
/**
* Get the final piece of the Closure onion.
*
* @param \Closure $destination
* @return \Closure
*/
protected function prepareDestination(Closure $destination)
{
return function ($passable) use ($destination) {
return $destination($passable);
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
*
* @param \Illuminate\Routing\Route $route
* @param \Illuminate\Http\Request $request
* @return mixed
*/
protected function runRouteWithinStack(Route $route, Request $request)
{
$shouldSkipMiddleware = $this->container->bound('middleware.disable') &&
$this->container->make('middleware.disable') === true;
$middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route);
return (new Pipeline($this->container))
->send($request)
->through($middleware)
->then(function ($request) use ($route) {
return $this->prepareResponse(
$request, $route->run()
);
});
}
/**
* Gather the middleware for the given route with resolved class names.
*
* @param \Illuminate\Routing\Route $route
* @return array
*/
public function gatherRouteMiddleware(Route $route)
{
$middleware = collect($route->gatherMiddleware())->map(function ($name) {
return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups);
})->flatten();
return $this->sortMiddleware($middleware);
}
/**
* Sort the given middleware by priority.
*
return $route;
}
/**
* Return the response for the given route.
*
* @param Route $route
* @param Request $request
* @return mixed
*/
protected function runRoute(Request $request, Route $route)
{
$request->setRouteResolver(function () use ($route) {
return $route;
});
$this->events->dispatch(new Events\RouteMatched($route, $request));
return $this->prepareResponse($request,
$this->runRouteWithinStack($route, $request)
);
}
/**
* Run the given route within a Stack "onion" instance.
*
* @param \Illuminate\Routing\Route $route
* @param \Illuminate\Http\Request $request
* @return mixed
*/
protected function runRouteWithinStack(Route $route, Request $request)
{
$shouldSkipMiddleware = $this->container->bound('middleware.disable') &&
$this->container->make('middleware.disable') === true;
$middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route);
return (new Pipeline($this->container))
->send($request)
->through($middleware)
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
*/
public function dispatch(Request $request)
{
$this->currentRequest = $request;
return $this->dispatchToRoute($request);
}
/**
* Dispatch the request to a route and return the response.
*
* @param \Illuminate\Http\Request $request
* @return mixed
*/
public function dispatchToRoute(Request $request)
{
return $this->runRoute($request, $this->findRoute($request));
}
/**
* Find the route matching a given request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Routing\Route
*/
protected function findRoute($request)
{
$this->current = $route = $this->routes->match($request);
$this->container->instance(Route::class, $route);
return $route;
}
/**
* Return the response for the given route.
*
* @return mixed
*/
public function respondWithRoute($name)
{
$route = tap($this->routes->getByName($name))->bind($this->currentRequest);
return $this->runRoute($this->currentRequest, $route);
}
/**
* Dispatch the request to the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse
*/
public function dispatch(Request $request)
{
$this->currentRequest = $request;
return $this->dispatchToRoute($request);
}
/**
* Dispatch the request to a route and return the response.
*
* @param \Illuminate\Http\Request $request
* @return mixed
*/
public function dispatchToRoute(Request $request)
{
return $this->runRoute($request, $this->findRoute($request));
}
/**
* Find the route matching a given request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Routing\Route
*/
protected function findRoute($request)
* @return void
*/
public function bootstrap()
{
if (! $this->app->hasBeenBootstrapped()) {
$this->app->bootstrapWith($this->bootstrappers());
}
}
/**
* Get the route dispatcher callback.
*
* @return \Closure
*/
protected function dispatchToRouter()
{
return function ($request) {
$this->app->instance('request', $request);
return $this->router->dispatch($request);
};
}
/**
* Call the terminate method on any terminable middleware.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Http\Response $response
* @return void
*/
public function terminate($request, $response)
{
$this->terminateMiddleware($request, $response);
$this->app->terminate();
}
/**
* Call the terminate method on any terminable middleware.
*
use Symfony\Component\Debug\Exception\FatalThrowableError;
/**
* This extended pipeline catches any exceptions that occur during each slice.
*
* The exceptions are converted to HTTP responses for proper middleware handling.
*/
class Pipeline extends BasePipeline
{
/**
* Get the final piece of the Closure onion.
*
* @param \Closure $destination
* @return \Closure
*/
protected function prepareDestination(Closure $destination)
{
return function ($passable) use ($destination) {
try {
return $destination($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
{
$this->config = $config;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @throws \Symfony\Component\HttpKernel\Exception\HttpException
*
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
$request::setTrustedProxies([], $this->getTrustedHeaderNames()); // Reset trusted proxies between requests
$this->setTrustedProxyIpAddresses($request);
return $next($request);
}
/**
* Sets the trusted proxies on the request to the value of trustedproxy.proxies
*
* @param \Illuminate\Http\Request $request
*/
protected function setTrustedProxyIpAddresses(Request $request)
{
$trustedIps = $this->proxies ?: $this->config->get('trustedproxy.proxies');
// Trust any IP address that calls us
// `**` for backwards compatibility, but is deprecated
if ($trustedIps === '*' || $trustedIps === '**') {
return $this->setTrustedProxyIpAddressesToTheCallingIp($request);
}
// Support IPs addresses separated by comma
$trustedIps = is_string($trustedIps) ? array_map('trim', explode(',', $trustedIps)) : $trustedIps;
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
* The additional attributes passed to the middleware.
*
* @var array
*/
protected $attributes = [];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, ...$attributes)
{
$this->attributes = $attributes;
$this->clean($request);
return $next($request);
}
/**
* Clean the request's data.
*
* @param \Illuminate\Http\Request $request
* @return void
*/
protected function clean($request)
{
$this->cleanParameterBag($request->query);
if ($request->isJson()) {
$this->cleanParameterBag($request->json());
} else {
$this->cleanParameterBag($request->request);
}
}
/**
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
* The additional attributes passed to the middleware.
*
* @var array
*/
protected $attributes = [];
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, ...$attributes)
{
$this->attributes = $attributes;
$this->clean($request);
return $next($request);
}
/**
* Clean the request's data.
*
* @param \Illuminate\Http\Request $request
* @return void
*/
protected function clean($request)
{
$this->cleanParameterBag($request->query);
if ($request->isJson()) {
$this->cleanParameterBag($request->json());
} else {
$this->cleanParameterBag($request->request);
}
}
/**
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
class ValidatePostSize
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*
* @throws \Illuminate\Http\Exceptions\PostTooLargeException
*/
public function handle($request, Closure $next)
{
$max = $this->getPostMaxSize();
if ($max > 0 && $request->server('CONTENT_LENGTH') > $max) {
throw new PostTooLargeException;
}
return $next($request);
}
/**
* Determine the server 'post_max_size' as bytes.
*
* @return int
*/
protected function getPostMaxSize()
{
if (is_numeric($postMaxSize = ini_get('post_max_size'))) {
return (int) $postMaxSize;
}
$metric = strtoupper(substr($postMaxSize, -1));
$postMaxSize = (int) $postMaxSize;
switch ($metric) {
case 'K':
return $postMaxSize * 1024;
case 'M':
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*
* @throws \Symfony\Component\HttpKernel\Exception\HttpException
*/
public function handle($request, Closure $next)
{
if ($this->app->isDownForMaintenance()) {
$data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true);
throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']);
}
return $next($request);
}
}
// the appropriate method and arguments, returning the results back out.
return $pipe($passable, $stack);
} elseif (! is_object($pipe)) {
list($name, $parameters) = $this->parsePipeString($pipe);
// If the pipe is a string we will parse the string and resolve the class out
// of the dependency injection container. We can then build a callable and
// execute the pipe function giving in the parameters that are required.
$pipe = $this->getContainer()->make($name);
$parameters = array_merge([$passable, $stack], $parameters);
} else {
// If the pipe is already an object we'll just make a callable and pass it to
// the pipe as-is. There is no need to do any extra parsing and formatting
// since the object we're given was already a fully instantiated object.
$parameters = [$passable, $stack];
}
return method_exists($pipe, $this->method)
? $pipe->{$this->method}(...$parameters)
: $pipe(...$parameters);
};
};
}
/**
* Parse full pipe string to get name and parameters.
*
* @param string $pipe
* @return array
*/
protected function parsePipeString($pipe)
{
list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []);
if (is_string($parameters)) {
$parameters = explode(',', $parameters);
}
return [$name, $parameters];
return $this->handleException($passable, new FatalThrowableError($e));
}
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
protected function carry()
{
return function ($stack, $pipe) {
return function ($passable) use ($stack, $pipe) {
try {
$slice = parent::carry();
$callable = $slice($stack, $pipe);
return $callable($passable);
} catch (Exception $e) {
return $this->handleException($passable, $e);
} catch (Throwable $e) {
return $this->handleException($passable, new FatalThrowableError($e));
}
};
};
}
/**
* Handle the given exception.
*
* @param mixed $passable
* @param \Exception $e
* @return mixed
*
* @throws \Exception
*/
protected function handleException($passable, Exception $e)
{
public function via($method)
{
$this->method = $method;
return $this;
}
/**
* Run the pipeline with a final destination callback.
*
* @param \Closure $destination
* @return mixed
*/
public function then(Closure $destination)
{
$pipeline = array_reduce(
array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination)
);
return $pipeline($this->passable);
}
/**
* Get the final piece of the Closure onion.
*
* @param \Closure $destination
* @return \Closure
*/
protected function prepareDestination(Closure $destination)
{
return function ($passable) use ($destination) {
return $destination($passable);
};
}
/**
* Get a Closure that represents a slice of the application onion.
*
* @return \Closure
*/
}
/**
* Send the given request through the middleware / router.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
protected function sendRequestThroughRouter($request)
{
$this->app->instance('request', $request);
Facade::clearResolvedInstance('request');
$this->bootstrap();
return (new Pipeline($this->app))
->send($request)
->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)
->then($this->dispatchToRouter());
}
/**
* Bootstrap the application for HTTP requests.
*
* @return void
*/
public function bootstrap()
{
if (! $this->app->hasBeenBootstrapped()) {
$this->app->bootstrapWith($this->bootstrappers());
}
}
/**
* Get the route dispatcher callback.
*
* @return \Closure
*/
protected function dispatchToRouter()
$router->middlewareGroup($key, $middleware);
}
foreach ($this->routeMiddleware as $key => $middleware) {
$router->aliasMiddleware($key, $middleware);
}
}
/**
* Handle an incoming HTTP request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function handle($request)
{
try {
$request->enableHttpMethodParameterOverride();
$response = $this->sendRequestThroughRouter($request);
} catch (Exception $e) {
$this->reportException($e);
$response = $this->renderException($request, $e);
} catch (Throwable $e) {
$this->reportException($e = new FatalThrowableError($e));
$response = $this->renderException($request, $e);
}
$this->app['events']->dispatch(
new Events\RequestHandled($request, $response)
);
return $response;
}
/**
* Send the given request through the middleware / router.
*
*/
$app = require_once __DIR__.'/../bootstrap/app.php';
/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
Key | Value |
tag | "������"
|
Key | Value |
USER | "www-data"
|
HOME | "/var/www"
|
HTTP_CONNECTION | "Keep-Alive"
|
HTTP_HOST | "toobigdata.com"
|
HTTP_ACCEPT_ENCODING | "br,gzip"
|
HTTP_IF_MODIFIED_SINCE | "Wed, 28 Sep 2022 19:42:14 GMT"
|
HTTP_ACCEPT_LANGUAGE | "en-US,en;q=0.5"
|
HTTP_ACCEPT | "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
|
HTTP_USER_AGENT | "CCBot/2.0 (https://commoncrawl.org/faq/)"
|
REDIRECT_STATUS | "200"
|
SERVER_NAME | "toobigdata.com"
|
SERVER_PORT | "443"
|
SERVER_ADDR | "172.20.77.203"
|
REMOTE_PORT | "34842"
|
REMOTE_ADDR | "35.175.191.46"
|
SERVER_SOFTWARE | "nginx/1.18.0"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
HTTPS | "on"
|
REQUEST_SCHEME | "https"
|
SERVER_PROTOCOL | "HTTP/1.1"
|
DOCUMENT_ROOT | "/data/www/toobigdata.com/public"
|
DOCUMENT_URI | "/index.php"
|
REQUEST_URI | "/doudian/products?tag=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD"
|
SCRIPT_NAME | "/index.php"
|
CONTENT_LENGTH | "" |
CONTENT_TYPE | "" |
REQUEST_METHOD | "GET"
|
QUERY_STRING | "tag=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD"
|
SCRIPT_FILENAME | "/data/www/toobigdata.com/public/index.php"
|
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1696296655.8757
|
REQUEST_TIME | 1696296655
|
APP_NAME | "TooBigData"
|
APP_ENV | "production"
|
APP_KEY | "base64:+kay1JZCC6ujJxBzriiwg1tP3TLEbIt8AiN/toxQT4Y="
|
APP_DEBUG | "true"
|
APP_URL | "https://toobigdata.com"
|
SHOW_ADS | "false"
|
LOG_CHANNEL | "stack"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "wonderbj.mysql.rds.aliyuncs.com"
|
DB_PORT | "3306"
|
DB_DATABASE | "tbd_platform"
|
DB_USERNAME | "data_platform"
|
DB_PASSWORD | "AdmWeiboMobvoi2008"
|
TENCENT_DB_CONNECTION | "mysql"
|
TENCENT_DB_HOST | "bj-cdb-hn96a8si.sql.tencentcdb.com"
|
TENCENT_DB_PORT | "63914"
|
TENCENT_DB_DATABASE | "tbd_platform"
|
TENCENT_DB_USERNAME | "root"
|
TENCENT_DB_PASSWORD | "Tbdnext3$"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
SESSION_LIFETIME | "120"
|
QUEUE_DRIVER | "sync"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "sendcloud"
|
MAIL_HOST | "smtp.mailtrap.io"
|
MAIL_PORT | "2525"
|
MAIL_USERNAME | "null"
|
MAIL_PASSWORD | "null"
|
MAIL_ENCRYPTION | "null"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
PUSHER_APP_CLUSTER | "mt1"
|
MIX_PUSHER_APP_KEY | "" |
MIX_PUSHER_APP_CLUSTER | "mt1"
|
WECHAT_OFFICIAL_ACCOUNT_APPID | "wxf254f3d4fb245132"
|
WECHAT_OFFICIAL_ACCOUNT_SECRET | "c67620ede617dcfe293184acf05e5db3"
|
WECHAT_OFFICIAL_ACCOUNT_TOKEN | "hellowx"
|
WECHAT_OFFICIAL_ACCOUNT_AES_KEY | "xiVqemSqIYcMkEUns60dRoUsIC1pCdlyCfyLlO0r5HC"
|
WECHAT_PAYMENT_APPID | "wxf254f3d4fb245132"
|
WECHAT_PAYMENT_MCH_ID | "1354711102"
|
WECHAT_PAYMENT_KEY | "M5gVxqAchpUcbWuFt1Ihbwp71MAKQo5f"
|
WECHAT_PAYMENT_CERT_PATH | "/Users/wuhao/www/toobigdata/cert/apiclient_cert.pem"
|
WECHAT_PAYMENT_KEY_PATH | "/Users/wuhao/www/toobigdata/cert/apiclient_key.pem"
|
SEND_CLOUD_USER | "wuhaoworld_test_NoMOvU"
|
SEND_CLOUD_KEY | "hyksfTQyx6VZtQgQ"
|
QINIU_BUCKET | "kolranking"
|
QINIU_ACCESS_KEY | "el7kgPgYzpJoB23jrChWJ2gV3HpRl0VCzFn8rKKv"
|
QINIU_SECRET_KEY | "kk8lZDzOuY7WJuws63iqTRtrvbtHKxxe9TbO-D65"
|
QINIU_DOMAIN | "dl.kolranking.com"
|
QINIU_DOMAIN_HTTPS | "oh8ltug8l.bkt.clouddn.com"
|
DEMO_TOKEN | "Aacg0rt9aqlv"
|
TOKEN | "a5cGKGja8TEyqvXw8aYGgrShepfE8AKrjD57Pf2xmXPMGryrXS6x335byWxz4Frn"
|
INVITE_CREDIT | "3"
|
COUNT_PERPAGE | "20"
|
city_ab | "阿坝"
|
city_aks | "阿克苏"
|
city_al | "阿里"
|
city_ale | "阿拉尔"
|
city_alsm | "阿拉善盟"
|
city_alt | "阿勒泰"
|
city_am | "澳门"
|
city_anji | "安吉"
|
city_ankang | "安康"
|
city_anlu | "安陆"
|
city_anningshi | "安宁"
|
city_anqing | "安庆"
|
city_anqiu | "安丘"
|
city_anshun | "安顺"
|
city_anxixian | "安溪"
|
city_anyuexian | "安岳"
|
city_as | "鞍山"
|
city_ay | "安阳"
|
city_baise | "百色"
|
city_baish | "白沙"
|
city_baishan | "白山"
|
city_baoji | "宝鸡"
|
city_baoting | "保亭"
|
city_baoyingx | "宝应县"
|
city_bazhong | "巴中"
|
city_bazhou | "霸州"
|
city_bc | "白城"
|
city_bd | "保定"
|
city_beiliushi | "北流"
|
city_beipiao | "北票"
|
city_bengbu | "蚌埠"
|
city_benxi | "本溪"
|
city_betl | "博尔塔拉"
|
city_bh | "北海"
|
city_bijie | "毕节"
|
city_bj | "北京"
|
city_bn | "西双版纳"
|
city_bobaixian | "博白"
|
city_boluo | "博罗"
|
city_boxing | "博兴"
|
city_bozhou | "亳州"
|
city_bs | "保山"
|
city_bt | "包头"
|
city_by | "白银"
|
city_bycem | "巴彦淖尔市"
|
city_bygl | "巴音郭楞"
|
city_bz | "滨州"
|
city_cangnanxian | "苍南"
|
city_cangxian | "沧县"
|
city_cangzhou | "沧州"
|
city_caoxian | "曹县"
|
city_cc | "长春"
|
city_cd | "成都"
|
city_cenxi | "岑溪"
|
city_ch | "巢湖"
|
city_changde | "常德"
|
city_changdu | "昌都"
|
city_changge | "长葛"
|
city_changji | "昌吉"
|
city_changle | "昌乐"
|
city_changlingxian | "长岭"
|
city_changningshi | "常宁"
|
city_changningx | "长宁"
|
city_changxing | "长兴"
|
city_changyishi | "昌邑"
|
city_changyuan | "长垣"
|
city_changzhi | "长治"
|
city_chaozhou | "潮州"
|
city_chengde | "承德"
|
city_chenzhou | "郴州"
|
city_chibishi | "赤壁"
|
city_chifeng | "赤峰"
|
city_chiping | "茌平"
|
city_chizhou | "池州"
|
city_chongzuo | "崇左"
|
city_chuzhou | "滁州"
|
city_cilixian | "慈利"
|
city_cixi | "慈溪"
|
city_cixian | "磁县"
|
city_cm | "澄迈"
|
city_cq | "重庆"
|
city_cs | "长沙"
|
city_cx | "楚雄"
|
city_cy | "朝阳"
|
city_cz | "常州"
|
city_czguiyang | "桂阳"
|
city_da | "定安"
|
city_dafeng | "大丰"
|
city_dali | "大理"
|
city_dandong | "丹东"
|
city_dangyang | "当阳"
|
city_danyang | "丹阳"
|
city_danzhou | "儋州"
|
city_dawu | "大悟"
|
city_dazhou | "达州"
|
city_dazu | "大竹"
|
city_dengta | "灯塔"
|
city_dengzhou | "邓州"
|
city_deqing | "德清"
|
city_deyang | "德阳"
|
city_df | "东方"
|
city_dg | "东莞"
|
city_dh | "德宏"
|
city_dingbian | "定边"
|
city_dingzhou | "定州"
|
city_diqing | "迪庆"
|
city_dl | "大连"
|
city_donghai | "东海"
|
city_dongming | "东明"
|
city_dongping | "东平"
|
city_dongtai | "东台"
|
city_dongyang | "东阳"
|
city_dongzhi | "东至"
|
city_dq | "大庆"
|
city_dt | "大同"
|
city_dunhuang | "敦煌"
|
city_dx | "定西"
|
city_dxal | "大兴安岭"
|
city_dy | "东营"
|
city_dz | "德州"
|
city_erds | "鄂尔多斯"
|
city_es | "恩施"
|
city_ez | "鄂州"
|
city_fanxian | "范县"
|
city_fcg | "防城港"
|
city_feicheng | "肥城"
|
city_fengcheng | "凤城"
|
city_fengchengshi | "丰城"
|
city_fenyi | "分宜"
|
city_fs | "佛山"
|
city_fuanshi | "福安"
|
city_fudingshi | "福鼎"
|
city_fugu | "府谷"
|
city_fuliangxian | "浮梁"
|
city_funingxian | "阜宁"
|
city_fushun | "抚顺"
|
city_fuyuxian | "扶余"
|
city_fuzhou | "抚州"
|
city_fx | "阜新"
|
city_fy | "阜阳"
|
city_fz | "福州"
|
city_ga | "广安"
|
city_gaizexian | "改则"
|
city_ganzhou | "赣州"
|
city_ganzi | "甘孜"
|
city_gaoan | "高安"
|
city_gaomi | "高密"
|
city_gaoping | "高平"
|
city_gaotang | "高唐"
|
city_geermushi | "格尔木"
|
city_gg | "贵港"
|
city_gl | "桂林"
|
city_glauckland | "奥克兰"
|
city_glbangkok | "曼谷"
|
city_glchiangmai | "清迈"
|
city_gldubai | "迪拜"
|
city_glgreaterlondon | "伦敦"
|
city_gllosangeles | "洛杉矶"
|
city_glmelbourne | "墨尔本"
|
city_glmoscow | "莫斯科"
|
city_glnewyork | "纽约"
|
city_glsanfrancisco | "旧金山"
|
city_glseoul | "首尔"
|
city_glsingapore | "新加坡"
|
city_glsydney | "悉尼"
|
city_gltokyo | "东京"
|
city_gltoronto | "多伦多"
|
city_glvancouver | "温哥华"
|
city_gn | "甘南"
|
city_gongzhuling | "公主岭"
|
city_gt | "馆陶"
|
city_guanghanshi | "广汉"
|
city_guangrao | "广饶"
|
city_guangshuishi | "广水"
|
city_guangyuan | "广元"
|
city_guannan | "灌南"
|
city_guanxian | "冠县"
|
city_guanyun | "灌云"
|
city_gucheng | "谷城"
|
city_guipingqu | "桂平"
|
city_guoluo | "果洛"
|
city_gushixian | "固始"
|
city_guyuan | "固原"
|
city_gy | "贵阳"
|
city_gz | "广州"
|
city_ha | "淮安"
|
city_haian | "海安"
|
city_haibei | "海北"
|
city_haidong | "海东"
|
city_haifengxian | "海丰"
|
city_haikou | "海口"
|
city_haimen | "海门"
|
city_hainan | "海南"
|
city_haining | "海宁"
|
city_haiyan | "海盐"
|
city_hami | "哈密"
|
city_hancheng | "韩城"
|
city_hanchuan | "汉川"
|
city_hanzhong | "汉中"
|
city_hb | "鹤壁"
|
city_hc | "河池"
|
city_hd | "邯郸"
|
city_hegang | "鹤岗"
|
city_heihe | "黑河"
|
city_hejian | "河间"
|
city_hengdong | "衡东"
|
city_hexian | "和县"
|
city_heyuan | "河源"
|
city_heze | "菏泽"
|
city_hezhou | "贺州"
|
city_hf | "合肥"
|
city_hg | "黄冈"
|
city_hh | "怀化"
|
city_hk | "香港"
|
city_hlbe | "呼伦贝尔"
|
city_hld | "葫芦岛"
|
city_hlr | "海拉尔"
|
city_hn | "淮南"
|
city_honghe | "红河"
|
city_hq | "霍邱"
|
city_hrb | "哈尔滨"
|
city_hs | "衡水"
|
city_hshi | "黄石"
|
city_ht | "和田"
|
city_hu | "呼和浩特"
|
city_huadian | "桦甸"
|
city_huaibei | "淮北"
|
city_huaibinxian | "淮滨"
|
city_huanghua | "黄骅"
|
city_huangnan | "黄南"
|
city_huangshan | "黄山"
|
city_huantaixian | "桓台"
|
city_huarong | "华容"
|
city_huaxian | "滑县"
|
city_huidong | "惠东"
|
city_huizhou | "惠州"
|
city_huzhou | "湖州"
|
city_hx | "海西"
|
city_hy | "衡阳"
|
city_hz | "杭州"
|
city_hzyc | "郓城"
|
city_ja | "吉安"
|
city_jdz | "景德镇"
|
city_jh | "金华"
|
city_jiangshanshi | "江山"
|
city_jiangyan | "姜堰"
|
city_jianhu | "建湖"
|
city_jianyangshi | "简阳"
|
city_jiaozuo | "焦作"
|
city_jiashanx | "嘉善"
|
city_jiayuxian | "嘉鱼"
|
city_jinchang | "金昌"
|
city_jincheng | "晋城"
|
city_jingbian | "靖边"
|
city_jingjiang | "靖江"
|
city_jingmen | "荆门"
|
city_jingshanxian | "京山"
|
city_jingzhou | "荆州"
|
city_jinhu | "金湖"
|
city_jining | "济宁"
|
city_jinjiangshi | "晋江"
|
city_jintan | "金坛"
|
city_jinxian | "进贤"
|
city_jinzhou | "锦州"
|
city_jixi | "鸡西"
|
city_jiyuan | "济源"
|
city_jj | "九江"
|
city_jl | "吉林"
|
city_jm | "江门"
|
city_jms | "佳木斯"
|
city_jn | "济南"
|
city_jq | "酒泉"
|
city_juancheng | "鄄城"
|
city_junxian | "浚县"
|
city_jurong | "句容"
|
city_juxian | "莒县"
|
city_juye | "巨野"
|
city_jx | "嘉兴"
|
city_jy | "揭阳"
|
city_jyg | "嘉峪关"
|
city_jz | "晋中"
|
city_kaifeng | "开封"
|
city_kaipingshi | "开平"
|
city_kaiyuan | "开原"
|
city_kel | "库尔勒"
|
city_kl | "垦利"
|
city_klmy | "克拉玛依"
|
city_km | "昆明"
|
city_ks | "喀什"
|
city_kzls | "克孜勒苏"
|
city_la | "六安"
|
city_laiyang | "莱阳"
|
city_laizhou | "莱州"
|
city_lankaoxian | "兰考"
|
city_laohekou | "老河口"
|
city_lasa | "拉萨"
|
city_lb | "来宾"
|
city_lc | "聊城"
|
city_ld | "娄底"
|
city_leling | "乐陵"
|
city_lengshuijiangshi | "冷水江"
|
city_lepingshi | "乐平"
|
city_lf | "廊坊"
|
city_lfguan | "固安"
|
city_lfyanjiao | "燕郊"
|
city_liangshan | "凉山"
|
city_liangshanx | "梁山"
|
city_lianyuanshi | "涟源"
|
city_liaoyang | "辽阳"
|
city_liaoyuan | "辽源"
|
city_lijin | "利津"
|
city_liling | "醴陵"
|
city_lincang | "临沧"
|
city_linfen | "临汾"
|
city_lingbaoshi | "灵宝"
|
city_lingshui | "陵水"
|
city_linhai | "临海"
|
city_linqing | "临清"
|
city_linqu | "临朐"
|
city_linxia | "临夏"
|
city_linyi | "临沂"
|
city_linyixian | "临猗"
|
city_linyixianq | "临邑"
|
city_linzhi | "林芝"
|
city_linzhou | "林州"
|
city_lishu | "梨树县"
|
city_lishui | "丽水"
|
city_liulin | "柳林"
|
city_liuzhou | "柳州"
|
city_lixian | "澧县"
|
city_liyang | "溧阳"
|
city_lj | "丽江"
|
city_ln | "陇南"
|
city_longhai | "龙海"
|
city_longkou | "龙口"
|
city_lps | "六盘水"
|
city_ls | "乐山"
|
city_luannanxian | "滦南"
|
city_lufengshi | "陆丰"
|
city_luohe | "漯河"
|
city_luoyang | "洛阳"
|
city_luyi | "鹿邑"
|
city_luzhou | "泸州"
|
city_lvliang | "吕梁"
|
city_lw | "莱芜"
|
city_ly | "龙岩"
|
city_lyg | "连云港"
|
city_lyxinan | "新安"
|
city_lyyiyang | "宜阳"
|
city_lz | "兰州"
|
city_mas | "马鞍山"
|
city_mdj | "牡丹江"
|
city_meihekou | "梅河口"
|
city_mengjinqu | "孟津"
|
city_mengzhou | "孟州"
|
city_mg | "明港"
|
city_mianyang | "绵阳"
|
city_milexian | "弥勒"
|
city_mm | "茂名"
|
city_ms | "眉山"
|
city_mz | "梅州"
|
city_nananshi | "南安"
|
city_nanchengx | "南城"
|
city_nanchong | "南充"
|
city_nanxian | "南县"
|
city_nanzhang | "南漳"
|
city_nb | "宁波"
|
city_nc | "南昌"
|
city_nd | "宁德"
|
city_ningguo | "宁国"
|
city_ningjin | "宁津"
|
city_ningyang | "宁阳"
|
city_nj | "南京"
|
city_nn | "南宁"
|
city_np | "南平"
|
city_nq | "那曲"
|
city_nt | "南通"
|
city_nujiang | "怒江"
|
city_ny | "南阳"
|
city_panshi | "磐石"
|
city_panzhihua | "攀枝花"
|
city_pds | "平顶山"
|
city_pe | "普洱"
|
city_penglai | "蓬莱"
|
city_pinghushi | "平湖"
|
city_pingyangxian | "平阳"
|
city_pingyi | "平邑"
|
city_pizhou | "邳州"
|
city_pj | "盘锦"
|
city_pl | "平凉"
|
city_pld | "庄河"
|
city_pt | "莆田"
|
city_puyang | "濮阳"
|
city_px | "萍乡"
|
city_qd | "青岛"
|
city_qdn | "黔东南"
|
city_qh | "琼海"
|
city_qhd | "秦皇岛"
|
city_qianan | "迁安市"
|
city_qianjiang | "潜江"
|
city_qianxixian | "迁西"
|
city_qidong | "启东"
|
city_qidongxian | "祁东"
|
city_qihe | "齐河"
|
city_qingxu | "清徐"
|
city_qingyang | "庆阳"
|
city_qingyuan | "清远"
|
city_qingzhen | "清镇"
|
city_qingzhou | "青州"
|
city_qinyang | "沁阳"
|
city_qinzhou | "钦州"
|
city_qiongzhong | "琼中"
|
city_qixia | "栖霞"
|
city_qixianq | "淇县"
|
city_qixianqu | "杞县"
|
city_qiyang | "祁阳"
|
city_qj | "曲靖"
|
city_qn | "黔南"
|
city_qqhr | "齐齐哈尔"
|
city_qth | "七台河"
|
city_quanguo | "全国"
|
city_qux | "渠县"
|
city_quzhou | "衢州"
|
city_qxn | "黔西南"
|
city_qz | "泉州"
|
city_renhuaishi | "仁怀"
|
city_renqiu | "任丘"
|
city_renshouxian | "仁寿"
|
city_rituxian | "日土"
|
city_rizhao | "日照"
|
city_rkz | "日喀则"
|
city_rongcheng | "荣成"
|
city_rudong | "如东"
|
city_rugao | "如皋"
|
city_ruiancity | "瑞安"
|
city_rushan | "乳山"
|
city_ruzhou | "汝州"
|
city_sanhe | "三河"
|
city_sansha | "三沙"
|
city_sanya | "三亚"
|
city_scnj | "内江"
|
city_sd | "顺德"
|
city_sg | "韶关"
|
city_sh | "上海"
|
city_shaheshi | "沙河"
|
city_shanda | "安达"
|
city_shanghangxian | "上杭"
|
city_shangshui | "商水"
|
city_shanxian | "单县"
|
city_shaodongxian | "邵东"
|
city_shaoyang | "邵阳"
|
city_shaoyangxian | "邵阳县"
|
city_shayangxian | "沙洋"
|
city_shehongxian | "射洪"
|
city_shengzhou | "嵊州"
|
city_shenmu | "神木"
|
city_shenqiu | "沈丘"
|
city_shenxian | "莘县"
|
city_shexian | "涉县"
|
city_sheyang | "射阳"
|
city_shishi | "石狮"
|
city_shiyan | "十堰"
|
city_shouguang | "寿光"
|
city_shuangfengxian | "双峰"
|
city_shuozhou | "朔州"
|
city_shuyang | "沭阳"
|
city_shz | "石河子"
|
city_shzhaodong | "肇东"
|
city_sihong | "泗洪"
|
city_siyang | "泗阳"
|
city_sjz | "石家庄"
|
city_sl | "商洛"
|
city_sm | "三明"
|
city_smx | "三门峡"
|
city_sn | "山南"
|
city_snj | "神农架"
|
city_songyuan | "松原"
|
city_songzi | "松滋"
|
city_sp | "四平"
|
city_sq | "商丘"
|
city_sr | "上饶"
|
city_st | "汕头"
|
city_su | "苏州"
|
city_suihua | "绥化"
|
city_suining | "遂宁"
|
city_suixia | "随县"
|
city_suixian | "睢县"
|
city_suizhou | "随州"
|
city_suqian | "宿迁"
|
city_suzhou | "宿州"
|
city_sw | "汕尾"
|
city_sx | "绍兴"
|
city_sy | "沈阳"
|
city_sys | "双鸭山"
|
city_sz | "深圳"
|
city_szkunshan | "昆山"
|
city_szs | "石嘴山"
|
city_ta | "泰安"
|
city_tac | "塔城"
|
city_taikang | "太康"
|
city_taishan | "台山"
|
city_taixing | "泰兴"
|
city_taizhou | "泰州"
|
city_tancheng | "郯城"
|
city_tc | "铜川"
|
city_tengzhou | "滕州"
|
city_th | "通化"
|
city_tianchang | "天长"
|
city_tianshui | "天水"
|
city_tj | "天津"
|
city_tl | "铁岭"
|
city_tlf | "吐鲁番"
|
city_tm | "天门"
|
city_tmsk | "图木舒克"
|
city_tongcheng | "桐城"
|
city_tongliao | "通辽"
|
city_tongling | "铜陵"
|
city_tongxiang | "桐乡"
|
city_tongxuxian | "通许"
|
city_tr | "铜仁"
|
city_ts | "唐山"
|
city_tunchang | "屯昌"
|
city_tw | "台湾"
|
city_ty | "太原"
|
city_tz | "台州"
|
city_wanning | "万宁"
|
city_weihai | "威海"
|
city_weishan | "微山"
|
city_weishixian | "尉氏"
|
city_wenchang | "文昌"
|
city_wenling | "温岭"
|
city_wenshang | "汶上"
|
city_wenxian | "温县"
|
city_wf | "潍坊"
|
city_wfd | "瓦房店"
|
city_wh | "武汉"
|
city_wjq | "五家渠"
|
city_wlcb | "乌兰察布"
|
city_wn | "渭南"
|
city_ws | "文山"
|
city_wuan | "武安"
|
city_wudi | "无棣"
|
city_wugang | "舞钢"
|
city_wuhai | "乌海"
|
city_wuhu | "芜湖"
|
city_wuwei | "武威"
|
city_wuweixian | "无为"
|
city_wuxueshi | "武穴"
|
city_wuyishan | "武夷山"
|
city_wuyix | "武义县"
|
city_wuzhong | "吴忠"
|
city_wuzhou | "梧州"
|
city_wx | "无锡"
|
city_wz | "温州"
|
city_wzs | "五指山"
|
city_xa | "西安"
|
city_xam | "兴安盟"
|
city_xc | "许昌"
|
city_xf | "襄阳"
|
city_xiangchengshi | "项城"
|
city_xianghe | "香河"
|
city_xiangshanxian | "象山"
|
city_xiangshui | "响水"
|
city_xiangtan | "湘潭"
|
city_xiangxi | "湘西"
|
city_xiangyin | "湘阴"
|
city_xiangyuanxian | "襄垣"
|
city_xianning | "咸宁"
|
city_xiantao | "仙桃"
|
city_xianyang | "咸阳"
|
city_xiaochang | "孝昌"
|
city_xiaogan | "孝感"
|
city_xiaoyi | "孝义"
|
city_xinchang | "新昌"
|
city_xinghuashi | "兴化"
|
city_xintai | "新泰"
|
city_xinye | "新野"
|
city_xinyishi | "新沂"
|
city_xinyu | "新余"
|
city_xinzhou | "忻州"
|
city_xionganxinqu | "雄安新区"
|
city_xj | "乌鲁木齐"
|
city_xl | "锡林郭勒"
|
city_xm | "厦门"
|
city_xn | "西宁"
|
city_xt | "邢台"
|
city_xuancheng | "宣城"
|
city_xuanhan | "宣汉"
|
city_xuanwushi | "宣威"
|
city_xuyi | "盱眙"
|
city_xx | "新乡"
|
city_xy | "信阳"
|
city_xz | "徐州"
|
city_xzpeixian | "沛县"
|
city_ya | "雅安"
|
city_yanan | "延安"
|
city_yanbian | "延边"
|
city_yancheng | "盐城"
|
city_yangchun | "阳春"
|
city_yanggu | "阳谷"
|
city_yangzhong | "扬中"
|
city_yanling | "鄢陵"
|
city_yanshiqu | "偃师"
|
city_yb | "宜宾"
|
city_yc | "宜昌"
|
city_yf | "云浮"
|
city_yich | "伊春"
|
city_yichengshi | "宜城"
|
city_yichuan | "伊川"
|
city_yichun | "宜春"
|
city_yidou | "宜都"
|
city_yili | "伊犁"
|
city_yinanxian | "沂南"
|
city_yinchuan | "银川"
|
city_yingchixian | "渑池"
|
city_yingtan | "鹰潭"
|
city_yiwu | "义乌"
|
city_yiyang | "益阳"
|
city_yiyuanxian | "沂源"
|
city_yj | "阳江"
|
city_yk | "营口"
|
city_yl | "榆林"
|
city_yongan | "永安"
|
city_yongcheng | "永城"
|
city_yongchunxian | "永春"
|
city_yongkang | "永康"
|
city_yongxing | "永兴"
|
city_yongzhou | "永州"
|
city_yq | "阳泉"
|
city_ys | "玉树"
|
city_yt | "烟台"
|
city_yuanjiangs | "沅江"
|
city_yuchengshi | "禹城"
|
city_yueqingcity | "乐清"
|
city_yuhuan | "玉环"
|
city_yujiang | "余江"
|
city_yulin | "玉林"
|
city_yuncheng | "运城"
|
city_yunmeng | "云梦"
|
city_yutianxian | "玉田"
|
city_yuyao | "余姚"
|
city_yuzhou | "禹州"
|
city_yx | "玉溪"
|
city_yxx | "永新"
|
city_yy | "岳阳"
|
city_yz | "扬州"
|
city_zaoyang | "枣阳"
|
city_zaozhuang | "枣庄"
|
city_zb | "淄博"
|
city_zc | "诸城"
|
city_zd | "正定"
|
city_zezhou | "泽州"
|
city_zg | "自贡"
|
city_zh | "珠海"
|
city_zhangbei | "张北"
|
city_zhangpu | "漳浦"
|
city_zhangqiu | "章丘"
|
city_zhangshu | "樟树"
|
city_zhangye | "张掖"
|
city_zhangzhou | "漳州"
|
city_zhanjiang | "湛江"
|
city_zhaoyuan | "招远"
|
city_zhaozhou | "肇州"
|
city_zhijiang | "枝江"
|
city_zhongxiangshi | "钟祥"
|
city_zhoushan | "舟山"
|
city_zhuji | "诸暨"
|
city_zhuozhou | "涿州"
|
city_zhuzhou | "株洲"
|
city_zixing | "资兴"
|
city_zj | "镇江"
|
city_zjj | "张家界"
|
city_zjk | "张家口"
|
city_zk | "周口"
|
city_zmd | "驻马店"
|
city_zoucheng | "邹城"
|
city_zouping | "邹平"
|
city_zq | "肇庆"
|
city_zs | "中山"
|
city_zt | "昭通"
|
city_zunhua | "遵化市"
|
city_zunyi | "遵义"
|
city_zw | "中卫"
|
city_zx | "赵县"
|
city_zy | "资阳"
|
city_zz | "郑州"
|
city_zzyouxian | "攸县"
|
city_sanfrancisco | "旧金山"
|
city_newyork | "纽约"
|
city_toronto | "多伦多"
|
city_vancouver | "温哥华"
|
city_london | "伦敦"
|
city_moscow | "莫斯科"
|
city_seoul | "首尔"
|
city_tokyo | "东京"
|
city_singapore | "新加坡"
|
city_bangkok | "曼谷"
|
city_chiangmai | "清迈"
|
city_dubai | "迪拜"
|
city_auckland | "奥克兰"
|
city_sydney | "悉尼"
|
city_melbourne | "墨尔本"
|
city_losangeles | "洛杉矶"
|
city_nhatrang | "芽庄"
|
city_osaka | "大阪"
|
RECAPTCHAV3_SITEKEY | "6Ldryi0cAAAAAPceT8c0lznbXfxyucc2JcvX_vYf"
|
RECAPTCHAV3_SECRET | "6Ldryi0cAAAAAP-iwVeyX28vi_moeYB2V7KAvhPF"
|
RECAPTCHAV3_ORIGIN | "https://www.recaptcha.net"
|
RECAPTCHAV3_LOGIN_SCORE | "0.3"
|
Key | Value |
APP_NAME | "TooBigData"
|
APP_ENV | "production"
|
APP_KEY | "base64:+kay1JZCC6ujJxBzriiwg1tP3TLEbIt8AiN/toxQT4Y="
|
APP_DEBUG | "true"
|
APP_URL | "https://toobigdata.com"
|
SHOW_ADS | "false"
|
LOG_CHANNEL | "stack"
|
DB_CONNECTION | "mysql"
|
DB_HOST | "wonderbj.mysql.rds.aliyuncs.com"
|
DB_PORT | "3306"
|
DB_DATABASE | "tbd_platform"
|
DB_USERNAME | "data_platform"
|
DB_PASSWORD | "AdmWeiboMobvoi2008"
|
TENCENT_DB_CONNECTION | "mysql"
|
TENCENT_DB_HOST | "bj-cdb-hn96a8si.sql.tencentcdb.com"
|
TENCENT_DB_PORT | "63914"
|
TENCENT_DB_DATABASE | "tbd_platform"
|
TENCENT_DB_USERNAME | "root"
|
TENCENT_DB_PASSWORD | "Tbdnext3$"
|
BROADCAST_DRIVER | "log"
|
CACHE_DRIVER | "file"
|
SESSION_DRIVER | "file"
|
SESSION_LIFETIME | "120"
|
QUEUE_DRIVER | "sync"
|
REDIS_HOST | "127.0.0.1"
|
REDIS_PASSWORD | "null"
|
REDIS_PORT | "6379"
|
MAIL_DRIVER | "sendcloud"
|
MAIL_HOST | "smtp.mailtrap.io"
|
MAIL_PORT | "2525"
|
MAIL_USERNAME | "null"
|
MAIL_PASSWORD | "null"
|
MAIL_ENCRYPTION | "null"
|
PUSHER_APP_ID | "" |
PUSHER_APP_KEY | "" |
PUSHER_APP_SECRET | "" |
PUSHER_APP_CLUSTER | "mt1"
|
MIX_PUSHER_APP_KEY | "" |
MIX_PUSHER_APP_CLUSTER | "mt1"
|
WECHAT_OFFICIAL_ACCOUNT_APPID | "wxf254f3d4fb245132"
|
WECHAT_OFFICIAL_ACCOUNT_SECRET | "c67620ede617dcfe293184acf05e5db3"
|
WECHAT_OFFICIAL_ACCOUNT_TOKEN | "hellowx"
|
WECHAT_OFFICIAL_ACCOUNT_AES_KEY | "xiVqemSqIYcMkEUns60dRoUsIC1pCdlyCfyLlO0r5HC"
|
WECHAT_PAYMENT_APPID | "wxf254f3d4fb245132"
|
WECHAT_PAYMENT_MCH_ID | "1354711102"
|
WECHAT_PAYMENT_KEY | "M5gVxqAchpUcbWuFt1Ihbwp71MAKQo5f"
|
WECHAT_PAYMENT_CERT_PATH | "/Users/wuhao/www/toobigdata/cert/apiclient_cert.pem"
|
WECHAT_PAYMENT_KEY_PATH | "/Users/wuhao/www/toobigdata/cert/apiclient_key.pem"
|
SEND_CLOUD_USER | "wuhaoworld_test_NoMOvU"
|
SEND_CLOUD_KEY | "hyksfTQyx6VZtQgQ"
|
QINIU_BUCKET | "kolranking"
|
QINIU_ACCESS_KEY | "el7kgPgYzpJoB23jrChWJ2gV3HpRl0VCzFn8rKKv"
|
QINIU_SECRET_KEY | "kk8lZDzOuY7WJuws63iqTRtrvbtHKxxe9TbO-D65"
|
QINIU_DOMAIN | "dl.kolranking.com"
|
QINIU_DOMAIN_HTTPS | "oh8ltug8l.bkt.clouddn.com"
|
DEMO_TOKEN | "Aacg0rt9aqlv"
|
TOKEN | "a5cGKGja8TEyqvXw8aYGgrShepfE8AKrjD57Pf2xmXPMGryrXS6x335byWxz4Frn"
|
INVITE_CREDIT | "3"
|
COUNT_PERPAGE | "20"
|
city_ab | "阿坝"
|
city_aks | "阿克苏"
|
city_al | "阿里"
|
city_ale | "阿拉尔"
|
city_alsm | "阿拉善盟"
|
city_alt | "阿勒泰"
|
city_am | "澳门"
|
city_anji | "安吉"
|
city_ankang | "安康"
|
city_anlu | "安陆"
|
city_anningshi | "安宁"
|
city_anqing | "安庆"
|
city_anqiu | "安丘"
|
city_anshun | "安顺"
|
city_anxixian | "安溪"
|
city_anyuexian | "安岳"
|
city_as | "鞍山"
|
city_ay | "安阳"
|
city_baise | "百色"
|
city_baish | "白沙"
|
city_baishan | "白山"
|
city_baoji | "宝鸡"
|
city_baoting | "保亭"
|
city_baoyingx | "宝应县"
|
city_bazhong | "巴中"
|
city_bazhou | "霸州"
|
city_bc | "白城"
|
city_bd | "保定"
|
city_beiliushi | "北流"
|
city_beipiao | "北票"
|
city_bengbu | "蚌埠"
|
city_benxi | "本溪"
|
city_betl | "博尔塔拉"
|
city_bh | "北海"
|
city_bijie | "毕节"
|
city_bj | "北京"
|
city_bn | "西双版纳"
|
city_bobaixian | "博白"
|
city_boluo | "博罗"
|
city_boxing | "博兴"
|
city_bozhou | "亳州"
|
city_bs | "保山"
|
city_bt | "包头"
|
city_by | "白银"
|
city_bycem | "巴彦淖尔市"
|
city_bygl | "巴音郭楞"
|
city_bz | "滨州"
|
city_cangnanxian | "苍南"
|
city_cangxian | "沧县"
|
city_cangzhou | "沧州"
|
city_caoxian | "曹县"
|
city_cc | "长春"
|
city_cd | "成都"
|
city_cenxi | "岑溪"
|
city_ch | "巢湖"
|
city_changde | "常德"
|
city_changdu | "昌都"
|
city_changge | "长葛"
|
city_changji | "昌吉"
|
city_changle | "昌乐"
|
city_changlingxian | "长岭"
|
city_changningshi | "常宁"
|
city_changningx | "长宁"
|
city_changxing | "长兴"
|
city_changyishi | "昌邑"
|
city_changyuan | "长垣"
|
city_changzhi | "长治"
|
city_chaozhou | "潮州"
|
city_chengde | "承德"
|
city_chenzhou | "郴州"
|
city_chibishi | "赤壁"
|
city_chifeng | "赤峰"
|
city_chiping | "茌平"
|
city_chizhou | "池州"
|
city_chongzuo | "崇左"
|
city_chuzhou | "滁州"
|
city_cilixian | "慈利"
|
city_cixi | "慈溪"
|
city_cixian | "磁县"
|
city_cm | "澄迈"
|
city_cq | "重庆"
|
city_cs | "长沙"
|
city_cx | "楚雄"
|
city_cy | "朝阳"
|
city_cz | "常州"
|
city_czguiyang | "桂阳"
|
city_da | "定安"
|
city_dafeng | "大丰"
|
city_dali | "大理"
|
city_dandong | "丹东"
|
city_dangyang | "当阳"
|
city_danyang | "丹阳"
|
city_danzhou | "儋州"
|
city_dawu | "大悟"
|
city_dazhou | "达州"
|
city_dazu | "大竹"
|
city_dengta | "灯塔"
|
city_dengzhou | "邓州"
|
city_deqing | "德清"
|
city_deyang | "德阳"
|
city_df | "东方"
|
city_dg | "东莞"
|
city_dh | "德宏"
|
city_dingbian | "定边"
|
city_dingzhou | "定州"
|
city_diqing | "迪庆"
|
city_dl | "大连"
|
city_donghai | "东海"
|
city_dongming | "东明"
|
city_dongping | "东平"
|
city_dongtai | "东台"
|
city_dongyang | "东阳"
|
city_dongzhi | "东至"
|
city_dq | "大庆"
|
city_dt | "大同"
|
city_dunhuang | "敦煌"
|
city_dx | "定西"
|
city_dxal | "大兴安岭"
|
city_dy | "东营"
|
city_dz | "德州"
|
city_erds | "鄂尔多斯"
|
city_es | "恩施"
|
city_ez | "鄂州"
|
city_fanxian | "范县"
|
city_fcg | "防城港"
|
city_feicheng | "肥城"
|
city_fengcheng | "凤城"
|
city_fengchengshi | "丰城"
|
city_fenyi | "分宜"
|
city_fs | "佛山"
|
city_fuanshi | "福安"
|
city_fudingshi | "福鼎"
|
city_fugu | "府谷"
|
city_fuliangxian | "浮梁"
|
city_funingxian | "阜宁"
|
city_fushun | "抚顺"
|
city_fuyuxian | "扶余"
|
city_fuzhou | "抚州"
|
city_fx | "阜新"
|
city_fy | "阜阳"
|
city_fz | "福州"
|
city_ga | "广安"
|
city_gaizexian | "改则"
|
city_ganzhou | "赣州"
|
city_ganzi | "甘孜"
|
city_gaoan | "高安"
|
city_gaomi | "高密"
|
city_gaoping | "高平"
|
city_gaotang | "高唐"
|
city_geermushi | "格尔木"
|
city_gg | "贵港"
|
city_gl | "桂林"
|
city_glauckland | "奥克兰"
|
city_glbangkok | "曼谷"
|
city_glchiangmai | "清迈"
|
city_gldubai | "迪拜"
|
city_glgreaterlondon | "伦敦"
|
city_gllosangeles | "洛杉矶"
|
city_glmelbourne | "墨尔本"
|
city_glmoscow | "莫斯科"
|
city_glnewyork | "纽约"
|
city_glsanfrancisco | "旧金山"
|
city_glseoul | "首尔"
|
city_glsingapore | "新加坡"
|
city_glsydney | "悉尼"
|
city_gltokyo | "东京"
|
city_gltoronto | "多伦多"
|
city_glvancouver | "温哥华"
|
city_gn | "甘南"
|
city_gongzhuling | "公主岭"
|
city_gt | "馆陶"
|
city_guanghanshi | "广汉"
|
city_guangrao | "广饶"
|
city_guangshuishi | "广水"
|
city_guangyuan | "广元"
|
city_guannan | "灌南"
|
city_guanxian | "冠县"
|
city_guanyun | "灌云"
|
city_gucheng | "谷城"
|
city_guipingqu | "桂平"
|
city_guoluo | "果洛"
|
city_gushixian | "固始"
|
city_guyuan | "固原"
|
city_gy | "贵阳"
|
city_gz | "广州"
|
city_ha | "淮安"
|
city_haian | "海安"
|
city_haibei | "海北"
|
city_haidong | "海东"
|
city_haifengxian | "海丰"
|
city_haikou | "海口"
|
city_haimen | "海门"
|
city_hainan | "海南"
|
city_haining | "海宁"
|
city_haiyan | "海盐"
|
city_hami | "哈密"
|
city_hancheng | "韩城"
|
city_hanchuan | "汉川"
|
city_hanzhong | "汉中"
|
city_hb | "鹤壁"
|
city_hc | "河池"
|
city_hd | "邯郸"
|
city_hegang | "鹤岗"
|
city_heihe | "黑河"
|
city_hejian | "河间"
|
city_hengdong | "衡东"
|
city_hexian | "和县"
|
city_heyuan | "河源"
|
city_heze | "菏泽"
|
city_hezhou | "贺州"
|
city_hf | "合肥"
|
city_hg | "黄冈"
|
city_hh | "怀化"
|
city_hk | "香港"
|
city_hlbe | "呼伦贝尔"
|
city_hld | "葫芦岛"
|
city_hlr | "海拉尔"
|
city_hn | "淮南"
|
city_honghe | "红河"
|
city_hq | "霍邱"
|
city_hrb | "哈尔滨"
|
city_hs | "衡水"
|
city_hshi | "黄石"
|
city_ht | "和田"
|
city_hu | "呼和浩特"
|
city_huadian | "桦甸"
|
city_huaibei | "淮北"
|
city_huaibinxian | "淮滨"
|
city_huanghua | "黄骅"
|
city_huangnan | "黄南"
|
city_huangshan | "黄山"
|
city_huantaixian | "桓台"
|
city_huarong | "华容"
|
city_huaxian | "滑县"
|
city_huidong | "惠东"
|
city_huizhou | "惠州"
|
city_huzhou | "湖州"
|
city_hx | "海西"
|
city_hy | "衡阳"
|
city_hz | "杭州"
|
city_hzyc | "郓城"
|
city_ja | "吉安"
|
city_jdz | "景德镇"
|
city_jh | "金华"
|
city_jiangshanshi | "江山"
|
city_jiangyan | "姜堰"
|
city_jianhu | "建湖"
|
city_jianyangshi | "简阳"
|
city_jiaozuo | "焦作"
|
city_jiashanx | "嘉善"
|
city_jiayuxian | "嘉鱼"
|
city_jinchang | "金昌"
|
city_jincheng | "晋城"
|
city_jingbian | "靖边"
|
city_jingjiang | "靖江"
|
city_jingmen | "荆门"
|
city_jingshanxian | "京山"
|
city_jingzhou | "荆州"
|
city_jinhu | "金湖"
|
city_jining | "济宁"
|
city_jinjiangshi | "晋江"
|
city_jintan | "金坛"
|
city_jinxian | "进贤"
|
city_jinzhou | "锦州"
|
city_jixi | "鸡西"
|
city_jiyuan | "济源"
|
city_jj | "九江"
|
city_jl | "吉林"
|
city_jm | "江门"
|
city_jms | "佳木斯"
|
city_jn | "济南"
|
city_jq | "酒泉"
|
city_juancheng | "鄄城"
|
city_junxian | "浚县"
|
city_jurong | "句容"
|
city_juxian | "莒县"
|
city_juye | "巨野"
|
city_jx | "嘉兴"
|
city_jy | "揭阳"
|
city_jyg | "嘉峪关"
|
city_jz | "晋中"
|
city_kaifeng | "开封"
|
city_kaipingshi | "开平"
|
city_kaiyuan | "开原"
|
city_kel | "库尔勒"
|
city_kl | "垦利"
|
city_klmy | "克拉玛依"
|
city_km | "昆明"
|
city_ks | "喀什"
|
city_kzls | "克孜勒苏"
|
city_la | "六安"
|
city_laiyang | "莱阳"
|
city_laizhou | "莱州"
|
city_lankaoxian | "兰考"
|
city_laohekou | "老河口"
|
city_lasa | "拉萨"
|
city_lb | "来宾"
|
city_lc | "聊城"
|
city_ld | "娄底"
|
city_leling | "乐陵"
|
city_lengshuijiangshi | "冷水江"
|
city_lepingshi | "乐平"
|
city_lf | "廊坊"
|
city_lfguan | "固安"
|
city_lfyanjiao | "燕郊"
|
city_liangshan | "凉山"
|
city_liangshanx | "梁山"
|
city_lianyuanshi | "涟源"
|
city_liaoyang | "辽阳"
|
city_liaoyuan | "辽源"
|
city_lijin | "利津"
|
city_liling | "醴陵"
|
city_lincang | "临沧"
|
city_linfen | "临汾"
|
city_lingbaoshi | "灵宝"
|
city_lingshui | "陵水"
|
city_linhai | "临海"
|
city_linqing | "临清"
|
city_linqu | "临朐"
|
city_linxia | "临夏"
|
city_linyi | "临沂"
|
city_linyixian | "临猗"
|
city_linyixianq | "临邑"
|
city_linzhi | "林芝"
|
city_linzhou | "林州"
|
city_lishu | "梨树县"
|
city_lishui | "丽水"
|
city_liulin | "柳林"
|
city_liuzhou | "柳州"
|
city_lixian | "澧县"
|
city_liyang | "溧阳"
|
city_lj | "丽江"
|
city_ln | "陇南"
|
city_longhai | "龙海"
|
city_longkou | "龙口"
|
city_lps | "六盘水"
|
city_ls | "乐山"
|
city_luannanxian | "滦南"
|
city_lufengshi | "陆丰"
|
city_luohe | "漯河"
|
city_luoyang | "洛阳"
|
city_luyi | "鹿邑"
|
city_luzhou | "泸州"
|
city_lvliang | "吕梁"
|
city_lw | "莱芜"
|
city_ly | "龙岩"
|
city_lyg | "连云港"
|
city_lyxinan | "新安"
|
city_lyyiyang | "宜阳"
|
city_lz | "兰州"
|
city_mas | "马鞍山"
|
city_mdj | "牡丹江"
|
city_meihekou | "梅河口"
|
city_mengjinqu | "孟津"
|
city_mengzhou | "孟州"
|
city_mg | "明港"
|
city_mianyang | "绵阳"
|
city_milexian | "弥勒"
|
city_mm | "茂名"
|
city_ms | "眉山"
|
city_mz | "梅州"
|
city_nananshi | "南安"
|
city_nanchengx | "南城"
|
city_nanchong | "南充"
|
city_nanxian | "南县"
|
city_nanzhang | "南漳"
|
city_nb | "宁波"
|
city_nc | "南昌"
|
city_nd | "宁德"
|
city_ningguo | "宁国"
|
city_ningjin | "宁津"
|
city_ningyang | "宁阳"
|
city_nj | "南京"
|
city_nn | "南宁"
|
city_np | "南平"
|
city_nq | "那曲"
|
city_nt | "南通"
|
city_nujiang | "怒江"
|
city_ny | "南阳"
|
city_panshi | "磐石"
|
city_panzhihua | "攀枝花"
|
city_pds | "平顶山"
|
city_pe | "普洱"
|
city_penglai | "蓬莱"
|
city_pinghushi | "平湖"
|
city_pingyangxian | "平阳"
|
city_pingyi | "平邑"
|
city_pizhou | "邳州"
|
city_pj | "盘锦"
|
city_pl | "平凉"
|
city_pld | "庄河"
|
city_pt | "莆田"
|
city_puyang | "濮阳"
|
city_px | "萍乡"
|
city_qd | "青岛"
|
city_qdn | "黔东南"
|
city_qh | "琼海"
|
city_qhd | "秦皇岛"
|
city_qianan | "迁安市"
|
city_qianjiang | "潜江"
|
city_qianxixian | "迁西"
|
city_qidong | "启东"
|
city_qidongxian | "祁东"
|
city_qihe | "齐河"
|
city_qingxu | "清徐"
|
city_qingyang | "庆阳"
|
city_qingyuan | "清远"
|
city_qingzhen | "清镇"
|
city_qingzhou | "青州"
|
city_qinyang | "沁阳"
|
city_qinzhou | "钦州"
|
city_qiongzhong | "琼中"
|
city_qixia | "栖霞"
|
city_qixianq | "淇县"
|
city_qixianqu | "杞县"
|
city_qiyang | "祁阳"
|
city_qj | "曲靖"
|
city_qn | "黔南"
|
city_qqhr | "齐齐哈尔"
|
city_qth | "七台河"
|
city_quanguo | "全国"
|
city_qux | "渠县"
|
city_quzhou | "衢州"
|
city_qxn | "黔西南"
|
city_qz | "泉州"
|
city_renhuaishi | "仁怀"
|
city_renqiu | "任丘"
|
city_renshouxian | "仁寿"
|
city_rituxian | "日土"
|
city_rizhao | "日照"
|
city_rkz | "日喀则"
|
city_rongcheng | "荣成"
|
city_rudong | "如东"
|
city_rugao | "如皋"
|
city_ruiancity | "瑞安"
|
city_rushan | "乳山"
|
city_ruzhou | "汝州"
|
city_sanhe | "三河"
|
city_sansha | "三沙"
|
city_sanya | "三亚"
|
city_scnj | "内江"
|
city_sd | "顺德"
|
city_sg | "韶关"
|
city_sh | "上海"
|
city_shaheshi | "沙河"
|
city_shanda | "安达"
|
city_shanghangxian | "上杭"
|
city_shangshui | "商水"
|
city_shanxian | "单县"
|
city_shaodongxian | "邵东"
|
city_shaoyang | "邵阳"
|
city_shaoyangxian | "邵阳县"
|
city_shayangxian | "沙洋"
|
city_shehongxian | "射洪"
|
city_shengzhou | "嵊州"
|
city_shenmu | "神木"
|
city_shenqiu | "沈丘"
|
city_shenxian | "莘县"
|
city_shexian | "涉县"
|
city_sheyang | "射阳"
|
city_shishi | "石狮"
|
city_shiyan | "十堰"
|
city_shouguang | "寿光"
|
city_shuangfengxian | "双峰"
|
city_shuozhou | "朔州"
|
city_shuyang | "沭阳"
|
city_shz | "石河子"
|
city_shzhaodong | "肇东"
|
city_sihong | "泗洪"
|
city_siyang | "泗阳"
|
city_sjz | "石家庄"
|
city_sl | "商洛"
|
city_sm | "三明"
|
city_smx | "三门峡"
|
city_sn | "山南"
|
city_snj | "神农架"
|
city_songyuan | "松原"
|
city_songzi | "松滋"
|
city_sp | "四平"
|
city_sq | "商丘"
|
city_sr | "上饶"
|
city_st | "汕头"
|
city_su | "苏州"
|
city_suihua | "绥化"
|
city_suining | "遂宁"
|
city_suixia | "随县"
|
city_suixian | "睢县"
|
city_suizhou | "随州"
|
city_suqian | "宿迁"
|
city_suzhou | "宿州"
|
city_sw | "汕尾"
|
city_sx | "绍兴"
|
city_sy | "沈阳"
|
city_sys | "双鸭山"
|
city_sz | "深圳"
|
city_szkunshan | "昆山"
|
city_szs | "石嘴山"
|
city_ta | "泰安"
|
city_tac | "塔城"
|
city_taikang | "太康"
|
city_taishan | "台山"
|
city_taixing | "泰兴"
|
city_taizhou | "泰州"
|
city_tancheng | "郯城"
|
city_tc | "铜川"
|
city_tengzhou | "滕州"
|
city_th | "通化"
|
city_tianchang | "天长"
|
city_tianshui | "天水"
|
city_tj | "天津"
|
city_tl | "铁岭"
|
city_tlf | "吐鲁番"
|
city_tm | "天门"
|
city_tmsk | "图木舒克"
|
city_tongcheng | "桐城"
|
city_tongliao | "通辽"
|
city_tongling | "铜陵"
|
city_tongxiang | "桐乡"
|
city_tongxuxian | "通许"
|
city_tr | "铜仁"
|
city_ts | "唐山"
|
city_tunchang | "屯昌"
|
city_tw | "台湾"
|
city_ty | "太原"
|
city_tz | "台州"
|
city_wanning | "万宁"
|
city_weihai | "威海"
|
city_weishan | "微山"
|
city_weishixian | "尉氏"
|
city_wenchang | "文昌"
|
city_wenling | "温岭"
|
city_wenshang | "汶上"
|
city_wenxian | "温县"
|
city_wf | "潍坊"
|
city_wfd | "瓦房店"
|
city_wh | "武汉"
|
city_wjq | "五家渠"
|
city_wlcb | "乌兰察布"
|
city_wn | "渭南"
|
city_ws | "文山"
|
city_wuan | "武安"
|
city_wudi | "无棣"
|
city_wugang | "舞钢"
|
city_wuhai | "乌海"
|
city_wuhu | "芜湖"
|
city_wuwei | "武威"
|
city_wuweixian | "无为"
|
city_wuxueshi | "武穴"
|
city_wuyishan | "武夷山"
|
city_wuyix | "武义县"
|
city_wuzhong | "吴忠"
|
city_wuzhou | "梧州"
|
city_wx | "无锡"
|
city_wz | "温州"
|
city_wzs | "五指山"
|
city_xa | "西安"
|
city_xam | "兴安盟"
|
city_xc | "许昌"
|
city_xf | "襄阳"
|
city_xiangchengshi | "项城"
|
city_xianghe | "香河"
|
city_xiangshanxian | "象山"
|
city_xiangshui | "响水"
|
city_xiangtan | "湘潭"
|
city_xiangxi | "湘西"
|
city_xiangyin | "湘阴"
|
city_xiangyuanxian | "襄垣"
|
city_xianning | "咸宁"
|
city_xiantao | "仙桃"
|
city_xianyang | "咸阳"
|
city_xiaochang | "孝昌"
|
city_xiaogan | "孝感"
|
city_xiaoyi | "孝义"
|
city_xinchang | "新昌"
|
city_xinghuashi | "兴化"
|
city_xintai | "新泰"
|
city_xinye | "新野"
|
city_xinyishi | "新沂"
|
city_xinyu | "新余"
|
city_xinzhou | "忻州"
|
city_xionganxinqu | "雄安新区"
|
city_xj | "乌鲁木齐"
|
city_xl | "锡林郭勒"
|
city_xm | "厦门"
|
city_xn | "西宁"
|
city_xt | "邢台"
|
city_xuancheng | "宣城"
|
city_xuanhan | "宣汉"
|
city_xuanwushi | "宣威"
|
city_xuyi | "盱眙"
|
city_xx | "新乡"
|
city_xy | "信阳"
|
city_xz | "徐州"
|
city_xzpeixian | "沛县"
|
city_ya | "雅安"
|
city_yanan | "延安"
|
city_yanbian | "延边"
|
city_yancheng | "盐城"
|
city_yangchun | "阳春"
|
city_yanggu | "阳谷"
|
city_yangzhong | "扬中"
|
city_yanling | "鄢陵"
|
city_yanshiqu | "偃师"
|
city_yb | "宜宾"
|
city_yc | "宜昌"
|
city_yf | "云浮"
|
city_yich | "伊春"
|
city_yichengshi | "宜城"
|
city_yichuan | "伊川"
|
city_yichun | "宜春"
|
city_yidou | "宜都"
|
city_yili | "伊犁"
|
city_yinanxian | "沂南"
|
city_yinchuan | "银川"
|
city_yingchixian | "渑池"
|
city_yingtan | "鹰潭"
|
city_yiwu | "义乌"
|
city_yiyang | "益阳"
|
city_yiyuanxian | "沂源"
|
city_yj | "阳江"
|
city_yk | "营口"
|
city_yl | "榆林"
|
city_yongan | "永安"
|
city_yongcheng | "永城"
|
city_yongchunxian | "永春"
|
city_yongkang | "永康"
|
city_yongxing | "永兴"
|
city_yongzhou | "永州"
|
city_yq | "阳泉"
|
city_ys | "玉树"
|
city_yt | "烟台"
|
city_yuanjiangs | "沅江"
|
city_yuchengshi | "禹城"
|
city_yueqingcity | "乐清"
|
city_yuhuan | "玉环"
|
city_yujiang | "余江"
|
city_yulin | "玉林"
|
city_yuncheng | "运城"
|
city_yunmeng | "云梦"
|
city_yutianxian | "玉田"
|
city_yuyao | "余姚"
|
city_yuzhou | "禹州"
|
city_yx | "玉溪"
|
city_yxx | "永新"
|
city_yy | "岳阳"
|
city_yz | "扬州"
|
city_zaoyang | "枣阳"
|
city_zaozhuang | "枣庄"
|
city_zb | "淄博"
|
city_zc | "诸城"
|
city_zd | "正定"
|
city_zezhou | "泽州"
|
city_zg | "自贡"
|
city_zh | "珠海"
|
city_zhangbei | "张北"
|
city_zhangpu | "漳浦"
|
city_zhangqiu | "章丘"
|
city_zhangshu | "樟树"
|
city_zhangye | "张掖"
|
city_zhangzhou | "漳州"
|
city_zhanjiang | "湛江"
|
city_zhaoyuan | "招远"
|
city_zhaozhou | "肇州"
|
city_zhijiang | "枝江"
|
city_zhongxiangshi | "钟祥"
|
city_zhoushan | "舟山"
|
city_zhuji | "诸暨"
|
city_zhuozhou | "涿州"
|
city_zhuzhou | "株洲"
|
city_zixing | "资兴"
|
city_zj | "镇江"
|
city_zjj | "张家界"
|
city_zjk | "张家口"
|
city_zk | "周口"
|
city_zmd | "驻马店"
|
city_zoucheng | "邹城"
|
city_zouping | "邹平"
|
city_zq | "肇庆"
|
city_zs | "中山"
|
city_zt | "昭通"
|
city_zunhua | "遵化市"
|
city_zunyi | "遵义"
|
city_zw | "中卫"
|
city_zx | "赵县"
|
city_zy | "资阳"
|
city_zz | "郑州"
|
city_zzyouxian | "攸县"
|
city_sanfrancisco | "旧金山"
|
city_newyork | "纽约"
|
city_toronto | "多伦多"
|
city_vancouver | "温哥华"
|
city_london | "伦敦"
|
city_moscow | "莫斯科"
|
city_seoul | "首尔"
|
city_tokyo | "东京"
|
city_singapore | "新加坡"
|
city_bangkok | "曼谷"
|
city_chiangmai | "清迈"
|
city_dubai | "迪拜"
|
city_auckland | "奥克兰"
|
city_sydney | "悉尼"
|
city_melbourne | "墨尔本"
|
city_losangeles | "洛杉矶"
|
city_nhatrang | "芽庄"
|
city_osaka | "大阪"
|
RECAPTCHAV3_SITEKEY | "6Ldryi0cAAAAAPceT8c0lznbXfxyucc2JcvX_vYf"
|
RECAPTCHAV3_SECRET | "6Ldryi0cAAAAAP-iwVeyX28vi_moeYB2V7KAvhPF"
|
RECAPTCHAV3_ORIGIN | "https://www.recaptcha.net"
|
RECAPTCHAV3_LOGIN_SCORE | "0.3"
|