---
title: "include \"/mapp/fil.php\""
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/110775-include-mapp-fil-php"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "silfver"
published: "2004-09-04T10:18:23.000Z"
updated: "2004-09-04T12:03:16.000Z"
replies: 10
views: 455
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/110775-include-mapp-fil-php"
---

# include "/mapp/fil.php"

## #1 — silfver, 2004-09-04T10:18Z

Hejsan

Varför kan man skriva t.ex.

```
<link rel="stylesheet" href="/css/index.css" type="text/css">
```

Men inte

```php
require "/includes/top.php";
```

Det jag syftar på är sökvägen. När man skriver /css/ så går den ju till roten och letar efter css-mappen. Men varför kan man inte göra samma sak när det gäller php? Funkar det inte för att den går för långt bak i kataloghanteringen? Hade vart smidigt att använda sig av **/mapp/fil.php** i stället för att behöva skriva **../mapp/fil.php** och ännu jobbigare om den ligger djupt: **../../mapp/fil.php**

Finns det någon lösning?

Mvh
silfver

Permalänk: https://www.webforum.nu/p/110775

## #2 — Peeer, 2004-09-04T10:58Z

Det gör det väl visst?
Frågan är vad det är som du räknar som root? På en windowsburk är "/" ex. C: eller D: och på en \*nix-burk så är / just / (dvs inte /usr/silfver/public_html)

Permalänk: https://www.webforum.nu/p/1427833

## #3 — SPiN, 2004-09-04T11:01Z

Ta en titt på <http://se.php.net/manual/en/ini.sect.path-directory.php#ini.include-path> så blir du nog lite klarare på hur det fungerar.

PHP använder färdiga sökvägar där den ska leta efter inkluderings-filer. Du kan ändra din 'include_path' så att den söker i mappen ovanför också, genom att slänga in ett ';..' i slutet, eller alternativt ':..' om du kör Linux/UNIX.
Typ:

```
<?php
ini_set( 'include_path', '.;..;c:\\php\\includes' );
// alt.
ini_set( 'include_path', '.:..:/php/includes' );
?>
```

Permalänk: https://www.webforum.nu/p/1427834

## #4 — silfver, 2004-09-04T11:03Z

> **Peeer skrev:**
>
> Det gör det väl visst?
> Frågan är vad det är som du räknar som root? På en windowsburk är "/" ex. C: eller D: och på en \*nix-burk så är / just / (dvs inte /usr/silfver/public_html)

Så här ser det ut när jag försöker:

> Warning: main(): Unable to access /includes/top.php in /mnt/home/silfver/www.silfver.se/test/test.php on line 2
> 
> Warning: main(/includes/top.php): failed to open stream: No such file or directory in /mnt/home/silfver/www.silfver.se/test/test.php on line 2
> 
> Fatal error: main(): Failed opening required '/includes/top.php' (include_path='.:/usr/local/lib/php') in /mnt/home/silfver/www.silfver.se/test/test.php on line 2

Permalänk: https://www.webforum.nu/p/1427836

## #5 — silfver, 2004-09-04T11:07Z

> **SPiN skrev:**
>
> ```
> <?php
> ini_set( 'include_path', '.;..;c:\\php\\includes' );
> // alt.
> ini_set( 'include_path', '.:..:/php/includes' );
> ?>
> ```

Tackar, nu funkar det ju! :) Koden ser lite mer komplicerad ut dock. :e 

```php
<?php
ini_set( 'include_path', '.:..:/includes/top.php' );
?>
```

**r/** Hur ska jag göra om jag vill använda "require" i stället? För jag vill inte att sidan ska funka om den inte hittar filen.

Permalänk: https://www.webforum.nu/p/1427838

## #6 — SPiN, 2004-09-04T11:11Z

Det ska fungera för require också.

Permalänk: https://www.webforum.nu/p/1427841

## #7 — silfver, 2004-09-04T11:17Z

> **SPiN skrev:**
>
> Det ska fungera för require också.

Hur ska jag göra då? Trodde det funkade, men trög som jag är så såg jag inte att CSS:en inte låg med.

på <http://www.silfver.se/test/> har jag skrivit:

```php
<?php
ini_set( 'include_path', '.:..:/includes/top.php' );
?>

<p>test</p>

<?php
ini_set( 'include_path', '.:..:/includes/bottom.php' );
?>
```

Är det fel sådär? Eller hur ska jag göra? Ingen css kommer med, eller ingen html-kod...

Permalänk: https://www.webforum.nu/p/1427844

## #8 — GunnarD, 2004-09-04T11:50Z

Re: include &quot;/mapp/fil.php&quot;

> **silfver skrev:**
>
> Hejsan
> 
> Varför kan man skriva t.ex.
>
> ```
> <link rel="stylesheet" href="/css/index.css" type="text/css">
> ```
>
> Men inte
>
> ```php
> require "/includes/top.php";
> ```

Därför att den första går från "webrooten" men include() och require() går från filsystemets root.

Detta innebär att om dina sidor ligger i /www/domain.se/htdocs så kommer den första att hämta /www/domain/htdocs/css/index.css medans den andra hämtar /includes/top.php

För att få det enklare så brukar jag skriva så här när jag kör include() eller require():

```php
<?php include($_SERVER["DOCUMENT_ROOT"]."/includes/top.php"); ?>
```

Då hämtas /www.domain.se/htdocs/inculdes/top.php

Permalänk: https://www.webforum.nu/p/1427857

## #9 — silfver, 2004-09-04T11:57Z

Re: Re: include &quot;/mapp/fil.php&quot;

> **GunnarD skrev:**
>
> ```php
> <?php include($_SERVER["DOCUMENT_ROOT"]."/includes/top.php"); ?>
> ```

Det där ser bättre ut. Funkar prima hittills. Tackar.

Permalänk: https://www.webforum.nu/p/1427858

## #10 — SPiN, 2004-09-04T12:00Z

I mitt exempel så sätter jag om variabeln 'include_path' i php.ini att peka på katalogen ovanför. Det är alltså inte så att filen inkluderas med den kodraden, du måste fortfarande använda require() för att inkludera filen.

```
<?php
ini_set( 'include_path', '.:..:\php\includes' );

require( "dinfil.php" );
```

Nu kommer alltså PHP söka efter filen 'dinfil.php' i aktuell katalog, katalogen ovanför samt i katalogen \\php\\includes.

Du kan även ändra direkt i php.ini istället för att i varje PHP-dokument ange ett ini_set-anrop, genom att öppna filen i valfri texteditor och ändra raden med 'ini_set' till önskade kataloger.

GunnarD's exempel är ett alternativ om du orkar skriva så mycket varje gång du ska inkludera något. ;)

Permalänk: https://www.webforum.nu/p/1427861

## #11 — silfver, 2004-09-04T12:03Z

> **SPiN skrev:**
>
> I mitt exempel så sätter jag om variabeln 'include_path' i php.ini att peka på katalogen ovanför. Det är alltså inte så att filen inkluderas med den kodraden, du måste fortfarande använda require() för att inkludera filen.
> 
>
>
> ```
> <?php
> ini_set( 'include_path', '.:..:\php\includes' );
> 
> require( "dinfil.php" );
> ```
>
> 
> Nu kommer alltså PHP söka efter filen 'dinfil.php' i aktuell katalog, katalogen ovanför samt i katalogen \\php\\includes.
> 
> Du kan även ändra direkt i php.ini istället för att i varje PHP-dokument ange ett ini_set-anrop, genom att öppna filen i valfri texteditor och ändra raden med 'ini_set' till önskade kataloger.
> 
> GunnarD's exempel är ett alternativ om du orkar skriva så mycket varje gång du ska inkludera något. ;)

Jag har ju inte en egen server, så jag kan inte ändra i php.ini. Men din kod kanske funkar ändå? Men eftersom jag knappt förstår mig på php så kör jag på gunnars exempel. Lätt och bra. :e

Permalänk: https://www.webforum.nu/p/1427863

---

Tråden på webben: https://www.webforum.nu/amne/php/110775-include-mapp-fil-php
