Avatar billede kr-data Nybegynder
30. december 2004 - 17:27 Der er 1 kommentar og
1 løsning

Array opfører sig underligt - Numre ved linieskift

Hej eksperter

Den her giver mig hovedpine. Jeg har et array, som er skab ud fra en tekst, hvilket såmænd er meget fint, borset fra den måde mit script opfører sig på, når jeg så anvender det.

Arrayet er skabt ud fra en tekst, hvor det så laves som et mellemrums separeret array. Og det lader til at virke meget fint.

Det der går galt er, når jeg så anvender koden. F.eks. i det nedstående stykke (et udsnit af et digt), så har det første langsomt en værdi på 0, som jo er meget fint, og blodet 1, flyder 2, og nu går den så galt, <br>'s værdi kan jeg ikke checke, da den ikke har et link, men den bør jo have 3, men den næste Langsomt har også værdien 2, ligesom flyder, hvor det burde have værdien 4. Så tilsyneladende har <br> ingen værdi eller måske nærmere en minus 1 værdi, hvilket ikke giver mening.


Langsomt blodet flyder <br>
Langsomt min krop den dør <br>
Langsomt lyden svinder <br>


Her er så koden (meget er skåret fra, for overskuelighedens skyld.

<?
// Teksten hentes (koden er fjernet for overskuelighed)

$list = explode(" ", $tekst);


// En ordliste, se bare bort fra den, den bruges af hensyn til overskueligheden ved debugging
$wordList = array("<br>", "<h1>", "</h1>", "<h2>", "</h2>", "<h3>", "</h3>", "<h4>", "</h4>", "<h5>", "</h5>");

//En kontrolvariabel til evt. billeder i koden
$animg = 0;

//Løkken der klarer det hele
foreach ($list as $i=>$word) {

//Noget kode til at kontrollere efter billedekoder
if ($word == "<img" || $animg == 1)
$animg = 1;
if ($word == "border=\"0\">")
$animg = 0;

if ($animg == 1) {
echo $word . " ";
} elseif (!in_array(strtolower($word), $wordList)) {
echo "<a href=\"in_index.php?p=CMS_h_end&amp;start=$i&amp;theID=" . $_GET["theID"] . "\">" . $word . "</a> ";
} else { echo $word . " "; }
}
?> 



Hvad går galt, og hvad kan jeg gøre?
Avatar billede kr-data Nybegynder
30. december 2004 - 17:34 #1
Hvis jeg laver en kontrolkode, hvor jeg kun udskriver $i og ordet, så får jeg følgende:

0 = Langsomt
1 = blodet
2 = flyder
Langsomt
3 = min
4 = krop
5 = den
6 = dør
Langsomt
7 = lyden
8 = svinder


Ps. fejlen er nøjagtigt den samme om det er for-loop eller foreach jeg bruger
Avatar billede kr-data Nybegynder
30. december 2004 - 17:46 #2
Doooooooooooooooooh, glem det, jeg har glemt noget vitalt i en kode langt tidlige. Nej nej nej nej nej nej. Jeg skal skydes. Jeg skal skydes rigtigt meget.

Ps. hvis nogen vil vide hvad den grimme fejl jeg lavede var, så er der ingen der siger noget om, at jeg glemmer, at når teksten sættes ind, så erstattes linieskift med "<br>", eller nu i den rettede udgave, som løser fejlen " <br> ". Men det siger vi ikke til nogen.
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