Forum » Server-Side scripting » TVgids PH unbuggen
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privebericht
Beste,

Ik ben bezig de tvgids van phphulp te unbuggen.
Dit is een verouderde van tvgids.nl, en ik wil hem graag weer online hebben

Echter krijg ik hem niet meer werkend...

Misschien kan iemand anders er even naar kijken, en hem voor €1,30 of €2,60 ofzo wegdoen.

Het script:
Code | Selecteer Alles
minimaliseren
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
88
89
90
91
92
93
94
95
96
97
<?
if(!$_GET['zender']){
    
//Zender overzicht
}
else{
    
$zender $_GET['zender'];
    
$zender str_replace(' '''$zender);
    
$zender str_replace('é''e'$zender);
    
$zender strtolower($zender);

    if(
$zender == "nederland1" OR $zender == "nederland2" OR $zender == "nederland3" OR $zender == "z@ppelin"){    $tabblad "ned_1,_ned_2,_ned_3"; }
    if(
$zender == "rtl4" OR $zender == "rtl5" OR $zender == "rtl7"){                         $tabblad "rtl_4,_rtl_5,_rtl_7"; }
    if(
$zender == "rtl8" OR $zender == "sbs6" OR $zender == "net5"){                         $tabblad "rtl_8,_sbs_6,_net_5"; }
    if(
$zender == "veronica" OR $zender == "discovery" OR $zender == "nickelodeon"){                 $tabblad "veronica,_discovery,_nickelodeon"; }
    if(
$zender == "een" OR $zender == "ketnet/canvas" OR $zender == "bnv"){                     $tabblad "een,_ketnet_canvas,_bvn"; }
    if(
$zender == "mtv" OR $zender == "tmf" OR $zender == "hetgesprek"){                         $tabblad "mtv,_tmf,_het_gesprek"; }
    if (
$zender == "eurosport" OR $zender == "eredivisielive" OR $zender == "sport1"){                 $tabblad "eurosport,_eredivisie_live,_sport1"; }
    if (
$zender == "2be" OR $zender == "vt4" OR $zender == "vtm"){                             $tabblad "2be,_vt4,_vtm"; }
    if (
$zender == "13thstreet" OR $zender == "scifi"){                                 $tabblad "13th_street,_scifi"; }
    if (
$zender == "cartoon_netw" OR $zender == "jetix"){                                 $tabblad "cartoon_netw,_jeti"; }
    if (
$zender == "drenthe" OR $zender == "rtvnoord" OR $zender == "rtvoost"){                     $tabblad "drenthe,_rtv_noord,_rtv_oost"; }
    if (
$zender == "brabant" OR $zender == "flevoland" OR $zender == "tvgelderland"){                 $tabblad "brabant,_flevoland,_tv_gelderland"; }
    if (
$zender == "at5" OR $zender == "zeeland" OR $zender == "omropfryslan"){                     $tabblad "at5,_zeeland,_omrop_fryslan"; }
    if (
$zender == "tvn-h" OR $zender == "tvrijnmond" OR $zender == "tvwest"){                     $tabblad "tv_n-h,_tv_rijnmond,_tv_west"; }
    if (
$zender == "rtv_utrecht"){                                             $tabblad "rtv_utrecht"; }

    if(!empty(
$_GET['t']))
    {
        if(
$_GET['t'] == "morgen" OR $_GET['t'] == "overmorgen")
        {
            
$tabblad $_GET['t']."/".$tabblad;
        }
    }

    
//Variabelen Declareren
    
$gevonden 0;
    
$zendernaam '';
    
$programmanaam = array();
    
$programmatijd = array();

    
//Bron uitlezen
    
$bron = @file("http://www.tvgids.nl/alleprogrammas/".$tabblad."/");

    for(
$regel=0;count($bron)>$regel;$regel++)
    {
          if((
eregi('<caption><a href=\"/alleprogrammas/\">'$bron[$regel])) && $gevonden == 0)
        {
            
$begin strpos($bron[$regel], 'alt="');
                    
$eind strpos($bron[$regel], '" />');

                    
$zendernaam substr($bron[$regel], ($begin+5), ($eind-$begin-5));
            
$zn str_replace(' '''$zendernaam);
            
$zn str_replace('&eacute;''e'$zn);
            
$zn strtolower($zn);

            if (
$zender == $zn)
            {
                
$gevonden 1;
            }
        }

        
//Indien begin nieuwe zender gevonden , stoppen met zoeken
        
if((eregi('<caption><a href=\"/alleprogrammas/\">'$bron[$regel+1])) && $gevonden == 1)
        {
            
$gevonden 2;
        }

        
//Programmagegevens uitlezen
        
if((eregi('<tr >'$bron[$regel])) && $gevonden == 1)
        {
            
//Tijd
            
$begin strpos($bron[$regel+1], '<td class="time">');
            
$eind strpos($bron[$regel+1], '</td>');
            
$programmatijd[] = substr($bron[$regel+1], ($begin+17), ($eind-$begin-17)); 
  
            
//Naam
            
$begin strpos($bron[$regel+2], '/" >');
            
$eind strpos($bron[$regel+2], '</a></td>');
            
$programmanaam[] = substr($bron[$regel+2], ($begin+4), ($eind-$begin-4));            
        }
    }

    if(
count($programmatijd) > 0)
    {
        echo 
"<strong>".$zendernaam."</strong><br>";
        for(
$nr=0;count($programmatijd)>$nr;$nr++)
        {
            echo 
"<br>[".$programmatijd[$nr]."] ".$programmanaam[$nr];
        }
    }
    else{
        echo 
"Zender niet gevonden!";
    }

    echo 
"<p>Bron: www.tvgids.nl</p>";
}
?>


Ik hoop dat er iemand wil meehelpen

Lars
30-04-2010 18:49
Dit topic is 93 keer bekeken door 4 verschillende leden
Reacties op: "TVgids PH unbuggen"
1
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
Oplossing gevonden
Is helaas hetzelfde als die van Koen (die het dus niet zelf heeft gemaakt)

Voorbeeld hier:
http://pretpark-online.nl/tvgids/tvgids.php

Source code:
Code | Selecteer Alles
minimaliseren
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
<base href="http://tvgids.nl/">
    <style>
    * { font-family: verdana; font-size: 10pt; COLOR: gray; }
    b { font-weight: bold; }
    table { border: 1px solid gray;}
    td { text-align: left; padding: 5;}

    </style>

<?php
function gids($name=false,$future=false)
{
    static 
$_match;
    if(!isset(
$_match))
    {
        
$url file_get_contents('http://www.tvgids.nl/nustraks/allezenders/') or die('FAIL');
        
$url preg_replace('#<imgssrc=".+"s/>#','',$url);
        
$pattern = array(
            
'#<tdsclass="channel">(.+)</td>#',
            
'#<tdsclass="title">[ns]+<ashref="/.+"stitle=".+">(.+|)</a>#',
            
'#<tdsclass="time">(d{2}:d{2})</td>#'
        
); 
        foreach(
$pattern AS $k => $v)
        {
            
preg_match_all($v,$url,$m);
            
$match[$k] = $m[1];
        }
        
$_match $match;
    }

    if(!
$name)
        return 
$_match;

    
$key array_search($name,$_match[0])*2;

    if(
$future)
        
$key++;

    return array(
$_match[1][$key],$_match[2][$key]);
}

$fetch gids();
$rows '';
foreach(
$fetch[0] AS $k => $name)
{
    
$keyA $k*2;
    
$keyB = ($k*2)+1;
    
$rows .= '
        <tr>
            <td><font face="arial"><b>'
.$name.'</b></font></td>
            <td><font face="arial"><b>'
.($fetch[2][$keyA]).':</b> '.($fetch[1][$keyA]).'</font></td>
            <td><font face="arial"><b>'
.($fetch[2][$keyB]).':</b> '.($fetch[1][$keyB]).'</font></td>
        </tr>'
;
}
echo 
'<h1 align="center">Groot Scripting TV - Gids:</h1><table border="1" cellpadding="1" cellspacing="0" width="100%"><tr><td><b><font face="arial">Zender</font></b></td><td><b><font face="arial">Nu op de televisie:</font></b></td><td><b><font face="arial">Straks op de televisie:</font></b></td></tr>'.$rows.'</table>'
?>


Toch nog bedankt
30-04-2010 19:23
Reageer op: "TVgids PH unbuggen"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden