本文整理汇总了PHP中__hack_action函数的典型用法代码示例。如果您正苦于以下问题:PHP __hack_action函数的具体用法?PHP __hack_action怎么用?PHP __hack_action使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了__hack_action函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __call
/**
+----------------------------------------------------------
* 魔术方法 有不存在的操作的时候执行
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $method 方法名
* @param array $args 参数
+----------------------------------------------------------
* @return mixed
+----------------------------------------------------------
*/
public function __call($method, $args)
{
if (0 === strcasecmp($method, ACTION_NAME)) {
if (method_exists($this, '_empty')) {
// 如果定义了_empty操作 则调用
$this->_empty($method, $args);
} elseif (file_exists_case(C('TEMPLATE_NAME'))) {
// 检查是否存在默认模版 如果有直接输出模版
$this->display();
} elseif (function_exists('__hack_action')) {
// hack 方式定义扩展操作
__hack_action();
} elseif (APP_DEBUG) {
// 抛出异常
throw_exception(L('_ERROR_ACTION_') . ACTION_NAME);
} else {
if (C('LOG_EXCEPTION_RECORD')) {
Log::write(L('_ERROR_ACTION_') . ACTION_NAME);
}
send_http_status(404);
exit;
}
} else {
switch (strtolower($method)) {
// 判断提交方式
case 'ispost':
case 'isget':
case 'ishead':
case 'isdelete':
case 'isput':
return strtolower($_SERVER['REQUEST_METHOD']) == strtolower(substr($method, 2));
// 获取变量 支持过滤和默认值 调用方式 $this->_post($key,$filter,$default);
// 获取变量 支持过滤和默认值 调用方式 $this->_post($key,$filter,$default);
case '_get':
$input =& $_GET;
break;
case '_post':
$input =& $_POST;
break;
case '_put':
parse_str(file_get_contents('php://input'), $input);
break;
case '_request':
$input =& $_REQUEST;
break;
case '_session':
$input =& $_SESSION;
break;
case '_cookie':
$input =& $_COOKIE;
break;
case '_server':
$input =& $_SERVER;
break;
case '_globals':
$input =& $GLOBALS;
break;
default:
throw_exception(__CLASS__ . ':' . $method . L('_METHOD_NOT_EXIST_'));
}
if (isset($input[$args[0]])) {
// 取值操作
$data = $input[$args[0]];
$fun = $args[1] ? $args[1] : C('DEFAULT_FILTER');
$data = $fun($data);
// 参数过滤
} else {
// 变量默认值
$data = isset($args[2]) ? $args[2] : NULL;
}
return $data;
}
}
示例2: __call
/**
* 魔术方法 有不存在的操作的时候执行
* @access public
* @param string $method 方法名
* @param array $args 参数
* @return mixed
*/
public function __call($method, $args)
{
if (0 === strcasecmp($method, ACTION_NAME . C('ACTION_SUFFIX'))) {
if (method_exists($this, '_empty')) {
// 如果定义了_empty操作 则调用
$this->_empty($method, $args);
} elseif (file_exists_case(C('TEMPLATE_NAME'))) {
// 检查是否存在默认模版 如果有直接输出模版
$this->display();
} elseif (function_exists('__hack_action')) {
// hack 方式定义扩展操作
__hack_action();
} else {
_404(L('_ERROR_ACTION_') . ':' . ACTION_NAME);
}
} else {
switch (strtolower($method)) {
// 判断提交方式
case 'ispost':
case 'isget':
case 'ishead':
case 'isdelete':
case 'isput':
return strtolower($_SERVER['REQUEST_METHOD']) == strtolower(substr($method, 2));
// 获取变量 支持过滤和默认值 调用方式 $this->_post($key,$filter,$default);
// 获取变量 支持过滤和默认值 调用方式 $this->_post($key,$filter,$default);
case '_get':
$input =& $_GET;
break;
case '_post':
$input =& $_POST;
break;
case '_put':
parse_str(file_get_contents('php://input'), $input);
break;
case '_param':
switch ($_SERVER['REQUEST_METHOD']) {
case 'POST':
$input = $_POST;
break;
case 'PUT':
parse_str(file_get_contents('php://input'), $input);
break;
default:
$input = $_GET;
}
if (C('VAR_URL_PARAMS')) {
$params = $_GET[C('VAR_URL_PARAMS')];
$input = array_merge($input, $params);
}
break;
case '_request':
$input =& $_REQUEST;
break;
case '_session':
$input =& $_SESSION;
break;
case '_cookie':
$input =& $_COOKIE;
break;
case '_server':
$input =& $_SERVER;
break;
case '_globals':
$input =& $GLOBALS;
break;
default:
throw_exception(__CLASS__ . ':' . $method . L('_METHOD_NOT_EXIST_'));
}
if (!isset($args[0])) {
// 获取全局变量
$data = $input;
// 由VAR_FILTERS配置进行过滤
} elseif (isset($input[$args[0]])) {
// 取值操作
$data = $input[$args[0]];
$filters = isset($args[1]) ? $args[1] : C('DEFAULT_FILTER');
if ($filters) {
// 2012/3/23 增加多方法过滤支持
$filters = explode(',', $filters);
foreach ($filters as $filter) {
if (function_exists($filter)) {
$data = is_array($data) ? array_map($filter, $data) : $filter($data);
// 参数过滤
}
}
}
} else {
// 变量默认值
$data = isset($args[2]) ? $args[2] : NULL;
}
return $data;
}
//.........这里部分代码省略.........
示例3: __call
public function __call($method, $args)
{
if (0 === strcasecmp($method, ACTION_NAME . C('ACTION_SUFFIX'))) {
if (method_exists($this, '_empty')) {
$this->_empty($method, $args);
} elseif (file_exists_case($this->view->parseTemplate())) {
$this->display();
} elseif (function_exists('__hack_action')) {
__hack_action();
} else {
_404(L('_ERROR_ACTION_') . ':' . ACTION_NAME);
}
} else {
switch (strtolower($method)) {
case 'ispost':
case 'isget':
case 'ishead':
case 'isdelete':
case 'isput':
return strtolower($_SERVER['REQUEST_METHOD']) == strtolower(substr($method, 2));
case '_get':
$input =& $_GET;
break;
case '_post':
$input =& $_POST;
break;
case '_put':
parse_str(file_get_contents('php://input'), $input);
break;
case '_param':
switch ($_SERVER['REQUEST_METHOD']) {
case 'POST':
$input = $_POST;
break;
case 'PUT':
parse_str(file_get_contents('php://input'), $input);
break;
default:
$input = $_GET;
}
if (C('VAR_URL_PARAMS') && isset($_GET[C('VAR_URL_PARAMS')])) {
$input = array_merge($input, $_GET[C('VAR_URL_PARAMS')]);
}
break;
case '_request':
$input =& $_REQUEST;
break;
case '_session':
$input =& $_SESSION;
break;
case '_cookie':
$input =& $_COOKIE;
break;
case '_server':
$input =& $_SERVER;
break;
case '_globals':
$input =& $GLOBALS;
break;
default:
throw_exception(__CLASS__ . ':' . $method . L('_METHOD_NOT_EXIST_'));
}
if (!isset($args[0])) {
$data = $input;
} elseif (isset($input[$args[0]])) {
$data = $input[$args[0]];
$filters = isset($args[1]) ? $args[1] : C('DEFAULT_FILTER');
if ($filters) {
$filters = explode(',', $filters);
foreach ($filters as $filter) {
if (function_exists($filter)) {
$data = is_array($data) ? array_map($filter, $data) : $filter($data);
}
}
}
} else {
$data = isset($args[2]) ? $args[2] : NULL;
}
Log::record('建议使用I方法替代' . $method, Log::NOTICE);
return $data;
}
}
示例4: __call
/**
* Magic Methods There does not exist when the operation performed
* @access public
* @param string $method Method name
* @param array $args Parameter
* @return mixed
*/
public function __call($method, $args)
{
if (0 === strcasecmp($method, ACTION_NAME . C('ACTION_SUFFIX'))) {
if (method_exists($this, '_empty')) {
// If you define _empty operation the call
$this->_empty($method, $args);
} elseif (file_exists_case(C('TEMPLATE_NAME'))) {
// Check if there is a default template If there is a direct output template
$this->display();
} elseif (function_exists('__hack_action')) {
// hack Define the extended operation
__hack_action();
} else {
_404(L('_ERROR_ACTION_') . ':' . ACTION_NAME);
}
} else {
switch (strtolower($method)) {
// Judgment submission
case 'ispost':
case 'isget':
case 'ishead':
case 'isdelete':
case 'isput':
return strtolower($_SERVER['REQUEST_METHOD']) == strtolower(substr($method, 2));
// Get Variables Support filtering and default values Invocation $this->_post($key,$filter,$default);
// Get Variables Support filtering and default values Invocation $this->_post($key,$filter,$default);
case '_get':
$input =& $_GET;
break;
case '_post':
$input =& $_POST;
break;
case '_put':
parse_str(file_get_contents('php://input'), $input);
break;
case '_param':
switch ($_SERVER['REQUEST_METHOD']) {
case 'POST':
$input = $_POST;
break;
case 'PUT':
parse_str(file_get_contents('php://input'), $input);
break;
default:
$input = $_GET;
}
if (C('VAR_URL_PARAMS')) {
$params = $_GET[C('VAR_URL_PARAMS')];
$input = array_merge($input, $params);
}
break;
case '_request':
$input =& $_REQUEST;
break;
case '_session':
$input =& $_SESSION;
break;
case '_cookie':
$input =& $_COOKIE;
break;
case '_server':
$input =& $_SERVER;
break;
case '_globals':
$input =& $GLOBALS;
break;
default:
throw_exception(__CLASS__ . ':' . $method . L('_METHOD_NOT_EXIST_'));
}
if (!isset($args[0])) {
// Access to global variables
$data = $input;
// Filtered by the VAR_FILTERS configuration
} elseif (isset($input[$args[0]])) {
// Value Operation
$data = $input[$args[0]];
$filters = isset($args[1]) ? $args[1] : C('DEFAULT_FILTER');
if ($filters) {
// 2012/3/23 Increase the number of ways filtration Support
$filters = explode(',', $filters);
foreach ($filters as $filter) {
if (function_exists($filter)) {
$data = is_array($data) ? array_map($filter, $data) : $filter($data);
// Parameter filter
}
}
}
} else {
// Variable Default
$data = isset($args[2]) ? $args[2] : NULL;
}
return $data;
}
//.........这里部分代码省略.........