|
| 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 |
| | |
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/
| |
|
|