[PHP] Domeinnaam, Foldernaam printen zonder Bestandsnaam.php

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo, ik heb alle $_SERVER['IETS'] variables geprobeerd, om de domeinnaam en de daarbovenliggende mappen te printen vanuit de huidige locatie,

Dit is de Code die de Locatie gaat printen :

PHP:
1
2
3
<?php 
echo "http://".$_SERVER['SERVER_NAME']."".$_SERVER['PHP_SELF'];
?>


En dit is de Output
code:
1
http://localhost/mapnaam/maapnaam/index.php

De Output die ik wil genereren is eigenlijk :
code:
1
http://localhost/mapnaam/mapnaam/

Dan kan ik het namelijk intregeren in een ander script dat ik heb gemaakt, en die zal van de laatste dan het volgende genereren :
code:
1
Localhost / Mapnaam / Mapnaam /


Ik heb naast alle $_SERVER['IETS'] variables, ook iets met min geprobeerd maar ik kom er niet uit,
Het punt is namelijk dat het bestand niet altijd index.php zal heten, anders zou de oplossing simpel zijn, het gaat er gewoon om dat ie het "blabla.php" bestand er achtervandaan weghaald.

Ik hoop dat iemand een goede suggestie voor me heeft _/-\o_

Vriendelijke groeten Raymond :*)

Acties:
  • 0 Henk 'm!

Verwijderd

Waarschijnlijk ben je op zoek naar de dirname() methode. Uitleg over die methode kan je vinden op php.net:

www.php.net/dirname

edit:

NMe :w

[ Voor 10% gewijzigd door Verwijderd op 07-04-2005 00:07 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je kan $_SERVER['HTTP_HOST'] gebruiken om je domeinnaam op te vragen, of inderdaad de server name die je al gebruikt hebt. Je kan verder de string waar het volledige pad in staat exploden op de /, het laatste element weglaten, en weer imploden. (Of je kijkt hoe lang de bestandsnaam zelf is, en werkt met een substring op basis daarvan.) Daarnaast kun je mogelijk wat met dirname(). :)

Verder is het heel netjes van je dat je groet, maar het is niet nodig. :) Wij groeten elkaar op GoT de hele tijd door, dat hoeft niet onder je post te staan, dat neemt alleen maar ruimte in beslag wat het vervelender maakt een topic te lezen. :)

[ Voor 4% gewijzigd door NMe op 07-04-2005 00:06 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • DJSmiley
  • Registratie: Mei 2000
  • Laatst online: 13:55
Kun je niet gewoon alles na de laatste / laten afkappen?

Dus zegmaar de postie van de laatste / gebruiken om alles voor die positie te gebruiken... dus als / op positie 20 staat, alleen 1-20 benutten

spuit11, hierboven staat tzelfde, alleen mooier uitgelegd.

ik zit vrijwel nooit in p&w, ben blijven hangen op mn MSXbasic kennis dus veel heb ik hier ook niet te zoeken. Maar goed, de aanpak zal hetzelfde zijn, de uitwerking alleen niet.

[ Voor 39% gewijzigd door DJSmiley op 07-04-2005 00:07 ]


Acties:
  • 0 Henk 'm!

Verwijderd

offtopic:
DJSmiley: jou reply was helemaal niet slecht, dat is precies wat dirname intern doet. Er is alleen al een methode voor, dus een eigen methode schrijven is niet nodig :)

Acties:
  • 0 Henk 'm!

  • Superdeboer
  • Registratie: December 2002
  • Niet online

Superdeboer

Sa-weee-tah

Verwijderd schreef op donderdag 07 april 2005 @ 00:00:
PHP:
1
2
3
<?php 
echo "http://".$_SERVER['SERVER_NAME']."".$_SERVER['PHP_SELF'];
?>


En dit is de Output
code:
1
http://localhost/mapnaam/maapnaam/index.php

De Output die ik wil genereren is eigenlijk :
code:
1
http://localhost/mapnaam/mapnaam/
Kortom: je hebt al een stukje code dat jouw output genereert, alleen hij genereert iets teveel output, want op het eind staat het huidige script waar je je dan in bevindt, en dat moet er nog af. Doe dat dan ook zou ik zeggen. :P

Dus iets als:
PHP:
1
2
3
$path = str_replace ($_SERVER['SCRIPT_NAME'], "", $_SERVER['PHP_SELF']);

echo "http://" . $_SERVER['SERVER_NAME'] . $path;

Met enig voorbehoud want ik heb het niet getest

When I write my code, only God and I know what it means. One week later, only God knows.
Hell yes it's a Cuban Cigar, but I'm not supporting their economy, I'm burning their fields.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben er uit, ik heb het met de eerste gedaan, bedankt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<? 
$hyperlink= "http://".$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']);

$geanalyseerde_hyperlink=parse_url($hyperlink); 
$mapnaam = explode('/',$geanalyseerde_hyperlink['path']); 
$map = ""; 
$domeinnaam = $geanalyseerde_hyperlink['scheme'].'://'.$geanalyseerde_hyperlink['host']; 
$maximaal = count($mapnaam); 

for ($nummer=0;$nummer<$maximaal;$nummer++) 
{ 
$map.= ($maximaal-1==$nummer)? $mapnaam[$nummer] : $mapnaam[$nummer]."/"; 
$mapnaam_hyperlink=  $domeinnaam.$map; 

    if (0==$nummer) 
    { 
        echo "<br><a href=\"".$mapnaam_hyperlink."\">".$domeinnaam."</a>"; 
    }
    else 
    { 
        echo "/<a href=\"".$mapnaam_hyperlink."\">".$mapnaam[$nummer]."</a>"; 
    }
} 
?> 


Output:

Domeinnaam / Mapnaam / Mapnaam /

Bedankt allemaal _/-\o_
Pagina: 1