如何在PHP中将URL拆分为其组件?

Ben*_*enM 1 php url

正则表达式从来都不是我的优点之一,这一点让我难过.作为项目的一部分,我想在PHP中开发一个SEO链接类.mod_rewrite通过Apache 处理对我来说相当简单,而且效果很好.

但是,我想创建一个能够根据我传入的动态URL生成SEO链接的函数作为函数的第一个(也是唯一的)参数.

例如,这将是PHP中的函数调用:

<a href="<?= SEO::CreateLink('blog/post.php?post=123&category=5') ?>" title="Blog Post Title">Blog Post Title</a>

CreateLink然后该函数将分析传入的字符串,并输出如下内容:

blog/blog-post-title

博客帖子的URL存根已存储在数据库中.我认为实现这一目标的最佳方法是分析传入的动态URL字符串,并生成要分析的关联数组.我的问题是,正则表达式将采用URL并在PHP中生成以下关联数组?

link_pieces['page_type'] = 'blog/post';
link_pieces['post'] = 123;
link_pieces['category'] = 5;
Run Code Online (Sandbox Code Playgroud)

page_type基本目录和请求页面在哪里没有扩展名,其他数组值是请求变量?

Wri*_*ken 6

你可以使用,parse_url而且parse_str不需要正则表达式.