[PHP] problemen met Turbotrekker scriptje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het volgende scriptje geschreven (hoop geklungel en geklooi maar het is wat)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?
$link_prefix    =   "&nbsp;&nbsp;o ";
$link_postfix   =   "<BR>\n";
$cache_file =   "/tmp/tweakers.net.cache";
$cache_time =   3600;
$max_items  =   10;
$target     =   "_top";
$backend    =   "http://www.tweakers.net/turbotracker.dsp";
$items      =   0;
$time       =   split(" ", microtime());

srand((double)microtime()*1000000);
$cache_time_rnd =   300 - rand(0, 600);

if ( (!(file_exists($cache_file))) || ((filectime($cache_file) + $cache_time - $time[1]) + $cache_time_rnd < 0) || (!(filesize($cache_file))) ) {

    $fpread = fopen($backend, 'r');
    if(!$fpread) {
//      echo "$errstr ($errno)<br>\n";
//      exit;
    } else {

        $fpwrite = fopen($cache_file, 'w');
        if(!$fpwrite) {
//          echo "$errstr ($errno)<br>\n";
//          exit;
        } else {

            while(! feof($fpread) ) {

                $buffer = ltrim(Chop(fgets($fpread, 256)));

                if (($buffer == "<nieuwsposting>") && ($items < $max_items)) {
                    $title = ltrim(Chop(fgets($fpread, 256)));
                    $link = ltrim(Chop(fgets($fpread, 256)));

                    $nieuwsposting = ereg_replace( "<nieuwsposting>", "", $nieuwsposting );
                    $nieuwsposting = ereg_replace( "</posting>", "", $nieuwsposting );
                    $id = ereg_replace( "<id>", "", $id );
                    $id = ereg_replace( "</id>", "", $id );
                    $title = ereg_replace( "<titel>", "", $title );
                    $title = ereg_replace( "</titel>", "", $title );
                    $editor = ereg_replace( "<editor>", "", $editor );
                    $editor = ereg_replace( "</editor>", "", $editor );
                    $categorie = ereg_replace( "<categorie>", "", $categorie );
                    $categorie = ereg_replace( "</categorie>", "", $categorie );
                    $bron = ereg_replace( "<bron>", "", $bron );
                    $bron = ereg_replace( "</bron>", "", $bron );
                    $link = ereg_replace( "<link>", "", $link );
                    $link = ereg_replace( "</link>", "", $link );
                    $tijd = ereg_replace( "<tijd>", "", $tijd );
                    $tijd = ereg_replace( "</tijd>", "", $tijd );
                    $timestamp = ereg_replace( "<timestamp>", "", $timestamp );
                    $timestamp = ereg_replace( "</timestamp>", "", $timestamp );
                    $reacties = ereg_replace( "<reacties>", "", $reacties );
                    $reacties = ereg_replace( "</reacties>", "", $reacties );

                    fputs($fpwrite, "$link_prefix<A HREF=\"$link\" TARGET=\"$target\">$title</A>$link_postfix");

                    $items++;
                }
            }
        }
        fclose($fpread);
    }
    fclose($fpwrite);
}
if (file_exists($cache_file)) {
    include($cache_file);
}
?>


Maar als ik het dus nu uitvoer dan krijg ik als titel in het scherm het id van het nieuwsbericht te staan en als link krijg ik dan de titel. Ik snap niet helemaal waar ik de mist in ga! :?

rara wie weet raadt?!?! _/-\o_

[ Voor 18% gewijzigd door Verwijderd op 06-03-2003 09:11 . Reden: code vervangen door php voor leesbaarheid ]


Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

al die ereg-replaces zou ik eens vervangen. nieuwe t.net / nu.nl track-util (gratis) is wellicht een idee?

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verdorie ik heb echt eerst een hele avond GOT afgestruind om ergens iets bruikbaars te kunnen vinden maar ik heb dus niets gevonden en ben toen maar zelf eens gaan schrijven.

maar waardoor moet ik die ereg-replaces dan vervangen?

Zeg als ik dat scriptje wat je me net toespeelt uitvoer en ik vervang allte > en < op de plekken met de parse error dan krijg ik gewoon een leeg scherm!! :-( (ja eigenlijk een <hr> erin) Ik heb ook de
PHP:
1
2
3
4
5
6
<?
include "nieuws.php";
echo tnet(4);
echo "<hr>";
echo nu(4,4,4,4);
?>

Nieuws.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<? 
    function tnet($amount=5,$override="") { 
        if(time() - filemtime("tnet.txt") > 300 || $override == 'yes') { 
            $fp=fopen("http://www.tweakers.net/turbotracker.dsp","r"); 
            $news_content = fread($fp,10000);  
            fclose($fp); 
            if(strlen($news_content) > 0) { 
                $news_content = explode("\n\n",$news_content); 
                array_pop($news_content); 
                $i=1; 
                 
                foreach($news_content as $newsitem) { 
                    preg_match('/&lt;titel&gt;(.*?)&lt;\/titel&gt;/i',$newsitem,$temp); 
                    $title = $temp[1]; 
                    preg_match('/&lt;id&gt;(.*?)&lt;\/id&gt;/i',$newsitem,$temp); 
                    $id = $temp[1]; 
                 
                    $tnetbar .= "&middot;&lt;a href='http://tweakers.net/nieuws.dsp?ID=" . $id . "' " . $atitle . " target=_content&gt;" . $title . "&lt;/a&gt;&lt;br&gt;"; 
                    $i++; 
                    if($i>$amount) 
                        break; 
                } 
                 
                $fp = fopen("tnet.txt",w); 
                fwrite($fp,$tnetbar); 
            } 
            else { 
                $fp = fopen("tnet.txt",r); 
                $tnetbar = fread($fp,10000); 
                fclose($fp); 
                $fp = fopen("tnet.txt",w); 
                fwrite($fp,$tnetbar); 
            } 
        } 
        else { 
            $fp = fopen("tnet.txt",r); 
            $tnetbar = fread($fp,10000); 
        } 
        fclose($fp); 
        return $tnetbar; 
    } 
     
    function nu($nieuwshoofd,$nethoofd,$netoverig,$ecohoofd,$override="") { 
        GLOBAL $newsitems; 
        if(time() - filemtime("nu.txt") > 1800 || $override == 'yes') { 
              $fp=fopen("http://nu.nl/deeplink_html","r"); 
            $newsitems = fread($fp, 30000);  
            fclose($fp); 
             
            $output .= "&lt;b&gt;&lt;a href='http://nu.nl' target=_content&gt;nieuws.hoofd&lt;/a&gt;&lt;/b&gt;&lt;br&gt;"; 
            $output .= nusnippet('nieuws.hoofd', $nieuwshoofd); 
                         
            $output .= "&lt;br&gt;&lt;b&gt;&lt;a href='http://nu.nl/net' target=_content&gt;net.hoofd&lt;/a&gt;&lt;/b&gt;&lt;br&gt;"; 
            $output .= nusnippet('net.hoofd', $nethoofd); 
             
            $output .= "&lt;br&gt;&lt;b&gt;&lt;a href='http://nu.nl/net' target=_content&gt;net.overig&lt;/a&gt;&lt;/b&gt;&lt;br&gt;"; 
            $output .= nusnippet('net.overig', $netoverig); 
             
            $output .= "&lt;br&gt;&lt;b&gt;&lt;a href='http://nu.nl/economie' target=_content&gt;eco.hoofd&lt;/a&gt;&lt;/b&gt;&lt;br&gt;"; 
            $output .= nusnippet('economie.hoofd', $ecohoofd); 
             
            $fp = fopen("nu.txt",w); 
            fwrite($fp,$output); 
        } 
        else { 
            $fp = fopen("nu.txt",r); 
            $output = fread($fp,10000); 
        } 
        fclose($fp); 
        return $output; 
    } 
     
    function nusnippet($hoofdstuk, $max) { 
        GLOBAL $newsitems; 
        preg_match('/&lt;DIV&gt;&lt;B&gt;' . quotemeta($hoofdstuk) . '&lt;\/B&gt;&lt;UL&gt;(.*?)&lt;\/UL&gt;&lt;\/DIV&gt;/si',$newsitems,$temp); 
        $hoofdstuk_t = $temp[1]; 
        $hoofdstuk_t = str_replace("&lt;LI&gt;", "&middot;", $hoofdstuk_t); 
        $hoofdstuk_t = str_replace("&lt;/LI&gt;", "&lt;BR&gt;",$hoofdstuk_t); 
        $hoofdstuk_t = str_replace("&lt;A HREF=", "&lt;A target=_content HREF=",$hoofdstuk_t); 
        $hoofdstuk_t = split("&lt;BR&gt;", $hoofdstuk_t); 
             
        for ($i=0; $i < $max && $i < $hoofdstuk_t; $i++) 
            $output .= "$hoofdstuk_t[$i]&lt;br&gt;"; 
         
        return $output; 
    } 
?> 

gebruikt.
Ikke niet snap! :-(

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
*schop*

Acties:
  • 0 Henk 'm!

  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 16:47
Waarom verwerk je het niet met de XML-parsing functies van PHP? Dat werkt ook goed :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik kan dus niet goed vinden hoe ik die moet gebruiken. Weet je waar ergens een voorbeeldje staat[geen script request!]? Ik kan vanalles vinden op php.net maar ik vind het allemaal een btje onduidelijk!

Maar ik snap dus niet wat fout is aan het scriptje wat hier boven staat! Waarom geeft ie alleen het id weer en dan als link de titel!! Dat snap ik dus niet!

[ Voor 29% gewijzigd door Verwijderd op 07-03-2003 15:02 . Reden: Extra toevoeging script! ]

Pagina: 1