/ 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
Ændre i HTML
Fra : Jakob Højlev Jørgens~


Dato : 02-03-04 11:46

Jeg er helt ny i PHP. Jeg har kigget på http://webcafe.dk 's artikler.

Jeg vil gerne inkludere en HTML-menu på en side, og ændre HTML-koden i den
inkluderede fil således, at dér, hvor url'en til den aktuelle indgår,
tilføjes "style='color:#800000'" (således at dette menupunkt får en anden
farve).

Jeg har fundet '$_SERVER["PHP_SELF"];' som jo næsten er skabt til dette
formål, og jeg kan også finde ud af at ændre url'en til url+farvekoden, hvis
jeg tager udgangspunkt i en streng.

Mit spørgsmål er, hvordan jeg griber det an, når det er en hel HTML-kode,
der skal kigges igennem for den aktuelle url? Er jeg nødt til at konvertere
hele koden til en streng? I givet fald - hvordan gør jeg det? Eller kan jeg
kalde en php-funktion, der på en eller anden måde klarer det automatisk?

Jeg er som sagt helt ny i det her, og bliver taknemmelig, hvis nogen gider
hjælpe mig på vej...

Mange hilsener
Jakob Højlev Jørgensen



 
 
Nezar Nielsen (02-03-2004)
Kommentar
Fra : Nezar Nielsen


Dato : 02-03-04 12:47

Jakob Højlev Jørgensen wrote:
> Jeg vil gerne inkludere en HTML-menu på en side, og ændre HTML-koden i den
> inkluderede fil således, at dér, hvor url'en til den aktuelle indgår,
> tilføjes "style='color:#800000'" (således at dette menupunkt får en anden
> farve).

Du kunne gøre så din menu blev tegnet ved kald til en funktion:

menu.php:
<?php
function menu($highlight){
   $retur = '';
   $links = array(
      '/hej.php'=>'hej',
      '/index.php' => 'forsiden'
   );
   foreach($links as $link => $titel){
      $retur.= '<a href="'.$link.'"';
      if($link == $highlight){
         $retur.= ' style="color:#800000"';
      }
      $retur.='>'.htmlspecialchars($titel).'</a><br>';
   }
   return $retur;
}
?>

og så i hver side:

<?php
require_once('menu.php');
?>
....en masse html
<?php
print menu($_SERVER['PHP_SELF']);
?>
....en masse html


--
Mvh. Nezar Nielsen
http://fez.dk

Jakob Højlev Jørgens~ (02-03-2004)
Kommentar
Fra : Jakob Højlev Jørgens~


Dato : 02-03-04 17:02

"Nezar Nielsen" <tumpen@fez.dk> skrev i en meddelelse
news:c21s58$1o1ssu$1@ID-179598.news.uni-berlin.de...

> Du kunne gøre så din menu blev tegnet ved kald til en funktion:
>
> menu.php:
> <?php
> function menu($highlight){
> $retur = '';
> $links = array(
> '/hej.php'=>'hej',
> '/index.php' => 'forsiden'
> );
> foreach($links as $link => $titel){
> $retur.= '<a href="'.$link.'"';
> if($link == $highlight){
> $retur.= ' style="color:#800000"';
> }
> $retur.='>'.htmlspecialchars($titel).'</a><br>';
> }
> return $retur;
> }
> ?>
>
> og så i hver side:
>
> <?php
> require_once('menu.php');
> ?>
> ...en masse html
> <?php
> print menu($_SERVER['PHP_SELF']);
> ?>
> ...en masse html

Tak for dit svar. Måske forstår jeg ikke helt dit eksempel (jeg har i hvert
fald bøvl med at få det til at virke).

Jeg tror dog ikke, jeg var specifik nok i formuleringen af mit problem. Jeg
laver en hjemmeside for et fritidshjem. Det er vigtigt, at de kan rette
siderne til i Netscapes Composer (WYSIWYG). De ser rødt, hvis de skal til at
rode med koder i teksteditorer.

I øjeblikket bruger jeg SSI til at kalde undermenupunkterne, således at de
kan gå ind og rette indholdet på de enkelte sider og menuen hver for sig -
enkelt og overskueligt.

Menuen består bare af en lille tabel i HTML. Det, jeg kunne forestille mig
som en løsning er, at man på en eller anden måde henter HTML-filen ind som
en streng, skifter '$_SERVER["PHP_SELF"];' ud med
'$_SERVER["PHP_SELF"];'+'<style="color:#800000>' - og placerer det på siden.

Men jeg aner ikke om man kan dette?

Måske er der en masse andre muligheder - men som sagt: selv om det er
tumbet, er det vigtigt, at den lille HTML-menu danner grundlag for den side,
der genereres.

Venlig hilsen
Jakob Højlev Jørgensen
http://bugtaling.dk



Jakob Højlev Jørgens~ (03-03-2004)
Kommentar
Fra : Jakob Højlev Jørgens~


Dato : 03-03-04 12:57


"Jakob Højlev Jørgensen" <jakobhjfjerndette@tiscali.dk> skrev i en
meddelelse news:40446603$0$1266$ba624c82@nntp05.dk.telia.net...
> Jeg er helt ny i PHP. Jeg har kigget på http://webcafe.dk 's artikler.
>
> Jeg vil gerne inkludere en HTML-menu på en side, og ændre HTML-koden i den
> inkluderede fil således, at dér, hvor url'en til den aktuelle indgår,
> tilføjes "style='color:#800000'" (således at dette menupunkt får en anden
> farve).

Jeg fandt ud af at læse HTML-filen ind i en streng. Herefter føjer jeg et
style-tag til. Endelig fjerner jeg de HTML-tags, som Composer automatisk
sætter ind i "nytmenu.html". Det er måske ikke elegant, men det virker.

Bare for en ordens skyld, så poster jeg det resulatat, jeg nåede frem til:

<?php

//det aktuelle filnavn kaldes $fil
$fil = basename($PHP_SELF);

// indholdet af "nytmenu.html" puttes i $content
$filename = "nytmenu.html";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);

$style = ($fil . '" style="color:#800000; font-size : 1.8em;');

$menu_streng = str_replace($fil, $style, $contents);

$menu_streng = str_replace('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"><html><head></head><body>', '', $menu_streng);

$menu_streng = str_replace('</body></html>', '', $menu_streng);

echo $menu_streng;
?>

/Jakob Højlev Jørgensen
http://bugtaling.dk



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste