我有文件夹结构,如下所示:
|/app
|-/db/users.php
|/Slim
|/vendor
|index.php
和index.php
内部:
require 'vendor/autoload.php';
$app = new Slim\App();
$app->get('/{action}/{type}/{props}', function ($request, $response, $args) {
$jenis_user = strtolower($args['type']);
$aksi = strtolower($args['action']);
$prop = strtolower($args['props']);
$target_loc = "";
if($aksi == 'get'){
// the parameter is using the following format
// action=XX&type=YY&props=ZZ;
$target_loc = "./app/db/users.php?action=". $aksi . "&type=" . $jenis_user . "&props=" . $prop ;
// #Tips :: data extracted are in Array Format ::
$file = file_get_contents($target_loc);
$response->write(json_encode($file));
}
return $response;
});
我的目的是获取一个整数值,如果我在浏览器中使用以下路径:
http://api.myweb.com/get/seller/totalNumber
但似乎我编写传递参数的路由的方式是错误的:我收到了
的警告警告:file_get_contents(./ app / db / users.php?action = get& type = seller& props = totalnumber):无法打开流
我该如何解决?
答案 0 :(得分:0)
您正试图在users.php?action=get&type=seller&props=totalnumber
协议中获取名称为file://
且不存在的文件,当您真正做到这一点时,您需要额外指定{{1} }或http
这样的协议:
https
它会成功。
注意:这是一个糟糕的结构,当你为此定义一个函数或类时会更好,它可能是这样的:
<强>的functions.php 强>
$content = file_get_contents('http://example.com/users.php?x=y');
index.php 或路线文件
function getUsers($type, $props) {
// do your stuff
return $yourUsers;
}
然后你不需要include 'functions.php'; // include the functions
$app = new Slim\App();
$app->get('/{action}/{type}/{props}', function ($request, $response, $args) {
$jenis_user = strtolower($args['type']);
$aksi = strtolower($args['action']);
$prop = strtolower($args['props']);
if($aksi == 'get'){
$users = getUsers($jenis_user, $prop); // execute the function to collect the user
$response->write(json_encode($users ));
}
return $response;
});
。