Avatar billede sark.dk Nybegynder
09. oktober 2001 - 18:59 Der er 12 kommentarer og
1 løsning

Tilføj tekst til variabel

Hej

Jeg skal have lavet en funktion der kan nogle html linjer om til :

dokumet.write(\"html linjer1\");
dokumet.write(\"html linjer2\");
dokumet.write(\"html linjer3\");

altså sådan den tager min html kode hver linje for sig og sætter..javascriptet rundt om

Avatar billede tdaugaard Nybegynder
09. oktober 2001 - 19:03 #1
$file = @file(\"dinhtmlfil.html\");
if (is_array($file)) {
    $output = \"\";
    for ($index=0; $index<sizeof($file);$index++) {
        $output .= \"document.write(\\\"\" . str_replace($file[$index], \"\\\"\", \"\\\\\\\"\") . \"\\\");\"
    }
}

ca.
Avatar billede tdaugaard Nybegynder
09. oktober 2001 - 19:03 #2
ahh okay ...

$file = @file(\"dinhtmlfil.html\");
if (is_array($file)) {
    $output = \"\";
    for ($index=0; $index<sizeof($file);$index++) {
        $output .= \"document.write(\\\"\" . str_replace($file[$index], \"\\\"\", \"\\\\\\\"\") . \"\\\");\\n\"
    }
}
Avatar billede sark.dk Nybegynder
09. oktober 2001 - 19:27 #3
Linjerne er ikke i en fil men skal køres gennem i funktion

de kunne ligge sådan her

$var = \"
linje1
linje2
linje3
linje4
linje5
\";

Kan du forklarer havd de forskelleige funktioner du bruger gør?
Avatar billede tdaugaard Nybegynder
09. oktober 2001 - 19:44 #4
nåå .. på den måde .. okay..

$var = \"
linje1
linje2
linje3
linje4
linje5
\";

$lines = explode($var, \"\\n\")
for ($index=0; $index<sizeof($lines);$index++) {
    $output .= \"document.write(\\\"\" . str_replace($lines[$index], \"\\\"\", \"\\\\\\\"\") . \"\\\");\\n\"
}

explode() deler en streng op i et array af strenge. Her deler jeg ved hvert linie skift (\\n).
sizeof() giver mig størrelse på arrayet
str_replace() erstatter her \" med \\\" sådan at den ikke laver JavaScript fejl når du prøver at køre dit script:

document.write(\"Dette er en test med \" i\");
^^^ det vil give fejl, hvorimod med den str_replace() jeg lavede vil det blive til:

document.write(\"Dette er en test med \\\" i\");

hvilket er helt ok
Avatar billede sark.dk Nybegynder
09. oktober 2001 - 19:48 #5
<?php

$var = \"
linje1
linje2
linje3
linje4
linje5
\";

$lines = explode($var, \"\\n\");
for ($index=0; $index<sizeof($lines);$index++) {
    $output .= \"document.write(\\\"\" . str_replace($lines[$index], \"\\\"\", \"\\\\\\\"\") . \"\\\")\\n\";
}
print $output;



?> giver følgede :
document.write(\"\\\"\")
Avatar billede tdaugaard Nybegynder
09. oktober 2001 - 19:49 #6
Var ikke testet .. lige et sec ... :o)
Avatar billede tdaugaard Nybegynder
09. oktober 2001 - 19:56 #7
NU er det testet:

<?php

$var = \"linje1\\\"
linje2
linje3
linje4
linje5\";

$lines = explode(\"\\r\\n\", $var);
for ($index = 0; $index<sizeof($lines); $index++) {
    // $output .= \"document.write(\\\"\" . str_replace($lines[$index], \"\\\"\", \"\\\\\\\"\") . \"\\\")\\n\";
    $output .= \"document.write(\\\"\" . str_replace(\"\\\"\", \"\\\\\\\"\", $lines[$index]) . \"\\\")\\n\";
}

echo \"<pre>$output</pre>\";
?>

Men første linie SKAL starte på samme linie som

$var = \" ..

og sidste SKAL ende med \";
Avatar billede tdaugaard Nybegynder
09. oktober 2001 - 19:58 #8
Hovsa .. mangler lige en ; før \\n i $output .= linien ..
Avatar billede sark.dk Nybegynder
09. oktober 2001 - 20:00 #9
YEAH :)
Avatar billede sark.dk Nybegynder
09. oktober 2001 - 20:02 #10
Brude man hardcode det istedet ?
Avatar billede tdaugaard Nybegynder
09. oktober 2001 - 20:22 #11
Hardcode det ? Altså lave document.write() direkte ?
Avatar billede sark.dk Nybegynder
09. oktober 2001 - 20:25 #12
ja
Avatar billede tdaugaard Nybegynder
09. oktober 2001 - 20:27 #13
Hmm .. altså, hvis ikke HTML\'et ændres dynamisk er der jo ingen grund til at bruge PHP på det...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester