微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-如何在没有HTML表单和URL的情况下为$_GET创建查询字符串?

想像一下我们在主页上:www.example.com

我们在此页面上有一个链接.

<a href="category/Pizzas">Pizzas</a>

单击此超链接时,地址栏上的URL将为:

www.example.com/category/Pizzas

它将向我们展示各种比萨.问题是我的服务器中没有类似category / Pizzas的路径.它的工作方式是将category和Pizzas传递给两个查询字符串(page和cat),这些查询字符串将存储在$_GET中.所以真正的网址是:

www.example.com/?page=category&cat=Pizzas

然后有一个渲染“比萨饼”页面函数.

您可以在主页上看到我们还有一些其他超链接,并且它们具有不同的URL.例如:

<a href="category/Salads">Salads</a>
<a href="category/Wraps">Wraps</a>
<a href="category/Grinders">Grinders</a>

当您单击它时,查询字符串(page和cat)将从URL捕获值并相应地呈现.

我不了解的部分是如何以及在何处定义查询字符串(在本例中为:page和cat),并从URL(例如category / Pizzas)捕获值,因此我们可以使用page = category& cat = Pizzas.源代码中的这两个查询字符串没有HTML格式.它只是完美地工作.

PS.如果您有兴趣,这是我正在谈论的项目.这不是我的项目.
https://github.com/nelsonreitz/project0

解决方法:

在该仓库中,查看public / .htaccess
这就是魔术发生的地方.实际上是由Web服务器完成将url映射到参数的工作.代码如下:

RewriteEngine on
RewriteBase /
RewriteRule ^category/(.*)$index.PHP?page=category&cat=$1 [L]

这是说任何看起来类似于category /的url都将被重写为index.PHP?page = category& cat =

因此index.PHP实际上处理所有这些请求,并且具有正确的GET值-即使所使用的URL不同.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐