Så här brukar jag göra mina includes:
require($_SERVER["DOCUMENT_ROOT"]."/includes/top.php");
Då utgår den från rooten på sidan. Alltså www.domän.se. :) Ovanstående kod blir alltså: www.domän.se/includes/top.php
11 svar · 485 visningar · startad av lillan
Jag har gjort så här;
<?php include '../top.php'; ?>
<?php include '../header.php'; ?>
<?php include '../main.php'; ?>
osv.
Men validatorn säger att det är superfel och hittar inte ens min doctype :l
Trodde det var så enkelt att bara skriva så, men misstänker att jag gör fel.
Någon som vill visa?
Så här brukar jag göra mina includes:
require($_SERVER["DOCUMENT_ROOT"]."/includes/top.php");
Då utgår den från rooten på sidan. Alltså www.domän.se. :) Ovanstående kod blir alltså: www.domän.se/includes/top.php
Fia skrev:
Saknar du inte parenteser?
include('../undermapp/hejhopp.php');
Det är inget måste. :)
Fia skrev:
Saknar du inte parenteser?
PHP-manualen skrev:
Because include() is a special language construct, parentheses are not needed around its argument.
Det finns alltså inte större anledning att använda parenteser här, än till echo eller print.
lillan skrev:
Men validatorn säger att det är superfel ...
Vilken validator ?
Det ska gå bra att inkludera på det sättet du gör.
Aha, där ser man! Man lär sig nåt varje dag. :)
Fia skrev:
Saknar du inte parenteser?
include('../undermapp/hejhopp.php');
Alltså ska jag ersätta ex:
<?php include '../top.php'; ?>
till:
<?php include '../blog/top.php'; ?>
Eller hur ska jag skriva?
Det hänger samman med hur skriptet du inkluderar ligger i förhållande tillaktuellt skript.
Tänk bara på att om skript 1 inkluderar skript 2 som i sin tur inkluderar skript 3, så är det i skript 2 sökvägen från skript ett som är den som gäller för inkluderingen.
Ligger dina skript 1-3 då i olika kataloger, då blir det att göra som silfver föreslog.
Matte skrev:
Det hänger samman med hur skriptet du inkluderar ligger i förhållande tillaktuellt skript.
Tänk bara på att om skript 1 inkluderar skript 2 som i sin tur inkluderar skript 3, så är det i skript 2 sökvägen från skript ett som är den som gäller för inkluderingen.
Ligger dina skript 1-3 då i olika kataloger, då blir det att göra som silfver föreslog.
Åhh my god, vad svårt du skriver :p
menar du alltså att jag kan skriva så som jag redan gjort?
För nu har jag krånglat till det tror jag :r
<?php include '../top.php'; ?>
<?php include '../header.php'; ?>
<?php include '../main.php'; ?>
Om du kör ett skript där dessa inkluderingar finns med, och filerna finns en våning upp, då ska det fungera.
Men om du skulle inkludera detta skript i ett annat skript, då är det det nya skriptets sökvägar som gäller för inkluderingen i detta skript.
När man inkluderar skript som i sin tur inkluderar skript, då gäller att alla skripten ligger i samma katalog (sånär som på det första), eller så får man använda absoluta sökvägar (som GunnarD föreslog).
Jag brukar använda
dirname(__FILE__)
för att få aktuell katalog där scriptet ligger, följt av filnamnet. Alltså i detta fall:
require(dirname(__FILE__)."/../filnamn.php");