Portrety Uliczne Nieznajomych - zobacz wyjątkową galerię portretów z warszawskich ulic
ZALOGUJ SIĘ
login:
hasło:
przypomnij hasło
załóż konto użytkownika
(i zobacz kilka porad gratis)
   
WYSZUKIWARKA I DZIAŁY
całe porady  tytuły
zaznacz działy do przeszukania
(brak wyboru = wszystkie działy)
PHP
MySQL >
PostgreSQL
SQLite
Perl
Java
XML
XSLT
XPath
WML
SVG
RegExp
Wyszukiwarki
Ochrona
VBScript
Google Plus
XHTML/CSS
JavaScript
Grafika
Flash
Photoshop
Windows
Linux
Bash
Apache
Procmail
E-biznes
Explorer
Opera
Firefox
Inne porady
   
KURSY, DOKUMENTACJE
Własne:
XHTML/CSS
JavaScript
ActionScript
WML, RSS, SSI
Pozostałe:
PHP
MySQL
Java API
więcej...
   
użytkowników online: 27
W CZYM MOGĘ POMÓC?


   
OPINIE UŻYTKOWNIKÓW
Gratulacje i dzięki! Trafiłem tu przypadkiem poszukując informacji na temat php+mysql. Wiele polskich stron powiela identyczne przykłady, klonuje te same kursy i lekcje... ten serwis okazał sie inny. Zasada "problem - rozwiazanie - wyjaśnienie" zdaje egzamin - zapewnia jasną, jednoznaczną i pewną pomoc w konkretnym przypadku. Porady są warte swojej ceny, przede wszystkim ze względu na przyjazną (także dla początkujących) formę i treść oraz bogate i stale powiększane zasoby. Polecam i pozdrawiam!

Kamil Dmowski
Polski Czerwony Krzyż

   
GALERIA FOTOGRAFII
   
PODRĘCZNIK PHP 5.x, 4.x, 3.x - częściowo spolszczony / źródło: www.php.net

[Spis] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [X] [W] [Z]

pathinfo

(PHP 4 >= 4.0.3, PHP 5)

pathinfo -- Returns information about a file path

Description

array pathinfo ( string path [, int options] )

pathinfo() returns an associative array containing information about path. The following array elements are returned: dirname, basename and extension.

You can specify which elements are returned with optional parameter options. It composes from PATHINFO_DIRNAME, PATHINFO_BASENAME and PATHINFO_EXTENSION. It defaults to return all elements.

Przykład 1. pathinfo() Example

<?php
$path_parts
= pathinfo('/www/htdocs/index.html');

echo
$path_parts['dirname'], "\n";
echo
$path_parts['basename'], "\n";
echo
$path_parts['extension'], "\n";
?>

Would produce:

/www/htdocs
index.html
html

Notatka: For information on retrieving the current path info, read the section on predefined reserved variables.

See also dirname(), basename(), parse_url() and realpath().




User Contributed Notes

Darren
30-Nov-2005 03:37

Basename without extension, the true 'base' file name...

<?php

$path_parts
['basename_we'] = substr($path_parts['basename'], 0, -(strlen($path_parts['extension']) + ($path_parts['extension'] == '' ? 0 : 1)));

?>


cochise_chiracahua at hotmail.com
25-Nov-2005 08:55

Sometimes, it's interessant to get the basename without extension.
So, I appended a new entry 'basenameWE' (Basename Without Extension) to the returned array.

<?php

// pathinfo improved
function pathinfo_im($path) {
  
  
$tab = pathinfo($path);
  
  
$tab["basenameWE"] = substr($tab["basename"],0
  
,strlen($tab["basename"]) - (strlen($tab["extension"]) + 1) );
  
   return
$tab;
}

$my_path = "/var/www/html/example.html";

echo
"<pre>\n";
print_r( pathinfo_im($my_path) );
echo
"</pre>\n";

?>

Out :

Array
(
   [dirname] => /var/www/html
   [basename] => example.html
   [extension] => html
   [basenameWE] => example
)


sgermain at icexnetworks dot com
08-Jul-2005 08:24

It is true that if you put a directory into pathinfo, usually the extension is empty. But, if the directory name is /www/example.com/ for example, you will have the following output:

Array
(
   [dirname] => /www
   [basename] => example.com
   [extension] => com
)

So, it is the same as a file.


n0dalus
08-Feb-2005 10:47

If a file has more than one 'file extension' (seperated by periods), the last one will be returned.
For example:
<?php
$pathinfo
= pathinfo('/dir/test.tar.gz');
echo
'Extension: '.$pathinfo['extension'];
?>
will produce:
Extension: gz

and not tar.gz


03-Dec-2004 01:39

If you want only the file extension, use this:
<?php
$extension
= substr(strrchr($filename, "."), 1);
?>
This is many times faster than using pathinfo() and getting the value from array.


rob at webdimension dot co dot uk
04-Oct-2004 03:48

Further to my previous post.

This affects servers that run PHP as a cgi module

If you have your own server:
You can use the AcceptPathInfo directive to force the core handler to accept requests with PATH_INFO and thereby restore the ability to use PATH_INFO in server-side includes.

Further information:
http://httpd.apache.org/docs-2.0/mod/core.html#acceptpathinfo


rob at webdimension dot co dot uk
04-Oct-2004 11:56

Apache Upgrade from 1.3 to 2.0
The handling of PATH_INFO (trailing path information after the true filename) has changed for some modules. Modules that were previously implemented as a handler but are now implemented as a filter may no longer accept requests with PATH_INFO

Use:
$path_info = $ENV{'FILEPATH_INFO'} || $ENV{'PATH_INFO'};


junk at plaino dot com
19-Aug-2004 03:41

Convert a URL to the local file path and vice versa, convert a local file path to a URL.

// this sets the sytem / or \ :
strstr( PHP_OS, "WIN") ? $slash = "\\" : $slash = "/";

// This is the location of the php file that contains this
// function. Usually this request is made to files/folders
// down the directory structure, so the php file that
// contains these functions is a good "where am i"
// reference point:
$WIMPY_BASE['path']['physical'] = getcwd();
$WIMPY_BASE['path']['www'] = "http://".$_SERVER['HTTP_HOST'];

function url2filepath($theURL){
   global $WIMPY_BASE, $slash;
   $AtheFile = explode ("/", $theURL);
   $theFileName = array_pop($AtheFile);
   $AwimpyPathWWW = explode ("/", $WIMPY_BASE['path']['www']);
   $AtheFilePath = array_values (array_diff ($AtheFile, $AwimpyPathWWW));
   if($AtheFilePath){
       $theFilePath = $slash.implode($slash, $AtheFilePath).$slash.$theFileName;
   } else {
       $theFilePath = implode($slash, $AtheFilePath).$slash.$theFileName;
   }
   return ($WIMPY_BASE['path']['physical'].$theFilePath);
}

function filepath2url ($theFilepath){
   global $WIMPY_BASE, $slash;
   $AtheFile = explode ($slash, $theFilepath);
   $theFileName = array_pop($AtheFile);
   $AwimpyPathFILE = explode ($slash, $WIMPY_BASE['path']['physical']);
   $AtheFilePath = array_values (array_diff ($AtheFile, $AwimpyPathFILE));
   $thFileURL = implode("/", $AtheFilePath)."/".$theFileName;
   return ($WIMPY_BASE['path']['www']."$thFileURL");
}


albertof at deltasoft dot com dot ar
29-May-2002 10:10

This code is to work in index.php/var/var

if(isset($PATH_INFO)) {
     $viewcode = explode('/', $PATH_INFO);
       $num = count($viewcode);
       if($num % 2 == 0) {
           $viewcode[] = '';
           $num++;
       }
       for($i = 1; $i < $num; $i += 2) {

           $$viewcode[$i] = $viewcode[$i+1];

         }
   }


m-symons at home dot com
25-Aug-2001 04:01

And, of course, to account for the problem noted in the first post whereby calling a directory, not a file, messes with the output of pathinfo(), you can include the following test:

if($pathinfo[extension] == "") {

$deep++;

}

Ooops...sorry for missing that.


m-symons at home dot com
25-Aug-2001 03:54

Here's a neat wee function to grab the relative path to root (especially useful if you're using mock-directories to pass variables into scripts with mod_rewrite).  The function simply iterates through every occurence of "/" within the REQUEST_URI environment variable, appending "../" to the output for every instance:

<?php

function path_to_root($path) {

  
$pathinfo = pathinfo($path);
  
  
$deep = substr_count($pathinfo[dirname], "/");
  
  
$path_to_root = "./";
  
   for(
$i = 1; $i <= $deep; $i++) {
  
      
$path_to_root .= "../";
      
   }
  
   return
$path_to_root;
}

path_to_root($REQUEST_URI);

?>


mikep at oeone dot com
22-Aug-2001 07:27

If you run this on a directory, basename is the last directory in the path, dirname is the path before the final directory and extension is empty.


 

 
  © 1996-2012 & Reporter.plmiejscao serwisieabonamentwarunki korzystaniaRSSkontakt