Avatar billede grauholm Nybegynder
05. august 2003 - 10:47 Der er 25 kommentarer og
1 løsning

Hente lottotal

Jeg har fundet et script der kan tjekke lotto tal, og det ser også ud til at virke på den server jeg henter det fra

http://coder.dk/examples/cyberdudelotto.php

Her er souce koden:

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
    echo "You are using Internet Explorer<br />";
}
?> 
<? 

function checkLotto($mine,$udtrukne,$tillaegstal) 
{ 
  $rigtige = Array(); 
  for ($i = 0;$i < count($mine);$i++) 
  { 
    if (in_array($mine[$i],$udtrukne)) 
      $rigtige[] = $mine[$i]; 
    if (in_array($mine[$i],$tillaegstal)) 
      $tillaeg[] = $mine[$i]; 
  } 
  return array("rigtige" => $rigtige, "tillaegstal" => $tillaeg); 
} 

$lotto = join("",file("http://www.tips.dk/front/frontpage.php")); 
$ugenstal = preg_match('/<br>/',$lotto,$regs); 
$ugenstal = array_slice($regs,1); 
$tillaegstal = preg_match('/<font class="verdanaLarge">([0-9]+)-([0-9]+)<\/font><\/td>/',$lotto,$regs); 
$tillaegstal = array_slice($regs,1); 

$ugenstal2 = implode(' - ',$ugenstal); 
echo "Ugens vindertal: $ugenstal2<br><br>"; 
echo "Tillægstal: $tillaegstal[0] - $tillaegstal[1]<br><br>"; 

// Evt. hiv ud fra en database
$minetal = array(array(2,6,8,14,27,29,35), 
                                    array(1,4,5,7,14,23,33), 
                                    array(1,4,6,7,16,23,33)); 

for ($i = 0;$i < count($minetal);$i++) 
{ 
    $resultat = checkLotto($minetal[$i],$ugenstal,$tillaegstal); 
    $r = $resultat["rigtige"]; 
    echo "Række " . ($i+1) . " havde " . count($r) . " rigtige tal" . ($resultat["tillaegstal"] ? " og " . count($resultat["tillaegstal"]) . " tillægstal" : ""); 
    if (count($r) > 0) 
    { 
        echo " ("; 
        for ($a = 0;$a < count($r);$a++) 
            echo ($a > 0 ? ($a == count($r) ? " og " : ", ") : "") . $r[$a]; 
        if ($resultat["tillaegstal"]) 
        { 
            echo " tillægstal: "; 
            $r = $resultat["tillaegstal"]; 
            for ($a = 0;$a < count($r);$a++) 
                echo ($a > 0 ? ($a == count($r) ? " og " : ", ") : "") . $r[$a]; 
        } 
        echo ")<br>"; 
    } 
} 

echo "<br><hr><br><b><i>Source:</i></b><br><br>"; 
show_source("lotto.php"); 

?> 

Men når jeg afprøver den kode på min server, henter den ikke lotto talende?

Jeg har php 4.1

/Allan
Avatar billede andy Nybegynder
05. august 2003 - 10:54 #1
Prøv med:
$lotto = join("",file("http://www.tips.dk/front/frontpage.php"));
print_r($lotto);

Hvad printer den ud?
Avatar billede grauholm Nybegynder
05. august 2003 - 11:01 #2
Intet, hverken når jeg kopier det ind i selve koden, eller når det for lov at stå selv
Avatar billede andy Nybegynder
05. august 2003 - 11:05 #3
Ok så har du sikkert ikke fopen wrappers enabled.
Avatar billede grauholm Nybegynder
05. august 2003 - 11:06 #4
? for en fisk
Avatar billede andy Nybegynder
05. august 2003 - 11:11 #5
http://dk.php.net/manual/en/function.file.php
Tip: You can use a URL as a filename with this function if the fopen wrappers have been enabled. See fopen() for more details on how to specify the filename and Appendix I for a list of supported URL protocols.
Avatar billede grauholm Nybegynder
05. august 2003 - 11:16 #6
Jeg har lige indlæst phpinfo og under et afsnit der står zlid står den til enabled
Avatar billede sostack Nybegynder
05. august 2003 - 11:25 #7
Koden virkede heller ikke hos mig, men her er den reviderede version:
<?php
//if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
//    echo "You are using Internet Explorer<br />";
//}
 

function checkLotto($mine,$udtrukne,$tillaegstal) 
{ 
  $rigtige = Array(); 
  for ($i = 0;$i < count($mine);$i++) 
  { 
    if (in_array($mine[$i],$udtrukne)) 
      $rigtige[] = $mine[$i]; 
    if (in_array($mine[$i],$tillaegstal)) 
      $tillaeg[] = $mine[$i]; 
  } 
  return array("rigtige" => $rigtige, "tillaegstal" => $tillaeg); 
} 

$lotto = join("",file("http://www.tips.dk/front/frontpage.php")); 
$ugenstal = preg_match('/<font class="verdanaLarge">([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)<\/font>/',$lotto,$regs); 
$ugenstal = array_slice($regs,1); 
$tillaegstal = preg_match('/<font class="verdanaLarge">([0-9]+)-([0-9]+)<\/font>/',$lotto,$regs); 
$tillaegstal = array_slice($regs,1); 

$ugenstal2 = implode(' - ',$ugenstal); 
echo "<br />Ugens vindertal: $ugenstal2<br><br>"; 
echo "Tillægstal: $tillaegstal[0] - $tillaegstal[1]<br><br>"; 

// Evt. hiv ud fra en database
$minetal = array(array(2,6,8,14,27,29,35), 
                                    array(1,4,5,7,14,23,33), 
                                    array(1,4,6,7,16,23,33)); 

for ($i = 0;$i < count($minetal);$i++) 
{ 
    $resultat = checkLotto($minetal[$i],$ugenstal,$tillaegstal); 
    $r = $resultat["rigtige"]; 
    echo "Række " . ($i+1) . " havde " . count($r) . " rigtige tal" . ($resultat["tillaegstal"] ? " og " . count($resultat["tillaegstal"]) . " tillægstal" : ""); 
    if (count($r) > 0) 
    { 
        echo " ("; 
        for ($a = 0;$a < count($r);$a++) 
            echo ($a > 0 ? ($a == count($r) ? " og " : ", ") : "") . $r[$a]; 
        if ($resultat["tillaegstal"]) 
        { 
            echo " tillægstal: "; 
            $r = $resultat["tillaegstal"]; 
            for ($a = 0;$a < count($r);$a++) 
                echo ($a > 0 ? ($a == count($r) ? " og " : ", ") : "") . $r[$a]; 
        } 
        echo ")<br>"; 
    } 
} 

//echo "<br><hr><br><b><i>Source:</i></b><br><br>"; 
//show_source("lotto.php"); 

?> 

//sostack
Avatar billede grauholm Nybegynder
05. august 2003 - 11:52 #8
Nej, den trækker stadig ikke lottotalende ind?
Avatar billede akp Nybegynder
05. august 2003 - 12:13 #9
Den henter ikke lottotalene, fordi de ikke er aktive på frontpage.php før de er valgt fra resultat menuen, hent dem fra http://www.tips.dk/spil/lotto/indhold/resultater.html i stedet
Avatar billede grauholm Nybegynder
05. august 2003 - 12:36 #10
Desværre ikke - Det var dog frustrende!!:-(
Avatar billede akp Nybegynder
05. august 2003 - 12:59 #11
De to kildefiler har ikke samme format. Har du ændret i preg_match?
Nu er jeg ikke nogen haj til PHP men mon ikke det skal se sådan ud i stedet:

$ugenstal = preg_match('/<td class="verdanaLarge"><b>([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)<\/b><\/td>/',$lotto,$regs);
Avatar billede akp Nybegynder
05. august 2003 - 13:01 #12
$ugenstal = preg_match('/<td class="verdanaLarge"><b>([0-9]+) - ([0-9]+) - ([0-9]+) - ([0-9]+) - ([0-9]+) - ([0-9]+) - ([0-9]+)<\/b><\/td>/',$lotto,$regs);
Avatar billede grauholm Nybegynder
05. august 2003 - 13:20 #13
Ok det her var et "det er alt for varmt lad os prøve lidt andet php programering end jeg plejer", men nej det virkede heller ikke.
Avatar billede akp Nybegynder
05. august 2003 - 13:34 #14
Jeg kan godt hente lotto tallene med denne kode:

<?
    $lotto = join("",file("http://www.tips.dk/front/frontpage.php"));
    $ugenstal = preg_match('/<font class="verdanaLarge">([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)<\/font>/',$lotto,$regs);
    echo $regs[1];
    echo "<P>";
    echo $regs[2];
    echo "<P>";
    echo $regs[3];
    echo "<P>";
    echo $regs[4];
    echo "<P>";
    echo $regs[5];
    echo "<P>";
    echo $regs[6];
    echo "<P>";
    echo $regs[7];
?>

Tror du ikke der bare skal lidt tilretning til ?
Avatar billede grauholm Nybegynder
05. august 2003 - 13:40 #15
Hvad kører du af server, php version?
Har du et link (til den fil der virker?)
Få så må det være min server der driller!!
Avatar billede akp Nybegynder
05. august 2003 - 13:49 #16
http://www.enemyterritory.dk/test.php

Hostet hos web10.dk, jeg ved ikke lige hvilken PHP version de kører
Avatar billede grauholm Nybegynder
05. august 2003 - 14:25 #17
Tak for hjælpen, men jeg tror jeg slukker her - det var bare for sjov
Avatar billede akp Nybegynder
05. august 2003 - 14:30 #18
Jeg lærte også noget af det her, ser nu muligheder i at hente ting fra forskellige hjemmesider ;-)
Avatar billede the_zyx Nybegynder
05. august 2003 - 23:14 #19
Skriv lige, hvis nogen har en korrekt kode?

Jeg kan heller ikke få talene frem..
Avatar billede the_zyx Nybegynder
05. august 2003 - 23:15 #20
"Warning: file("http://www.tips.dk/front/frontpage.php") - No such file or directory in /customers/net-salg.dk/net-salg.dk/httpd.www/cyberdudelotto.php on line 16

Warning: Bad arguments to join() in /customers/net-salg.dk/net-salg.dk/httpd.www/cyberdudelotto.php on line 16
Ugens vindertal:
"
Avatar billede grauholm Nybegynder
06. august 2003 - 08:09 #21
Hvilke PHP version kører du?

Lav en ny side og sæt kun denne kode ind, kald derefter koden så kan du bl.a. se versions nr:
<?php phpinfo(); ?>
Avatar billede the_zyx Nybegynder
06. august 2003 - 11:02 #22
PHP Version 4.2.2
Avatar billede grauholm Nybegynder
06. august 2003 - 11:29 #23
Ja, det har jeg nemlig også, måske problemet liger her????
Avatar billede sostack Nybegynder
06. august 2003 - 11:51 #24
på 4.2.3 virker det

//sostack
Avatar billede the_zyx Nybegynder
06. august 2003 - 11:59 #25
nitte at 0.0.1 kan gøre så meget.. nå, men screw it..
Avatar billede grauholm Nybegynder
09. august 2003 - 11:01 #26
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester