首页 > 解决方案 > 如何使用 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 或任何代码中只查询当前文件的名称。

标签: php

解决方案


您可以使用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'];

https://www.php.net/manual/en/function.parse-url.php

https://www.php.net/manual/en/function.basename.php


推荐阅读