gpt4 book ai didi

php - 如何解析这个网址?

转载 作者:可可西里 更新时间:2023-11-01 00:16:07 25 4
gpt4 key购买 nike

如果我有这个 url:node/95/pdf/1。我将如何获得数字/值 1?尝试了 parse_url 但给了我错误的输出。

PS:值1只是一个例子,id是动态的,取决于用户点击了什么。

最佳答案

我会使用 sscanf

未经测试的例子:

list($node_id, $pdf_id) = sscanf($url, "node/%d/pdf/%d");

$node_id 包含节点 ID,$pdf_id 包含 pdf id。根据您的评论:是的,您可以使用例如输出它echo $pdf_id;.

如果你在一个数组中需要它们,你可以删除 list() 方法,像这样:

$ids = sscanf($url, "node/%d/pdf/%d");

这将在 $ids 中返回一个包含节点和 pdf id 的数组。

最后,如果你只需要pdf id,你可以这样做

$id = sscanf($url, "node/95/pdf/%d");.

我只是展示了如何获取这两个数字,因为我假设您可能需要从您的网址中获取这两个数字。

编辑
在发布我的解决方案后看到所有其他答案,我想知道为什么每个人都在使用多个函数来解决这个问题,而当有一个函数可以完全满足他的需要时:根据格式解析字符串。这也导致较少的 sql 注入(inject)倾向代码恕我直言。当 url 被扩展或查询字符串被追加时,它不会破坏任何东西。

编辑 2list($node_id, $sub, $sub_id) = sscanf($url, "node/%d/%[^/]/%d"); 会给你“pdf”,它是id 分开而不是“node/%d/%s/%d”。这是因为 %s 也匹配了 char /。使用 %[^/] 匹配除正斜杠之外的所有内容。

关于php - 如何解析这个网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9463029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com