【问题标题】:Using substr() and strlen() to get a file name [duplicate]使用 substr() 和 strlen() 获取文件名 [重复]
【发布时间】:2014-05-13 09:39:04
【问题描述】:

下面是我的代码。如果 $varPath../../folder1/home/ 并且如果 $varNamhouse.png 我需要$name 成为house。我该如何解决这个问题?

$varPath = htmlentities('../../folderA/'.$_POST['sVar']).'/');
$varExt = '*.*';
$varNam = glob($varPath.$varExt);

$name = substr($varNam,strlen($varPath),strpos($varNam, '.') - strlen($varPath);

【问题讨论】:

  • 看看phpinfo和basename函数。

标签: php


【解决方案1】:
$varPath = '../../folder1/home/';
echo basename($varPath);

输出:

编辑:

为了删除任何扩展使用路径信息

$path_parts = pathinfo('../../folder1/home/house.png');
echo $path_parts['filename'];

输出:房子

【讨论】:

  • OP 询问删除文件扩展名,而不是提取文件夹名称。
  • @Theolodis 已编辑,谢谢,没注意。
  • 没问题,但考虑花点时间理解问题并写一个好的答案。这比试图获得轻松的声誉更值得;)
  • 成功了!谢谢德克萨。
【解决方案2】:

改进的答案

<?php
$path = '/var/www/html/project/images/house.png';
$pathinfo = pathinfo($path);

echo str_replace(".{$pathinfo['extension']}", '', $pathinfo['basename']);

无论扩展名是什么,这都会产生“房子”。

【讨论】:

  • 他可能确实需要删除文件结尾,其中任何一个......例如/x/y/file1.jpeg、y/x/file2.png 等...
  • path_info['filename'] 不包含扩展名,是吗?
  • @Theolodis 哦,那个也存在吗?从何时起? :D
  • 是的。完全错过了……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 2012-03-24
  • 2018-10-31
  • 1970-01-01
相关资源
最近更新 更多