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 · 494 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
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?
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
menar du alltså att jag kan skriva så som jag redan gjort?
För nu har jag krånglat till det tror jag
<?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");