listing root directory

I'm trying to write a script that shows a file picker for my whole web
site. The only part I have left to do is making the script start at
the root directory (my public_html folder). I've messed with
chdir($_SERVER['DOCUMENT_ROOT']) for example but I just can't seem to
get a handle to the top level directory.

Thanks
Dan
Dan Gelder [ Sa, 26 Januar 2008 20:09 ] [ ID #1916941 ]

Re: listing root directory

Never mind the last question, I got it. Now I have another problem:

When i include a php script in another php file, I'd like to put some
img tags inline along with it. The images are in the same file as the
script I'm including. If I get __FILE__ inside my script (which is the
only way I can find to get the actual script file) then how can I
munge the result to turn

/home/.machine/user/site.com/work/january/phpstuff/includer. php

into just

/work/january/phpstuff/

So I can end up with

<img src="http://site.com/work/january/phpstuff/img.jpg"> in the
echo'd result?

I know I can hardcode it but I'd rather not, I'd rather just have it
work.

Thanks
Dan
Dan Gelder [ Sa, 26 Januar 2008 21:25 ] [ ID #1916942 ]

Re: listing root directory

On Jan 26, 8:25 pm, Dan Gelder <daniel.w.gel... [at] gmail.com> wrote:
> Never mind the last question, I got it. Now I have another problem:
>
> When i include a php script in another php file, I'd like to put some
> img tags inline along with it. The images are in the same file as the
> script I'm including. If I get __FILE__ inside my script (which is the
> only way I can find to get the actual script file) then how can I
> munge the result to turn
>
> /home/.machine/user/site.com/work/january/phpstuff/includer. php
>
> into just
>
> /work/january/phpstuff/
>
> So I can end up with
>
> <img src="http://site.com/work/january/phpstuff/img.jpg"> in the
> echo'd result?
>
> I know I can hardcode it but I'd rather not, I'd rather just have it
> work.
>
> Thanks
> Dan

$dir = dirname(__FILE__);

--
Kailash Nadh | http://kailashnadh.name
Kailash Nadh [ Sa, 26 Januar 2008 22:28 ] [ ID #1916944 ]

Re: listing root directory

On Jan 26, 4:28=A0pm, Kailash Nadh <kailash.n... [at] gmail.com> wrote:
> On Jan 26, 8:25 pm, Dan Gelder <daniel.w.gel... [at] gmail.com> wrote:
>
>
>
>
>
> > Never mind the last question, I got it. Now I have another problem:
>
> > When i include a php script in another php file, I'd like to put some
> > img tags inline along with it. The images are in the same file as the
> > script I'm including. If I get __FILE__ inside my script (which is the
> > only way I can find to get the actual script file) then how can I
> > munge the result to turn
>
> > /home/.machine/user/site.com/work/january/phpstuff/includer. php
>
> > into just
>
> > /work/january/phpstuff/
>
> > So I can end up with
>
> > <img src=3D"http://site.com/work/january/phpstuff/img.jpg"> in the
> > echo'd result?
>
> > I know I can hardcode it but I'd rather not, I'd rather just have it
> > work.
>
> > Thanks
> > Dan
>
> $dir =3D dirname(__FILE__);
>
> --
> Kailash Nadh |http://kailashnadh.name- Hide quoted text -
>
> - Show quoted text -

Thanks for that guess but no, that just turns
/home/.machine/user/site.com/work/january/phpstuff/includer. php
into
/home/.machine/user/site.com/work/january/phpstuff/

and you can read my post to understand why that brings me no closer
than before.

What I need to know, I guess, is a way to get the official root folder
so I have
/home/.machine/user/site.com/

And then I can match the strings?? Can't say how to solve it yet.
Dan Gelder [ So, 27 Januar 2008 02:32 ] [ ID #1917322 ]

Re: listing root directory

Dan Gelder <daniel.w.gelder [at] gmail.com> wrote:
> no, that just turns
> /home/.machine/user/site.com/work/january/phpstuff/includer. php
> into
> /home/.machine/user/site.com/work/january/phpstuff/
>
> and you can read my post to understand why that brings me no closer
> than before.
>
> What I need to know, I guess, is a way to get the official root folder
> so I have
> /home/.machine/user/site.com/
>
> And then I can match the strings?? Can't say how to solve it yet.

Wouldn't $_SERVER["SCRIPT_NAME"] do what you are looking for? Don't use
$_SERVER["PHP_SELF"] because that can contain so-called "additional path
information" that users could be adding to the script's URL in some
circumstances (/january/phpstuff/includer.php/extra/stuff) and which,
incidentally, makes $_SERVER["PHP_SELF"] a value that should not be
trusted. Mind you, perhaps it's better to regard all of $SERVER as
untrusted just to err on the side of caution.

Sebastian Lisken
Sebastian Lisken [ So, 27 Januar 2008 02:46 ] [ ID #1917323 ]

Re: listing root directory

On Jan 26, 8:46=A0pm, Sebastian Lisken <Sebastian.Lis... [at] Uni-Bielefeld-
deletethis.de> wrote:
> Dan Gelder =A0<daniel.w.gel... [at] gmail.com> wrote:
>
> > no, that just turns
> > /home/.machine/user/site.com/work/january/phpstuff/includer. php
> > into
> > /home/.machine/user/site.com/work/january/phpstuff/
>
> > and you can read my post to understand why that brings me no closer
> > than before.
>
> > What I need to know, I guess, is a way to get the official root folder
> > so I have
> > /home/.machine/user/site.com/
>
> > And then I can match the strings?? Can't say how to solve it yet.
>
> Wouldn't $_SERVER["SCRIPT_NAME"] do what you are looking for? Don't use
> $_SERVER["PHP_SELF"] because that can contain so-called "additional path
> information" that users could be adding to the script's URL in some
> circumstances (/january/phpstuff/includer.php/extra/stuff) and which,
> incidentally, makes $_SERVER["PHP_SELF"] a value that should not be
> trusted. Mind you, perhaps it's better to regard all of $SERVER as
> untrusted just to err on the side of caution.
>
> Sebastian Lisken

I know not to trust $_SERVER too far, but it doesn't matter, because I
am interested in finding the *included file*'s location, not the base
script. IE:

------
------ folder1/file1.php:
------

echo "Here is an image from another folder:";
include '/folder2/file2.php';

------
------ folder2/file2.php:
------

function getGlobalPrefix()
{
//this is what I need to write:
//it takes the data in __FILE__ and somehow turns that into 'http://
mySite.com/folder2/'
}
echo "<img src=3D'" . getGlobalPrefix() . "/myGreatImage.gif'>";

------

OK, does it make sense now?? :-)
Dan
Dan Gelder [ So, 27 Januar 2008 03:08 ] [ ID #1917324 ]

Re: listing root directory

Greetings, Dan Gelder.
In reply to Your message dated Sunday, January 27, 2008, 05:08:15,

>> > no, that just turns
>> > /home/.machine/user/site.com/work/january/phpstuff/includer. php
>> > into
>> > /home/.machine/user/site.com/work/january/phpstuff/
>>
>> > and you can read my post to understand why that brings me no closer
>> > than before.
>>
>> > What I need to know, I guess, is a way to get the official root folder
>> > so I have
>> > /home/.machine/user/site.com/
>>
>> > And then I can match the strings?? Can't say how to solve it yet.
>>
>> Wouldn't $_SERVER["SCRIPT_NAME"] do what you are looking for? Don't use
>> $_SERVER["PHP_SELF"] because that can contain so-called "additional path
>> information" that users could be adding to the script's URL in some
>> circumstances (/january/phpstuff/includer.php/extra/stuff) and which,
>> incidentally, makes $_SERVER["PHP_SELF"] a value that should not be
>> trusted. Mind you, perhaps it's better to regard all of $SERVER as
>> untrusted just to err on the side of caution.
>>
>> Sebastian Lisken

> I know not to trust $_SERVER too far, but it doesn't matter, because I
> am interested in finding the *included file*'s location, not the base
> script. IE:

> ------
> ------ folder1/file1.php:
> ------

> echo "Here is an image from another folder:";
> include '/folder2/file2.php';

> ------
> ------ folder2/file2.php:
> ------

> function getGlobalPrefix()
> {
> //this is what I need to write:
> //it takes the data in __FILE__ and somehow turns that into 'http://
> mySite.com/folder2/'
> }
> echo "<img src='" . getGlobalPrefix() . "/myGreatImage.gif'>";

> ------

> OK, does it make sense now?? :-)

You has an advice but don't get it right.

$dir = dirname(__FILE__); // current script location
if(stripos($_SERVER['DOCUMENT_ROOT'], $dir) === 0)
{
$dir = substr($dir, strlen($_SERVER['DOCUMENT_ROOT']));
echo("<img src=\"{$dir}/image_in_the_same_location_as_script\"/>");
}


--
Sincerely Yours, AnrDaemon <anrdaemon [at] freemail.ru>
AnrDaemon [ So, 27 Januar 2008 17:01 ] [ ID #1917341 ]
PHP » comp.lang.php » listing root directory

Vorheriges Thema: Parsing XHTML fragments
Nächstes Thema: question about select query in php