【问题标题】:How to get directory name from file path using php如何使用php从文件路径中获取目录名
【发布时间】:2020-05-27 17:27:27
【问题描述】:

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

Array
(
    [path] => \documentLibrary\work\marketingProcess\BusinessMarketing\Design\Images\02_Product_Images\04_SHORT-RANGE\NINA\01_NINA-B1\source_WEB
)

我想获得第二个姓氏,即 (01_NINA-B1)。我正在尝试的是:

 echo "<pre>".print_r(dirname($results),true)."</pre>"; die;

当我在上面添加 dirname 时,它​​什么也不显示。接下来我可以尝试什么?

     $query = db_select('network_drive','networkd');
     $query
    ->fields('networkd', array('path'))
    ->condition('ndid',$networkdriveid,'=')
    ->orderBy('networkd.ndid');
    $results = $query->execute();
    echo "<pre>".print_r(dirname($results['path']),true)."</pre>"; die;

【问题讨论】:

  • 如果$results是上面的数组那么你需要dirname($results['path'])
  • 它说:错误:不能使用 DatabaseStatementBase 类型的对象作为 nd_forms_submit() 中的数组(C:\wamp64\www\module_test\modules\nd\nd.module 的第 256 行)。
  • 好的,所以$results 不是那个数组。您能否用$results 中的实际内容更新您的问题...
  • 我已经发布了整个代码,请检查我的编辑问题

标签: php arrays directory path


【解决方案1】:

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

  1. 拆分字符串
  2. 得到想要的元素

可能是这样的:

$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'

Demo

【讨论】:

    【解决方案2】:

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

    你可以试试这个吗?它将尝试分解路径字符串并找到倒数第二个元素,如果没有找到它将返回“N/A”

     $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";
    }
    

    【讨论】:

    • 它有效,谢谢。还有一件事,如果我想走第二个倒数之前的路径,那么我会做-3?
    猜你喜欢
    • 2015-03-19
    • 1970-01-01
    • 2014-04-21
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    相关资源
    最近更新 更多