php - 如何使用 php 获取不带扩展名和 ?id=someid 的网站文件名
问题描述
我想在没有扩展名和任何查询字符串的域之后获得一个网站文件名。
我尝试用 basename 解决,但如果用户放 ? .php 后输出显示不正确。
https://example.com/customers/NameIWant.php 返回:NameIWan
https://example.com/customers/NameIWant.php?someting 返回:NameIWan.php?someting
$url= basename($_SERVER['REQUEST_URI'], '.php' . $_SERVER['QUERY_STRING'])
这个 $url 我将使用它来查询 MySQL。
而且我不需要在 URL 或任何代码中只查询当前文件的名称。
解决方案
您可以使用parse_url()
andbasename()
仅获取文件名:
<?php
$url = 'https://example.com/customers/NameIWant.php?someting';
// /customers/NameIWant.php
$path = parse_url($url, PHP_URL_PATH);
// NameIWant
$filename = basename($path, '.php');
(替换$url = 'https://example.com/customers/NameIWant.php?someting';
为$url = $_SERVER['REQUEST_URI'];
)
推荐阅读
- groovy - 如何在 Groovy 中使用阿拉伯语字符?
- c++ - std::iterator_traits 中的 iterator_category 与 iterator_category() 有什么区别
- javascript - 如何使用 React 测试库通过动态 testid 获取组件
- drupal - 如何在文章节点中添加内容(段落模块)
- python - Selenium 在循环中打开和处理链接的最有效方法是什么?
- laravel - 如何将 laravel 与 Firebird 数据库连接起来?
- javascript - 使用 Selectrix 正确实现 selectMapping
- python-requests - requests.get 拒绝在 localhost Github 操作上连接
- c# - MySql 不更新列 C# MVC 应用程序中的值
- java - Jenkins 警告-ng-plugin 自定义文件夹结构又名多个“源目录”