webForumDet fria alternativet

Fopen

8 svar · 265 visningar · startad av jboy_87

jboy_87Medlem sedan aug. 20011 099 inlägg
#1

får inte ut det som är markerad nån som vet?!

<?
function getvader()
{
@$file = fopen("http://zodiaken.net/cgi-bin/dagens.pl?id=".$_GET['id']."", "r", "l");
if (!$file)
{
echo "Kunde inte upprätta förbindelsen med webbplatsen.\n Var god försök igen senare!";
exit;}

while (!feof($file))
{
$line = trim(fgets($file, 1024));
global $kopiera1;		  
 if (eregi("<H4>(.*)</H4></FORM>",$line,$out))
$kopiera1 = "<font color='#868686'>$out[1]</font><br>";

global $kopiera2;	
[b]
 if (eregi("<TABLE WIDTH=80%><TR><TD>(.*)</TR></TD>",$line,$out))
$kopiera2 = $out[1];
}
[/b]

fclose($file);
		
return $kopiera1;
return $kopiera2;
}		

getvader();
echo $kopiera1;
echo $kopiera2;?>
UrMeMedlem sedan apr. 2001762 inlägg
#2

Har provat och provat :) men jag går bet på detta.. du kan ju börja med att ändra </TR></TD> till </TD></TR>

Har det inget med att göra att texten mellan ligger på nästa rad eller nåt sådant?

Nexus86Medlem sedan okt. 20023 030 inlägg
#3

. i reguljära uttryck innehåller alla tecken utom ny rad så om cellen innehåller en ny rad så måste du använda
(.|\n)* istället.

jboy_87Medlem sedan aug. 20011 099 inlägg
#4

händer inget?

 if (eregi("<TABLE WIDTH=80%><TR><TD>(.|\n)*</TD></TR>",$line,$out))
jboy_87Medlem sedan aug. 20011 099 inlägg
#5

någon som vet blir galen snart!

MatteMedlem sedan aug. 20002 975 inlägg
#6

Du kan troligtvis inte göra jämförelsen på en rad i taget, utan du får läsa in hela filen först:

$line = '';

while (!feof($file)) {
   $line .= trim(fgets($file, 1024));
}

global $kopiera1;		  

if (eregi("<H4>(.*)</H4></FORM>",$line,$out)) {
   $kopiera1 = "<font color='#868686'>$out[1]</font><br>";
}

if (preg_match("/<TABLE WIDTH=80%><TR><TD>(.*?)<\/TD><\/TR>/is",$line,$out)) {
   $kopiera2 = $out[1];
}
jboy_87Medlem sedan aug. 20011 099 inlägg
#7

det funkade inte för mig när körde trim med $line innan!
men ska testa igen! tackar

MatteMedlem sedan aug. 20002 975 inlägg
#8

Det var inte trim jag syftade på utan att läsa in hela filen innan du börjar leta i den. Vad det gäller trim kan du lika gärna (eller hellre) göra så här:

while (!feof($file)) {
   $line .= fgets($file, 1024);
}
jboy_87Medlem sedan aug. 20011 099 inlägg
#9

okdoki det funkar tack ska du ha!

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