Als ik een bestand heb in:

<root>/menu/menu.php

en hier staan afbeeldingen en links in.....
als ik deze vervolgens include in de pagina....

<root>/home/welkom/home.php

dan doen mijn afbeeldingen het niet in het menu, en de links ook niet meer.

Is dit gemakkelijk op te lossen zonder de hele url te hoeven noteren, want ik wil nu een site maken, die wordt gehost op:

http://www.mijnsite.nl

en dat word straks

http://www.mijnsite.com

Maar als ik de hele url overal in zet, moet ik straks alle pagina's gaan aanpassen van .nl naar .com.

Alvast bedankt,

Ivo Sanders
Ik gok dat de afbeeldingen dan relatief worden ten opzichte van de pagina waarin het menu geinclude worden bijv

../menu/afbeeldingen.
Nu gebruik je in menu.php <img enz =/afbeelding/afbeelding.jpg>

../home/welkom/home.php

Daarin include je menu.php.
Nu gaat hij naar afebeeldingen zoeken in
../home/welkom/home.php
/afbeeldingen/

die bestaat niet dus vind hij nix.

Geef daarom als <img > het hele pad op in menu.php dus http://www.jouwsite.nl/het pad naar de afbeeldingen/
Maar die hele link wilde de TS dus niet. Je kunt de links toch ook gewoon relatief houden...

Met ../ ga je een map omhoog. Dus stel dat de afbeeldingen in <root>/images staan, dan zou de source van een afbeelding vanuit <root>/home/welkom/home.php (en natuurlijk ook pagina's die je daarin include) er zo uit zien:

../../images/afbeelding.jpg
het gaat er dus om dat ik een pagina heb:

http://www.mijnsite.nl/home/welkom/home.php

ook heb ik http://www.mijnsite.nl/menu/menu.php

als ik de menu.php include in home.php en hier staat een afbeelding in mijn http://www.mijnsite.nl/menu map die heet menu.jpg

op deze manier laat hij het plaatje niet meer zien als ik hem in mijn home.php include, omdat de pagina dan gaat zoeken naar http://www.mijnsite.nl/home/welkom/menu.jpg

met ../ werken gaat ook niet, omdat ik ook wel eens heb dat ik het menu include in bijvoorbeeld

http://www.mijnsite.nl/gallerij/fotos/vakantie/2006/fotoboek.php, dan kloppen de aantal ../ niet meer.

En inderdaad wil ik niet de hele url er in zetten, omdat ik straks van mijn .nl naar een .com ga, en dan moet ik alles aanpassen.
$root="http://jouwsite.nl/"

<img =$root/top/afbeeldingen>

zo kun je het ook ongeveer gebruiken hoef je alleen
$root aan te passen.
dat is de enige manier? want dan moet ik nog alle pagina's aanpassen
Je kunt $root natuurlijk ook in bijvoorbeeld root.php zetten welke je dan op elke pagina include. Dan hoef je straks alleen de string in root.php te vervangen...
Daar heb ik ook aan zitten denken, maar als ik dan in het menu de root.php wil aanspreken, hoe moet ik dat dan doen???

http://www.mijnsite.nl/root.php?

dan moet ik dus als nog op elke pagina die bovenste string aanpassen
Nee, root.php staat voor elke pagina op een vaste relatieve plaats, zeg: <root>/root.php.

Dan kun je dus op elke pagina root.php met een relatief pad includen. In <root>/home/welkom/home.php zou dat dan worden:


<?php
include('../../root.php')
?>


Deze include kan je natuurlijk op elke pagina plaatsen aangezien je van elke pagina de relatieve positie tov root.php weet. ;)
ja, maar het gaat om de afbeelding welke staat in menu.php welke geinclude wordt op verschillende pagina's in verschillende menu dieptes, dus ik kan in het menu.php niet opgeven ../../root.php want het kan ook wel eens zijn .././../../../root.php, dat is dus mijn probleem
Zoals klaasjan dus al zei...

root.php:

<?php
$root = 'http://www.jouwsite.nl';
?>


menu.php:

<?php
$afbeelding = $root.'menu/menu.jpg';
echo '<img src="'.$afbeelding.'" etc...>';
?>


home.php:

<?php
// Tenzij je home.php op een andere locatie zet, zal onderstaande niet veranderen...
include('../../root.php');
include('../../menu/menu.php');
?>


ps. De twee includes uit home.php kun je dus aangepast aan de diepte, op elke pagina gebruiken...

Reageren