我试过函数:strstr,但它有一个问题。假设,URL看起来像:
http://www.example.com/index.php
使用strstr,我可以在'/'之前删除任何内容,但我只想:
索引
,即没有扩展名的文件的实际名称。
答案 0 :(得分:6)
我强烈建议使用PHP parse_url()
函数:
$address = 'http://www.example.com/index.php';
$url = parse_url($address);
echo $url['host'];
没有必要重新发明轮子。
答案 1 :(得分:4)
如果文件类型可以更改,并且您确定没有其他文件类型。在文件名中,例如index.2.php然后你可以使用
$filename = basename('http://www.example.com/index.php');
$filename = substr($filename, 0, strpos($filename, '.'));
答案 2 :(得分:3)
如果它总是以.php结尾,你可以这样做:
basename('http://www.example.com/index.php', '.php')
如果它可以以其他扩展名结尾,您可以执行以下操作:
if (preg_match('#([^/]+)\.\w+$#', 'http://www.example.com/index.php', $matches))
$basename = $matches[1];
答案 3 :(得分:3)
+1 cletus用于正确工作的正确工具,正确的URL解析器。正则表达式攻击会因各种查询字符串而失败。
然而,这是在这里寻求的最后一条路径而不是主持人。所以:
$url = parse_url($address);
$filename= array_pop(explode('/', $url['path']));
$filestem= explode('.', $filename)[0];
答案 4 :(得分:0)
非常简单,无需太多代码。
只需手动执行即可自动加载
只需写下你的网址
http://www.example.com/index
它会显示你的文件,因为最后有.php。