arrays - How to get directory name from file path using php

842

I am trying to get dir name from my file path: Currently below is my output:

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

and I want to get second last name which is (01_NINA-B1). What I am trying is:

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

when I add dirname above it displays nothing. What can I try next?

     $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;
72

Answer

Solution:

This looks like a plain string operation:

  1. split the string
  2. get the desired element

Maybe like this:

$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

494

Answer

Solution:

Is this drupal? from my research I found out that db_select is a drupal function.

Can you try this one? it will attempt to explode the path string and find the second last element, if none is found it will return "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";
}

People are also looking for solutions to the problem: php - Unable to access wordpress site on local host - err: This localhost page can’t be found

Source

Didn't find the answer?

Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.

Ask a Question

Write quick answer

Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.

Similar questions

Find the answer in similar questions on our website.