Gå lopen igenom 6 ggr? Om inte så finns det ju ingen data på plats 5, det är det bästa jag kan komma med :)
/Viktor
5 svar · 230 visningar · startad av UrMe
Jag har lite problem med en array.. förstår inte vad som är felet.. men ett hett tips är att jag har kodat fel ;)
Här kommer koden:
<?php
$file = fopen("enfil.html", "r");
if (!$file)
{
echo "<p>Kan inte upprätta förbindelse med webplatsen nu.\n";
exit;
}
$character = array();
$nr = 0;
while (!feof($file))
{
$line = fgets($file, 1024);
if (eregi("<character name=\"(.*)\" laston=\"(.*)\">",$line,$out))
{
$character[0][$nr] = "$out[1]";
$character[1][$nr] = "$out[2]";
}
if (eregi("<race>(.*)</race>",$line, $out))
{
$character[2][$nr] ="$out[1]";
}
if (eregi("<class>(.*)</class>",$line, $out))
{
$character[3][$nr] ="$out[1]";
}
if (eregi("<level>(.*)</level>",$line, $out))
{
$character[4][$nr] ="$out[1]";
}
if (eregi("<guildrank>(.*)</guildrank>",$line, $out))
{
$character[5][$nr] = "$out[1]";
}
if (eregi("<totalrp>(.*)</totalrp>",$line, $out))
{
$character[6][$nr] = "$out[1]";
}
if (eregi("<lastweekrp>(.*)</lastweekrp>",$line, $out))
{
$character[7][$nr] = "$out[1]";
}
if (eregi("<anon>(.*)</anon>",$line, $out))
{
$character[8][$nr] = "$out[1]";
}
$nr++;
}
fclose($file);
?>
<html>
<body>
<?php
echo $character[0][5];
?>
</body>
</html>
Jag hämtar alltså en fil och öppnar den.. loopar igenom innehållet och vill lägga allt i en fin array men när jag får ett felmeddelande som ser ut så här:
Notice: Undefined offset: 5 in e:\projektmapp\webb\annat\xmltester\daoc\daoc2.php on line 69
och rad 69 är ju "echo $character[0][5];"
Säkert nåt jätte simpelt fel...
Tack på förhand!
Gå lopen igenom 6 ggr? Om inte så finns det ju ingen data på plats 5, det är det bästa jag kan komma med :)
/Viktor
Loopen går ungefär 100ggr :)
EDIT: jag får inget felmeddelande längre.. men den verkar ändå inte lägga in nåt i arrayen.. men om jag t.ex tar "echo $out[1];" uppe i if-satsen så skriver den ut rätt.. nån som ser nåt fel när jag lägger in eller skriver ut arrayen?
Denna enkla kod fungerar ju bra ..
<?php
for($nr = 0;$nr<5;$nr++)
{
$hej[0][$nr] = "$nr";
}
echo $hej[0][3];
?>
förstår ingenting
Det fungerar om jag t.ex sätter
character[0][0] = "$out[1]";
då lägger han in det.. men inte om det står $nr
*berättar bara hur mycket jag kommit på* :)
Okej.. nu har jag lyckats hitta lite fel.. eller fel och fel.. problemet är att om en if-sats körs.. så går den inte in i de if-satserna utan han kör om while loopen igen.. därmed blir $nr helt konstiga..
EDIT: Så det jag fick göra var att göra en uppräknare för varje enskild if-sats... Tack för humm.. all hjälp :)