Avatar billede dragonbook Nybegynder
23. marts 2005 - 08:41 Der er 11 kommentarer og
1 løsning

Billeder i stedet for tekst

Jeg har nogle billeder af hele alfabetet (dvs. a.gif, b.gif osv.) som jeg ønsker at benytte i stedet for den almindelige tekst, i et bestemt område på min side...

Problemet er at denne tekst ændre sig når man opdaterer siden, og jeg derfor ikke bare kan skrive teksten med billeder ved normal image linkning.

Er der nogen der ved hvordan jeg kan løse dette problem ??
Avatar billede rednex Nybegynder
23. marts 2005 - 08:58 #1
$str = "123 hej med dig";
for($i = 0; $i < strlen($str); $i++) {
    $ch = substr($str, $i, 1);
    if($ch == ' ')
        $ch = 'mellemrum';
    echo "<img src=\"$ch.gif\" border=\"0\">";
}
Avatar billede milandt Nybegynder
23. marts 2005 - 09:01 #2
Avatar billede dragonbook Nybegynder
23. marts 2005 - 09:22 #3
rednex: scriptet virker fint, men kan man få det til at oversætte et område på en side ? Eftersom teksten jo ændre sig efter update og jeg derfor ikke ved hvad der kommer til at stå i $str = " ";  ?
Avatar billede rednex Nybegynder
23. marts 2005 - 09:25 #4
Snakker vi om tekst du hiver ud af en database eller er teksten hard-coded i filen ?
Avatar billede dragonbook Nybegynder
23. marts 2005 - 09:30 #5
Teksten kommer fra en .txt fil som bliver opdateret en gang imellem. Teksten bliver opstillet vi via et script.

Så hvis man på en eller anden måde kan definerer hvornår udskiftningen af teksten skal begynde og hvornår den skal ende, ville det være smart.
Avatar billede dragonbook Nybegynder
23. marts 2005 - 09:36 #6
Det skal lige nævnes at teksten bliver sat op i en tabel
Avatar billede rednex Nybegynder
23. marts 2005 - 10:02 #7
function TextToImg($str) {
    $newstr = '';
    for($i = 0; $i < strlen($str); $i++) {
        $ch = trim(substr($str, $i, 1));
        if($ch == ' ' || $ch == '')
            $ch = 'mellemrum';

        $newstr .= "<img src=\"$ch.gif\" border=\"0\">";
    }
    return $newstr;
}

$text = file_get_contents('txtfil.txt');
$tagged = preg_replace("/.*(\[tag\])(.*?)(\[\/tag\]).*/is", "\\2", $text);
$text = str_replace("[tag]{$tagged}[/tag]", TextToImg($tagged), $text);
echo $text;

Den tekst som skal skrives med grafik markeres så imellem [tag] og [/tag].
Avatar billede dragonbook Nybegynder
23. marts 2005 - 10:29 #8
Det kræver så vidt jeg kan se at jeg kan sætte [tag] og [/tag]. ind i tekst filen ikke ?
Og det kan jeg ikke da den bliver automatisk genereret, kan man sætte [tag] og [/tag] ind på selve siden istedet for ? det kan jeg nemlig ikke få til at virke.
Avatar billede rednex Nybegynder
23. marts 2005 - 10:36 #9
Det er svært at lave et tankelæsende script. Hvis du har andre unikke ting som omslutter den tekst der skal ændres kan du bruge det i stedet for [tag][/tag].

Du kan godt ændre direkte i outputtet ved at bruge output buffering. Du kan læse om output buffering på http://dk.php.net/manual/en/ref.outcontrol.php

De funktioner du skal kigge på er ob_start(), ob_get_clean() og ob_end_flush().
Avatar billede dragonbook Nybegynder
23. marts 2005 - 10:50 #10
Nej det er rigtigt, det er svært at lave et tankelæsende script. Men jeg troede egentligt at det var muligt at deffinerer at alt inden for et bestemt område som ikke står mellem < og > f.eks. <tabel> skulle oversættes.

Tak for hjælpen, jeg prøver lige at kigge på linket ovenfor.
Avatar billede rednex Nybegynder
23. marts 2005 - 10:57 #11
Alt er muligt (stort set), men det kræver jo at man ved præcis hvad man gerne vil have den til. Ellers er det lidt svært.
Avatar billede dragonbook Nybegynder
04. juni 2005 - 20:47 #12
lukket
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