webForumDet fria alternativet

php include

7 svar · 633 visningar · startad av Farbror

FarbrorMedlem sedan dec. 200537 inlägg
#1

Hur gör man för att via php-kommandot include inkludera kod från en fil via en relativ sökväg som alltid hittas oavsett vilken katalognivå det är?

Tidigare har jag använt:
include ("http://www.minsida.com/filen-med-kod.php")
Den har alltid kunnat nås, men nu diskuterar jag med webbhotellet varför det inte går längre med denna absoluta sökväg, bara relativa som ../ och ../../.

Jag hade samma problem med vanliga länkar i tråden
http://www.webforum.nu/showthread.php?p=1351523#post1351523
men i php include fungerar det inte lika enkelt, ett vanlig snedstreck för att alltid få det att börja vid roten går inte.

Tacksam för hjälp! :q

Danne VMedlem sedan aug. 20068 090 inlägg
#2

Att man inte kan använda absoluta sökvägar (http://minsajt.com/minfil.txt) kan t.ex. bero på att sidan inte tillåter sig öppnas av direkta anrop from "www". Anropet måste komma från godkänt håll, normalt egna sidor eller egen server, etc.

För att göra root-relativ sökväg får du kanske laborera lite. Bl.a. måste kanske root vara definerad i dokumentet. Forumets php-gurus kan nog hjälpa dig bättre än jag kan...

FarbrorMedlem sedan dec. 200537 inlägg
#3

Det går att skriva:
include ("/home/username/public_html/katalognamnet/filnamnet.php")
för att sökvägen alltid ska börja vid roten. Å username är den "user/login" man har hos webbhotellet, i mitt fall första halvan av domännamnet.

Danne VMedlem sedan aug. 20068 090 inlägg
#4

Eftersom det är php, har du provat

<?php include('/home/username/public_html/katalognamnet/filnamnet.php'); ?>

Red: Blev lite undrande. Den inkluderade filens namn slutar ju på "php". Du vet att du inte får ha några head, body och html-taggar i den, va? Det ska alltså BARA vara den specifika kod du vill ha in på just det stället.

aasahMedlem sedan mars 20034 471 inlägg
#5

Farbror skrev:

Hur gör man för att via php-kommandot include inkludera kod från en fil via en relativ sökväg som alltid hittas oavsett vilken katalognivå det är?

Tidigare har jag använt:
include ("http://www.minsida.com/filen-med-kod.php")...men i php include fungerar det inte lika enkelt, ett vanlig snedstreck för att alltid få det att börja vid roten går inte.

Jag kanske missförstår, men... PHP:s include tar inte en URL, utan sökvägen på servern. Om du alltså vill inkludera filen som webbläsaren når så här:
http://www.minsida.com/filen-med-kod.php
Blir PHP:s include:
include ("/home/www/filen-med-kod.php")

Danne V skrev:

Red: Blev lite undrande. Den inkluderade filens namn slutar ju på "php". Du vet att du inte får ha några head, body och html-taggar i den, va? Det ska alltså BARA vara den specifika kod du vill ha in på just det stället.

Inget mot vad jag blev nu... Va? :q Klart man kan ha HTML-taggar, JS-script, mm i en PHP-fil. Om du tar en sida skriven helt i HTML, och döper den till .php, så går det utmärkt. Den går bara väldigt fort genom PHP-parsern.

Eller menade du att man inte kan ha HTML inom php-taggarna i filen? Men det går också, bara man behandlar dem som strängar.

Danne VMedlem sedan aug. 20068 090 inlägg
#6

aasah skrev:

Inget mot vad jag blev nu... Va? :q Klart man kan ha HTML-taggar, JS-script, mm i en PHP-fil. Om du tar en sida skriven helt i HTML, och döper den till .php, så går det utmärkt. Den går bara väldigt fort genom PHP-parsern.

Eller menade du att man inte kan ha HTML inom php-taggarna i filen? Men det går också, bara man behandlar dem som strängar.

Menade <html><body><head> taggarna. Så det inte blir dubbla uppsättningar asså....Sorry om jag inte var klar på det.

aasahMedlem sedan mars 20034 471 inlägg
#7

Danne V skrev:

Menade <html><body><head> taggarna. Så det inte blir dubbla uppsättningar asså....Sorry om jag inte var klar på det.

Fast det beror ju på hur filen det inkluderas i ser ut. Jag har tex utskrift av allt mellan <html>-taggen och <body>-taggen inklusive hela menyn, liggande i en php-fil som jag inkluderar i alla filer som ska visas. Vilket funkar utmärkt efter som de filer som inkluderar inte har den utskriften...

Fast det är klart man inte kan skriva ut dessa taggar både i filen som inkluderas och den som man inkluderar i. Vilket jag nu inser att du menade....

Danne VMedlem sedan aug. 20068 090 inlägg
#8

aasah skrev:

Fast det beror ju på hur filen det inkluderas i ser ut. Jag har tex utskrift av allt mellan <html>-taggen och <body>-taggen inklusive hela menyn, liggande i en php-fil som jag inkluderar i alla filer som ska visas. Vilket funkar utmärkt efter som de filer som inkluderar inte har den utskriften...

Pust... OK, du har ju rätt.
Men poängen jag försöker göra är att man i alla fall ska se till att <html><body> och <head> taggarna inte dubbleras.

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
131 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)