php - 使用 preg_replace 将绝对 url 转换为相对 url

标签 php regex preg-replace

(我搜索了一下,发现了很多关于相对于绝对 url 转换的问题,但没有关于绝对到相对的问题。)

我想从表单字段中获取输入并以相对 URL 结尾。理想情况下,这将能够处理以下任何输入并以 /page-slug 结束。

  • http://example.com/page-slug
  • http://www.example.com/page-slug
  • https://example.com/page-slug
  • https://www.example.com/page-slug
  • example.com/page-slug
  • /page-slug
  • 也许还有更多我没有想到的...?

编辑:我也希望它适用于相对 URL 为例如/page/post(即包含多个斜杠的内容)。

最佳答案

看看parse_url如果您总是使用 URL。具体来说:

parse_url($url, PHP_URL_PATH)

仅供引用,我根据您的所有输入对其进行了测试,并且它适用于所有输入,除了:example.com/page-slug

关于php - 使用 preg_replace 将绝对 url 转换为相对 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017080/

相关文章:

php - 无法使用带有自签名 ssl 证书的 Facebook 实时更新 webhook

php - SQL 验证!

java - 限制300字的正则表达式

PHP preg_replace - 不包含短语的正则表达式

php - 使用 PHP preg_replace 搜索并替换字符串中的数字

php - 从 PHP 字符串中删除日期

php - 在 PHP 中创建异常的成本有多高?

PHP| pear :MDB2 vs PDO vs Native-PHP (Raw)

ios - 允许下划线和破折号的 swift ios 字母数字正则表达式

java - 如何使用正则表达式收集日志的不同部分