小编Mar*_*rco的帖子

PHP中的json_decode是否保证在返回数组时保留元素的排序?

您可以将布尔值传递给json_decode以返回数组而不是对象

json_decode('{"foo", "bar", "baz"}', true);  // array(0 => 'foo', 1 => 'bar', 2 => 'baz')
Run Code Online (Sandbox Code Playgroud)

我的问题是这个.解析对象文字时,这是否保证了项目的顺序将被保留?我知道JSON对象属性不是有序的,但PHP数组是.我在PHP手册中的任何地方都找不到明确解决的问题.它可能在谨慎方面付出代价,但我想尽可能避免包括某种"索引"子属性.

php sorting json

7
推荐指数
1
解决办法
2669
查看次数

是否有可重用的PHP路由器/调度程序?

我正在使用一个简单的框架来处理基于查询参数的请求.

http://example.com/index.php?event=listPage
http://example.com/index.php?event=itemView&id=1234
Run Code Online (Sandbox Code Playgroud)

我想在此前面放置干净的网址,以便您可以通过以下方式访问它:

http://example.com/list
http://example.com/items/1234
Run Code Online (Sandbox Code Playgroud)

我知道路线和调度是如何工作的,我可以自己写.但我宁愿利用已经解决了这个问题的所有代码.有没有人知道提供此功能的通用库或类,但是让我从路由匹配中返回任何我想要的东西?像这样的东西.

$Router = new Router();
$Router->addRoute('/items/:id', 'itemView', array( 'eventName' => 'itemView' ));

$Router->resolve( '/items/1234' );
// returns array( 'routeName' => 'itemView',
//                'eventName' => 'itemView,
//                'params' => array( 'id' => '1234' ) )
Run Code Online (Sandbox Code Playgroud)

基本上我可以根据路径中解析的值自行调度.如果不是太麻烦(并且只要许可证允许),我不介意将其从框架中解除.但通常我发现框架中的路由/调度只是有点过于集成而不能像这样重新调整用途.我的搜索似乎表明,如果他们不使用框架,人们就会自己编写.

一个好的解决方案将支持以下内容:

  • 使用冒号表示法或正则表达式表示路径
  • 解析路由中的参数并以某种方式返回它们
  • 支持快速反向查找,如下所示:

    $Router->get( 'itemView', array( 'id' => '1234' ) );
    // returns 'items/1234'
    
    Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

php url-routing

6
推荐指数
1
解决办法
3981
查看次数

标签 统计

php ×2

json ×1

sorting ×1

url-routing ×1