webForumDet fria alternativet

Enkelt fel? Eregi

PHPur PHP

6 svar · 175 visningar · startad av U2K

Medlem sedan jan. 2000224 inlägg
Frågan#1

Är nästan säker på att det är något enkelt som är fel i denna koden..

<?
	function getTime()
	{
		$file = fopen("http://komfram.trafikkontoret.goteborg.se/cgi-bin/vgg?2370FB:se:color:::", "r");
		if (!$file) 
		{
		  echo "<p>Kan inte upprätta förbindelse med skiten.\n"; 
		  exit;
		}

		$ret ="";
		while (!feof($file)) 
		{
		  $line = fgets($file, 1024);
		  if (eregi("  <TD><IMG SRC=\"/icons/sparvagn.blue.gif\" ALT=\"S\" BORDER=NONE></TD><TD BGCOLOR=\"black\"  HEIGHT=\"40\"><FONT SIZE=\"+2\" COLOR=\"white\"><B>(.*)</B></FONT></TD> <TD BGCOLOR=\"black\"  HEIGHT=\"40\"><FONT SIZE=\"+2\" COLOR=\"white\"><B>(.*)</B></FONT></TD>  <TD> <FONT SIZE=\"+1\">(.*)</FONT> </TD>  <TD><FONT SIZE=\"+1\">(.*)</FONT></TD> ", $line, $out)) {
		    $ret .= "Linje: $out[0] Destination: $out[1] Tid1: $out[2] Tid2: $out[3]";
		  }
		}

		fclose($file);
		
		return $ret;
	}
?>

Någon som vet? Det händer inget.. Alltså if satsen är fel!!! Men jag vet inte riktigt

Medlem sedan okt. 2001538 inlägg
#2

Jag har läst igenom hela php.net manualen på eregi för att se, men jag lyckas inte hitta något ställe som säger att man kan skicka med den en extra variabel som den skall lagra värden i (i detta fallet $out) Är du säker på att den funktionen verkligen klarar av att göra det du vill att den skall göra?

Är inte någon direkt fena på det där med eregi å regexps å allt det där joxxet, även om jag skulle vilja lära mig, men har som sagt inte kommit så långt än, men eregi är väl mer för att kolla igenom en sträng efter förekomsten av ett mönster? Eller kan den också dra ut värden därifrån?

MVH Patrik

Medlem sedan sep. 20021 655 inlägg
#3

För tillfället lämnas följande felmeddelande:
"Vår databas kan just nu inte nås. V.g. försök igen senare. "

Men du har tänkt lite fel när du ska skriva ut ifrån $out.
$out[0] kommer att innehålla hela strängen, och $out[1] kommer att innehålla den första matchade parentesen.

Medlem sedan jan. 2000372 inlägg
#4

Och dessutom kan du inte använda t.ex. $out[0] mitt inne i en sträng sådär, testa med {$out[0]} istället så funkar det nog bättre.

Medlem sedan sep. 20021 655 inlägg
#5
<?
    function getTime()
    {
        $file = fopen("http://komfram.trafikkontoret.goteborg.se/cgi-bin/vgg?2370FB:se:color:::", "r");
        if (!$file) 
        {
          echo "<p>Kan inte upprätta förbindelse med skiten.\n"; 
          exit;
        }

        $ret ="<table>\n";
        while (!feof($file)) 
        {
          $line = fgets($file, 4096);
          if (preg_match("/<TD><IMG SRC=\"\/icons\/sparvagn.blue.gif\" ALT=\"S\" BORDER=NONE><\/TD><TD BGCOLOR=\"black\"  HEIGHT=\"40\"><FONT SIZE=\"\+2\" COLOR=\"white\"><B>(.*)<\/B><\/FONT><\/TD> <TD BGCOLOR=\"black\"  HEIGHT=\"40\"><FONT SIZE=\"\+2\" COLOR=\"white\"><B>(.*)<\/B><\/FONT><\/TD>  <TD> <FONT SIZE=\"\+1\">(.*)<\/FONT> <\/TD>  <TD><FONT SIZE=\"\+1\">(.*)<\/FONT><\/TD>/i", $line, $out)) {
            $ret .= "<tr>\n  <td>Linje: $out[1]</td>\n  <td>Destination: $out[2]</td>\n  <td>Tid1: $out[3]</td>\n  <td>Tid2: $out[4]</td>\n</tr>\n";
          }
        }

        fclose($file);
        
        $ret .="</table>";
        return $ret;
    }
    
    echo getTime();
?>
Medlem sedan jan. 2000224 inlägg
#6

Ok..

Jo, det verkar som om det ska fungera nu.. har inte testat ännu men tack ändå..

PS $out kan ligga i eregi funktionen eftersom koden är från DN skriptet som finns på WF också.. Det är väl Arrayen där alla (.*) lagras. DS

Ska kolla upp det och återkommer om det strular igen.. Tack ändå

Medlem sedan jan. 2000224 inlägg
#7

Det blir fel.. men jag fattar inte.. 'c' ?!

Warning: Unknown modifier 'c' on line 15

Hmm.. detta verkar skumt.. Någon med ett svar?

137 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)