/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Nestet PHP-filer og arrays
Fra : Holst


Dato : 19-01-06 14:27

Hej igen!

Jeg har lidt flere spørgsmål, som jeg ikke helt har kunnet finde svar på.

Jeg har et PHP-dokument, 'index.php', og i dette dokument inkluderer jeg
et andet dokument, 'dokument1.inc'. Så langt så godt.

Kan dette andet dokument, 'dokument1.inc', selv indeholde PHP som parses?

Og for at gøre det endnu værre, så vil jeg gerne i 'dokument1.inc' kunne
inkluderer endnu en fil med data, 'data.inc', som 'dokument1.inc' skal
bruge til at layoute sin del af siden.

Kan det lade sig gøre? Vil sådanne nestede PHP-filer virke?

Ovennævnte datafil kunne jeg godt tænke mig indeholdt et array. Jeg har
på internettet set, at man kan lave arrays i stil med:

$whatever[0] = "Tekst1";
$whatever[1] = "Tekst2";
$whatever[2] = "Tekst3";

Det er jo meget fint. Men jeg har lidt brug for et større 2-dimensionelt
array i stil med:

( 1, 2, 3, 4, 5, 6,"Tekst1"),
(10,20,30,40,50,60,"Tekst2"),
( 1, 2, 4, 8,16,32,"Tekst3")

Jeg har ikke lige på internettet kunne finde ud af, om det kan lade sig
gøre. Kan det lade sig gøre? Hvordan initialiserer jeg et sådant array
med de værdier, som jeg vil have som ovenfor? Hvordan tilgår jeg dem
bagefter?

På forhånd tak.

Uffe

 
 
Palle Hansen (19-01-2006)
Kommentar
Fra : Palle Hansen


Dato : 19-01-06 14:38

Holst wrote:

> Jeg har et PHP-dokument, 'index.php', og i dette dokument inkluderer jeg
> et andet dokument, 'dokument1.inc'. Så langt så godt.
>
> Kan dette andet dokument, 'dokument1.inc', selv indeholde PHP som parses?

Ja.

Af sikkerhedsmæssige årsager, anbefales det dog, hvis filerne kan kaldes
fra internettet, at alle script filer får endelsen .php, dokument1.inc.php.


> Og for at gøre det endnu værre, så vil jeg gerne i 'dokument1.inc' kunne
> inkluderer endnu en fil med data, 'data.inc', som 'dokument1.inc' skal
> bruge til at layoute sin del af siden.
>
> Kan det lade sig gøre? Vil sådanne nestede PHP-filer virke?

Det vil virke fint. Hvis risikoen opstår, at filerne kan komme til at
kalde hinanden (så du får en uendelig løkke), kan du benytte include_once


> Ovennævnte datafil kunne jeg godt tænke mig indeholdt et array. Jeg har
> på internettet set, at man kan lave arrays i stil med:
>
> $whatever[0] = "Tekst1";
> $whatever[1] = "Tekst2";
> $whatever[2] = "Tekst3";
>
> Det er jo meget fint. Men jeg har lidt brug for et større 2-dimensionelt
> array i stil med:
>
> ( 1, 2, 3, 4, 5, 6,"Tekst1"),
> (10,20,30,40,50,60,"Tekst2"),
> ( 1, 2, 4, 8,16,32,"Tekst3")
>

$whatever[0] = array(1, 2, 3, 4, 5, 6,"Tekst1");
$whatever[0][x]


$whatever = array();
$whatever[0]=..
$whatever[1]=..
$whatever[2]=..
$whatever[n]=..

kan også skrives sådan:
$whatever[]=..
$whatever[]=..
$whatever[]=..
$whatever[]=..

Holst (19-01-2006)
Kommentar
Fra : Holst


Dato : 19-01-06 15:24


Palle Hansen wrote:

>>Og for at gøre det endnu værre, så vil jeg gerne i 'dokument1.inc' kunne
>>inkluderer endnu en fil med data, 'data.inc', som 'dokument1.inc' skal
>>bruge til at layoute sin del af siden.
>>
>>Kan det lade sig gøre? Vil sådanne nestede PHP-filer virke?
>
> Det vil virke fint. Hvis risikoen opstår, at filerne kan komme til at
> kalde hinanden (så du får en uendelig løkke), kan du benytte include_once

Den risiko vil heldigvis ikke opstå. Mit problem er, at 'dokument1.inc'
skal layoute en ganske lille del af min hovedside, 'index.php'. Men for
at kunne layoute denne lille del, skal 'dokument1.inc' bruge nogle data,
som vil være nemmest at gemme i en anden fil, 'data.inc', eftersom disse
data også skal kunne bruges fra andre filer.

Men det lyder jo så til, at det burde kunne lade sig gøre. Tak for den
forklaring.

[Arrays:]

> $whatever[0] = array(1, 2, 3, 4, 5, 6,"Tekst1");
> $whatever[0][x]

Vil jeg så kunne initialisere sådan:

$whatever = array(
array( 1, 2, 3, 4, 5, 6,"Tekst1"),
array(10,20,30,40,50,60,"Tekst2"),
array( 1, 2, 4, 8,16,32,"Tekst3")
);

Og det følgende forstod jeg ikke helt:

> $whatever = array();
> $whatever[0]=..
> $whatever[1]=..
> $whatever[2]=..
> $whatever[n]=..
>
> kan også skrives sådan:
> $whatever[]=..
> $whatever[]=..
> $whatever[]=..
> $whatever[]=..

Betyder det, at hvis der ikke er skrevet noget i [], så er det blot den
næste i rækken, som initialiseres?

Palle Hansen (19-01-2006)
Kommentar
Fra : Palle Hansen


Dato : 19-01-06 15:32

Holst wrote:

> Vil jeg så kunne initialisere sådan:
>
> $whatever = array(
> array( 1, 2, 3, 4, 5, 6,"Tekst1"),
> array(10,20,30,40,50,60,"Tekst2"),
> array( 1, 2, 4, 8,16,32,"Tekst3")
> );

Det ser meget rigtigt ud


> Betyder det, at hvis der ikke er skrevet noget i [], så er det blot den
> næste i rækken, som initialiseres?

Yep

Holst (19-01-2006)
Kommentar
Fra : Holst


Dato : 19-01-06 15:37


Palle Hansen wrote:

>>Vil jeg så kunne initialisere sådan:
>>
>>$whatever = array(
>> array( 1, 2, 3, 4, 5, 6,"Tekst1"),
>> array(10,20,30,40,50,60,"Tekst2"),
>> array( 1, 2, 4, 8,16,32,"Tekst3")
>>);
>
> Det ser meget rigtigt ud

Lyder rigtig dejligt. Glæden ved at programmere er ved at dukke op igen.
Det er nok snart 8 år siden jeg sidst rigtig sad bag en compiler, så
selv en if() skal jeg tænke over

Men tusind tak for dine svar. De har været en stor hjælp.

Holst (19-01-2006)
Kommentar
Fra : Holst


Dato : 19-01-06 15:47


Holst wrote:

>>>$whatever = array(
>>> array( 1, 2, 3, 4, 5, 6,"Tekst1"),
>>> array(10,20,30,40,50,60,"Tekst2"),
>>> array( 1, 2, 4, 8,16,32,"Tekst3")
>>>);

> Men tusind tak for dine svar. De har været en stor hjælp.

Ja, jeg har lige endnu et spørgsmål.

En af ovenstående tekster i sidst i hvert array indeholder selv et
anførselstegn. Hvordan escaper jeg det eller hvad det nu kaldes?

Ove Lie (19-01-2006)
Kommentar
Fra : Ove Lie


Dato : 19-01-06 16:21

"Holst" <newsjan06@shelter.dk> skrev i melding
news:43cfa651$0$1841$edfadb0f@dread11.news.tele.dk...


> En af ovenstående tekster i sidst i hvert array indeholder selv et
> anførselstegn. Hvordan escaper jeg det eller hvad det nu kaldes?

\"

-Ove



Holst (19-01-2006)
Kommentar
Fra : Holst


Dato : 19-01-06 16:56


Ove Lie wrote:

>>En af ovenstående tekster i sidst i hvert array indeholder selv et
>>anførselstegn. Hvordan escaper jeg det eller hvad det nu kaldes?
>
> \"

Takker. Kan jeg så også sætte linjeskift og tabulatorer ind med
henholdsvis \n og \t?

Henrik Stidsen (19-01-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 19-01-06 17:33

Holst formulated on torsdag :
> Kan jeg så også sætte linjeskift og tabulatorer ind med henholdsvis \n og \t?

Præcis

--
Henrik Stidsen - http://henrikstidsen.dk/
"Advertising is the art of convincing people to spend money they don't
have for something they don't need." - Will Rogers



Holst (19-01-2006)
Kommentar
Fra : Holst


Dato : 19-01-06 18:02


Henrik Stidsen wrote:

>>Kan jeg så også sætte linjeskift og tabulatorer ind med henholdsvis \n og \t?
>
> Præcis

Ja, det fandt jeg også selv ud af. Så er der en chance for, at man kan
få det formateret nogenlunde fornuftigt og ikke på én lang linje.

Bertel Lund Hansen (19-01-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 19-01-06 18:35

Holst skrev:

>> \"

> Takker. Kan jeg så også sætte linjeskift og tabulatorer ind med
> henholdsvis \n og \t?

Ja. I det hele taget bruger PHP de samme koder som C.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Bertel Lund Hansen (19-01-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 19-01-06 16:30

Holst skrev:

>>>> array( 1, 2, 4, 8,16,32,"Tekst3")

> En af ovenstående tekster i sidst i hvert array indeholder selv et
> anførselstegn. Hvordan escaper jeg det eller hvad det nu kaldes?

Det kaldes ganske rigtigt at escape det. Selv bruger jeg begge
slags anførselstegn til den slags:

   echo "array( 1, 2, 4, 8,16,32,'Tekst3')";

Hvis du absolut vil have dobbelte anførselstegn:

   echo "array( 1, 2, 4, 8,16,32,\"Tekst3\")";

Det er altså \" som inden i dobbelte anførselstegn bliver skrevet
som ". Man kan ikke noget tilsvarende med enkelte (fordi koder og
variable da ikke oversættes).

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Bertel Lund Hansen (19-01-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 19-01-06 15:53

Holst skrev:

> Men det lyder jo så til, at det burde kunne lade sig gøre. Tak for den
> forklaring.

Når du bruger include, så svarer det til at der oprettes et stort
dokument hvor den inkluderede tekst er indsat i stedet for
include-kommandoen. Det eneste der har undret mig lidt, er at man
i den inkluderede fil skal bruge <? og ?> igen hvis der skal
bruges PHP, selv om man i hoveddokumentet (altid) befinder sig i
en PHP-del - altså inden for dets <? og ?>.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste