繁体   English   中英

使用strstr删除URL部分和文件扩展名

[英]Remove URL part and file extension with strstr

我尝试了函数:strstr,但是它有一个问题。 假设URL看起来像:

http://www.example.com/index.php

使用strstr,我可以删除'/'之前的任何内容,但我只想:

指数

即,不带扩展名的文件的实际名称。

我强烈建议使用PHP parse_url()函数:

$address = 'http://www.example.com/index.php';
$url = parse_url($address);
echo $url['host'];

重塑轮子没有意义。

如果文件类型可以更改,并且您确定没有其他类型。 在文件名例如index.2.php中,则可以使用

$filename = basename('http://www.example.com/index.php');
$filename = substr($filename, 0, strpos($filename, '.'));

如果它总是以.php结尾,则可以执行以下操作:

basename('http://www.example.com/index.php', '.php')

如果它可以以其他扩展名结尾,则可以执行以下操作:

if (preg_match('#([^/]+)\.\w+$#', 'http://www.example.com/index.php', $matches))
    $basename = $matches[1];

+1 cletus为正确的工作提供了合适的工具,一个正确的URL解析器。 正则表达式破解将因各种查询字符串而失败。

但是,这是这里要查找的最后一个路径部分,而不是主机。 所以:

$url = parse_url($address);
$filename= array_pop(explode('/', $url['path']));
$filestem= explode('.', $filename)[0];

它非常简单,不需要太多代码。

只需手动操作,它将自动读取

像这样写你的网址

      http://www.example.com/index

它将显示您的文件,最后是.php。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM