Re: Full versus relative URLs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bastien Koert wrote:
> On Wed, Feb 18, 2009 at 12:05 PM, PJ <af.gourmet@xxxxxxxxxxxx> wrote:
>
>> Stuart wrote:
>>> 2009/2/18 PJ <af.gourmet@xxxxxxxxxxxx>:
>>>
>>>> Stuart wrote:
>>>>
>>>>>>> <?php include dirname(__FILE__)."/../header.php"; ?>
>>>>>>>
>>>> This generates a Fatal error: Cal to undefined function dirname() ....
>> ????
>>> The dirname function is present in both PHP 4 and 5 and does not rely
>>> on any external libraries. Are you sure you're spelling it right?
>>>
>>> http://php.net/dirname
>>>
>>>
>>>> I must be really dense...
>>>> What I don't understand in the above is this - dirname refers to what
>>>> directory? -- the directory of the file that is including? what if the
>>>> directory is the root directory of the site?
>>>>
>>>> (_FILE_) = what? - (_filename.ext_) or (filename.ext) --- what file is
>>>> this, the file which is including the file header.php?
>>>>
>>> The __FILE__ (note 2 _'s either side) constant is the full path and
>>> filename to the current script. The dirname function knocks the
>>> filename off it to give you the directory the current script is in.
>>> You can then append a / and then the relative path to the script you
>>> want to include. By doing this you're ensuring that all includes are
>>> relative to the current script and are not affected by ini settings or
>>> anything else.
>>>
>>>
>>>> and what does the . mean and then "/../header.php" --- I don't
>>>> understand what to enter here
>>>>
>>> The . is the string append operator. I tend to assume the most basic
>>> level of PHP knowledge from users of this list and I include the
>>> string append operator in that set. You might want to find a beginners
>>> tutorial for PHP and work through that to give you a solid foundation
>>> before attempting to work with multiple scripts.
>>>
>>> -Stuart
>>>
>>>
>> What confused me here is that often, in examples, there are all sorts of
>> references to files and there seems to be no standard as to how to refer
>> to them in non-scripts such as these e-mails. So, I thought that
>> dirname(_FILE_) was a general reference to a directory name and a
>> file... :-(
>> I don't want to defend myself here, but I cannot be expected to know all
>> functions and look up anything that might resemble a function...
>> I still do not understand, and that is the keyword here, I am trying to
>> understand things - what does /../header.php mean. I know the 2 dots
>> mean a higher directory in Unix... but I understood that ../ would mean
>> the root directory - so what is the / before the ../header.php mean?
>> When including scripts or pages, i find that if I am referencing to the
>> current directory, just the filename or /filename works. If the
>> reference is up a level, ../ works
>>
>> e.g. to reference root/images/ from root/authors = ../images/file.ext
>> from root = /images/file.ext or images/file.ext
>>
>> I haven't needed to go to a deeper level yet.
>>
>> --
>>
>> Phil Jourdan --- pj@xxxxxxxxxxxxx
>> http://www.ptahhotep.com
>> http://www.chiccantine.com
>>
>>
>> --
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>
> ../../ means go up two directories from the current working directory that
> your file is in
Thanks, I know that.... it's the dirname and the _FILE_ that were not clear
but why would I want to complicate things when my original works fine
and adding dirname(_FILE_) is just extra typing.

Original: include ("lib/header1.php");
change: include dirname(_FILE_)."/lib/header1.php";
works, but what have I gained?

Maybe my application is just not sophisticated enough...


-- 

Phil Jourdan --- pj@xxxxxxxxxxxxx
http://www.ptahhotep.com
http://www.chiccantine.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux