phpstrpos不存在_PHP主页显示方法不存在。这是什么问题,大神帮我看看

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

d85c1a57d0e50c5b239f5204f1fe8a92.png

下面是Index.php代码

if (!function_exists('getallheaders')) {

function getallheaders()

{

foreach ($_SERVER as $name => $value) {

if ($name == 'HTTP_X_CALL') {

$headers['x-call'] = $value;

} elseif ($name == 'HTTP_X_FORM_CALL') {

$headers['x-form-call'] = $value;

} elseif (substr($name, 0, 5) == 'HTTP_') {

$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;

}

}

return $headers;

}

}

require 'xy_lib/core/DBAccess.class';

require 'xy_lib/core/Object.class';

require 'xy_action/xy_default/WebBase.class.php';

require 'xy_action/xy_default/WebLoginBase.class.php';

require 'xy_config.php';

$para = array();

if (isset($_SERVER['PATH_INFO'])) {

$para = explode('/', substr($_SERVER['PATH_INFO'], 1));

if ($control = array_shift($para)) {

if (count($para)) {

$action = array_shift($para);

} else {

$action = $control;

$control = 'index';

}

} else {

$control = 'index';

$action = 'main';

}

} else {

$control = 'index';

$action = 'main';

}

$control = ucfirst($control);

if (strpos($action, '-') !== false) {

list($action, $page) = explode('-', $action);

}

$file = $conf['action']['modals'] . $control . '.class.php';

//print_r($file); exit;

if (!is_file($file))

notfound('找不到控制器');

try {

require $file;

}

catch (Exception $e) {

print_r($e);

exit;

}

if (!class_exists($control))

notfound('找不到控制器1');

$jms = new $control($conf['db']['dsn'], $conf['db']['user'], $conf['db']['password']);

$jms->debugLevel = $conf['debug']['level'];

if (!method_exists($jms, $action))

notfound('方法不存在');

$reflection = new ReflectionMethod($jms, $action);

if ($reflection->isStatic())

notfound('不允许调用Static修饰的方法');

if (!$reflection->isFinal())

notfound('只能调用final修饰的方法');

$jms->controller = $control;

$jms->action = $action;

$jms->charset = $conf['db']['charset'];

$jms->cacheDir = $conf['cache']['dir'];

$jms->setCacheDir($conf['cache']['dir']);

$jms->actionTemplate = $conf['action']['template'];

$jms->prename = $conf['db']['prename'];

$jms->title = $conf['web']['title'];

if (method_exists($jms, 'getSystemSettings'))

$jms->getSystemSettings();

if ($jms->settings['switchWeb'] == '0') {

$jms->display('close-service.php');

exit;

}

if (isset($page))

$jms->page = $page;

if ($q = $_SERVER['QUERY_STRING']) {

$para = array_merge($para, explode('/', $q));

}

if ($para == null)

$para = array();

$jms->headers = getallheaders();

if (isset($jms->headers['x-call'])) {

// 函数调用

header('content-Type: application/json');

try {

ob_start();

echo json_encode($reflection->invokeArgs($jms, $_POST));

ob_flush();

}

catch (Exception $e) {

$jms->error($e->getMessage(), true);

}

} elseif (isset($jms->headers['x-form-call'])) {

// 表单调用

$accept = strpos($jms->headers['Accept'], 'application/json') === 0;

if ($accept)

header('content-Type: application/json');

try {

ob_start();

if ($accept) {

echo json_encode($reflection->invokeArgs($jms, $_POST));

} else {

json_encode($reflection->invokeArgs($jms, $_POST));

}

ob_flush();

}

catch (Exception $e) {

$jms->error($e->getMessage(), true);

}

} elseif (strpos($jms->headers['Accept'], 'application/json') === 0) {

// AJAX调用

header('content-Type: application/json');

try {

//echo json_encode($reflection->invokeArgs($jms, $para));

echo json_encode(call_user_func_array(array(

$jms,

$action

), $para));

}

catch (Exception $e) {

$jms->error($e->getmessage());

}

} else {

// 普通请求

header('content-Type: text/html;charset=utf-8');

//$reflection->invokeArgs($jms, $para);

call_user_func_array(array(

$jms,

$action

), $para);

}

$jms = null;

function notfound($message)

{

header('content-Type: text/plain; charset=utf8');

header('HTTP/1.1 404 Not Found');

die($message);

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值