den skall hämta nyhetslänkarna från www.linux.se, men sidan blir blank... var är mitt fel... någonstans i regexpen br det vara, men jag hittar dt inte!!! HELP!!!
Jag har suttit och svurit i en halvtimma nu och kommit en del på vägen. Koden nedan fungerar delvis, men eregi() fungerar bara till en viss del. Förstår inte varför. Någon som kan förklara varför man inte kan skriva text efter ? i eregi-uttrycket?
<?
$fd = fopen( "http://www.linux.se/index.php", "r" );
if ( !$fd )
{
echo "Kan inte upprätta en anslutning!";
exit();
}
$line = "";
$ret = "";
$count = 0;
while ( !feof( $fd ) )
{
$line = fgets( $fd, 1024 );
// Din ursprungliga eregi()
//if(eregi("<A HREF=\"/news/readnews.php?ID=(.*)&CLICK=(.*)\">(.*)</A>",$line,$out))
// Den här funkar för mig, får 29 träffar
if ( eregi( "<a href=\"/news/readnews.php?", $line, $out ) )
/* När jag lägger till ett I (stort som litet) får skriptet helt plötsligt noll träffar, trots att bokstaven finns där efter en titt i källkoden */
//if ( eregi( "<a href=\"/news/readnews.php?I", $line, $out ) )
{
//en smaksak egentligen. Jag separerar variablerna från strängen så att jag ser vart dom är. Skrev också 'id' och 'click' med gemener.
$tmp = "<a href=\"/news/readnews.php?id=" . $out[1] . "&click= " . $out[2] . "\">" . $out[3] . "</a>\n<br>\n";
/* debug */
//echo $line . "<br />";
//echo $tmp;
//echo "<br />";
/* debug */
$ret .= $tmp;
$count++;
}
}
if ( sizeof( $ret ) == 0 )
{
$ret = "no matches";
}
else
{
echo $count . " matches.";
}
fclose( $fd );
echo $ret;
?>
R// Det ville inte heller funka. Försöker komma på en annan lösning. :r
Ingen fara, jag fixedixade med liten ändring i sabbacus kod..
<?
$fd = fopen( "http://www.linux.se/index.php", "r" );
if ( !$fd )
{
echo "Kan inte upprätta en anslutning!";
exit();
}
$line = "";
$ret = "";
$count = 0;
while ( !feof( $fd ) )
{
$line = fgets( $fd, 1024 );
//Min ursprungliga eregi() ändrade jag till detta och får träffar..
if(eregi("<A HREF=\"/news/readnews.php(.*)\">(.*)</A>\n",$line,$out))
// Den här funkar för mig, får 29 träffar
//if ( eregi( "<a href=\"/news/readnews.php?", $line, $out ) )
/* När jag lägger till ett I (stort som litet) får skriptet helt plötsligt noll träffar, trots att bokstaven finns där efter en titt i källkoden */
//if ( eregi( "<a href=\"/news/readnews.php?I", $line, $out ) )
{
//en smaksak egentligen. Jag separerar variablerna från strängen så att jag ser vart dom är. Skrev också 'id' och 'click' med gemener.
$tmp = "<a href=\"http://www.linux.se/news/readnews.php" . $out[1] . "\">" . $out[2] . "</a>\n<br>\n";
/* debug */
//echo $line . "<br />";
//echo $tmp;
//echo "<br />";
/* debug */
$ret .= $tmp;
$count++;
}
}
if ( sizeof( $ret ) == 0 )
{
$ret = "no matches";
}
else
{
echo $count . " matches.";
}
fclose( $fd );
echo $ret;
?>
R// Fast HAHA! Min ger adresser utan radbrytningar. :e
R2// Valde att spara hela filen i $line istället för bara 1024 tecken för annars kan det hända att man bryter mitt i en länk och då kommer inte den med.