如何使用php从文件路径获取目录名

如何使用php从文件路径获取目录名,php,arrays,directory,path,Php,Arrays,Directory,Path,我正在尝试从我的文件路径获取目录名:下面是我的输出: 大堆 [路径]=>\documentLibrary\work\marketingProcess\BusinessMarketing\Design\Images\02\u Product\u Images\04\u SHORT-RANGE\NINA\01\u NINA-B1\source\u WEB 我想知道第二个姓是01_NINA-B1。我尝试的是: echo "<pre>".print_r(dirname(

我正在尝试从我的文件路径获取目录名:下面是我的输出:

大堆 [路径]=>\documentLibrary\work\marketingProcess\BusinessMarketing\Design\Images\02\u Product\u Images\04\u SHORT-RANGE\NINA\01\u NINA-B1\source\u WEB 我想知道第二个姓是01_NINA-B1。我尝试的是:

 echo "<pre>".print_r(dirname($results),true)."</pre>"; die;
当我在上面添加dirname时,它不会显示任何内容。下一步我能试试什么

$s = '/documentLibrary/work/marketingProcess/BusinessMarketing/Design/Images/02_Product_Images/04_SHORT-RANGE/NINA/01_NINA-B1/source_WEB';

$a = explode(DIRECTORY_SEPARATOR, dirname($s)); //removes source_WEB and splits the string

echo array_pop($a); //gets the last element '01_NINA-B1'

这看起来像一个普通字符串操作:

拆线 获取所需的元素 也许是这样:


这是drupal吗?从我的研究中,我发现db_select是一个drupal函数

你能试试这个吗?它将尝试分解路径字符串并找到最后的第二个元素,如果没有找到,它将返回N/A


如果$results是上面的数组,那么您需要dirname$results['path']它说:错误:不能在C:\wamp64\www\module\u test\modules\nd\nd.module.OK的nd\u forms\u submit第256行中使用DatabaseStatementBase类型的对象作为数组,因此$results不是该数组。你能用$results更新你的问题吗…我已经发布了完整的代码,请检查我的编辑问题,谢谢。还有一件事,如果我想走在倒数第二之前的路,那么我会做-3?
$s = '/documentLibrary/work/marketingProcess/BusinessMarketing/Design/Images/02_Product_Images/04_SHORT-RANGE/NINA/01_NINA-B1/source_WEB';

$a = explode(DIRECTORY_SEPARATOR, dirname($s)); //removes source_WEB and splits the string

echo array_pop($a); //gets the last element '01_NINA-B1'
 $query = db_select('network_drive','networkd');
 $query
->fields('networkd', array('path'))
->condition('ndid',$networkdriveid,'=')
->orderBy('networkd.ndid');
$results = $query->execute();
foreach($results as $result){ 
    $array = explode("\\", $result->path);
    echo isset($array[count($array) - 2]) ? $array[count($array) - 2] : "N/A";
}