tnViking Skrevet 25. november 2011 Del Skrevet 25. november 2011 Heisann! Jeg lurer på hvordan man inkluderer en ekstern variabel. Altså ikke en annen fil på web serveren, men fra et annen nettside. Har prøvd med: <?php include ('http://gxdesign.tk/updates/PasswordGenerator/update.php'); echo $version; $current_version = "0.9.8"; ?> Og i filen jeg prøver å hente står det: <?php $version = '1.0.0'; if ($current_version < $version){ $update = " <h1><center> You got version: ".$current_version."<br /> And we recommend that you update to version: ".$version."<br /> </center></h1>"; echo $update; } ?> Men jeg får ikke printet ut $update Lenke til kommentar
slacky Skrevet 25. november 2011 Del Skrevet 25. november 2011 Det ville vært en php-risiko om man kunne hente alle andre sine php-koder ved å bare kalde til dem... right? Kunne hentet alle databasepassord etc... Jeg skrev en kommentar her på hvordan jeg ville gått frem får å gjøre noe i den duren: https://www.diskusjon.no/index.php?showtopic=1388531 Lenke til kommentar
Tom_ Skrevet 25. november 2011 Del Skrevet 25. november 2011 Sjekk den her: http://php.about.com/od/advancedphp/ss/include_files.htm Lenke til kommentar
slacky Skrevet 25. november 2011 Del Skrevet 25. november 2011 Sjekk den her: http://php.about.com/od/advancedphp/ss/include_files.htm De snakker om å inludere en lokal fil. Han ønsker å hente en ekstern fil.. En fil som ligger på en annen server, ut i fra hva jeg skjønte. Lenke til kommentar
Tom_ Skrevet 25. november 2011 Del Skrevet 25. november 2011 Det ville vært en php-risiko om man kunne hente alle andre sine php-koder ved å bare kalde til dem... right? Kunne hentet alle databasepassord etc... Jeg skrev en kommentar her på hvordan jeg ville gått frem får å gjøre noe i den duren: https://www.diskusjon.no/index.php?showtopic=1388531 Du har rett, denne løsningen er den beste, 10 Poeng Lenke til kommentar
tnViking Skrevet 25. november 2011 Forfatter Del Skrevet 25. november 2011 Det ville vært en php-risiko om man kunne hente alle andre sine php-koder ved å bare kalde til dem... right? Kunne hentet alle databasepassord etc... Jeg skrev en kommentar her på hvordan jeg ville gått frem får å gjøre noe i den duren: https://www.diskusjon.no/index.php?showtopic=1388531 Da har jeg gjort slik: <?php $version = file_get_contents('http://gxdesign.tk/updates/PasswordGenerator/update.txt'); $current_version = "1.0.0"; if ($version > $current_version){ $update = " <h1><center> You got version: $current_version<br /> And we recommend that you update to version: $version<br /> </center></h1>"; } ?> og update.txt er: 1.0.1 Lenke til kommentar
slacky Skrevet 25. november 2011 Del Skrevet 25. november 2011 (endret) Se der ja, det var ikke værre (litt ekkelt å bruke txt?). Ser noen saker jeg er litt skeptisk til.. Hvor det er string, der det burde være int. $current_version og $version er string. Men du forsøker sammenligne størrelsen på tallene.. Du må omformatere det til int, for at det ikke skal være buggy. Du gjør dem om til int ganske enkelt: <?php $version = file_get_contents('http://gxdesign.tk/updates/PasswordGenerator/update.txt'); $version = (int)$version; $current_version = 1.0.0; if ($version > $current_version){ $update = " <h1><center> You got version: $current_version<br /> And we recommend that you update to version: $version<br /> </center></h1>"; } ?> Ekstern kode kan være phpfil (om ønsket); (lettere å hente fra database etc..). <?php //om du vil kan du hente versjonen fra en database eller slik $version = "1.0.0"; echo $version; file_get_contents henter f.eks alt som er synelig (kildekoden til siden). Endret 25. november 2011 av warpie Lenke til kommentar
tnViking Skrevet 25. november 2011 Forfatter Del Skrevet 25. november 2011 (endret) Se der ja, det var ikke værre (litt ekkelt å bruke txt?). Ser noen saker jeg er litt skeptisk til.. Hvor det er string, der det burde være int. $current_version og $version er string. Men du forsøker sammenligne størrelsen på tallene.. Du må omformatere det til int, for at det ikke skal være buggy. Du gjør dem om til int ganske enkelt: <?php $version = file_get_contents('http://gxdesign.tk/updates/PasswordGenerator/update.txt'); $version = (int)$version; $current_version = 1.0.0; if ($version > $current_version){ $update = " <h1><center> You got version: $current_version<br /> And we recommend that you update to version: $version<br /> </center></h1>"; } ?> Ekstern kode kan være phpfil (om ønsket); (lettere å hente fra database etc..). <?php //om du vil kan du hente versjonen fra en database eller slik $version = "1.0.0"; echo $version; file_get_contents henter f.eks alt som er synelig (kildekoden til siden). Da har jeg gjort det du sa, bruker nå php, men jeg fikk ikke til (int)$version. Men uansett, nå funker det Endret 25. november 2011 av Goldfiner Lenke til kommentar
Jonas Skrevet 25. november 2011 Del Skrevet 25. november 2011 (endret) Man kan naturligvis ikke konvertere en versjon-streng til en integer. Hvordan ser dere egentlig for dere at en integer kan representere tre tallverdier? Jeg satt sammen en lite eksempel som bruker regulære uttrykk for å hente ut delene av versjonen, som man kan bruke til å sammenlikne med. <?php $string = file_get_contents(..); if (preg_match("/^(\d+)\.(\d+)\.(\d+)$/", $string, $matches)) { $major = $matches[1]; $minor = $matches[2]; $build = $matches[3]; echo "Latest version is {$major}.{$minor}.{$build}."; } Endret 26. november 2011 av Jonas 1 Lenke til kommentar
Milktea Skrevet 26. november 2011 Del Skrevet 26. november 2011 Ellers hvis man ikke er så fryktelig glad i regex: function get_version_int($ver) { $ver_int = 0; $i = 0; foreach(array_reverse(explode(".", $ver)) as $sub_ver) { $ver_int += $sub_ver << 8*$i++; } return $ver_int; } print get_version_int("0.9.8"); // 2312 print get_version_int("0.9.8") > get_version_int("0.8.32"); // true // da gjør man det slik: $version = file_get_contents(..); $current_version = "1.0.0"; if(get_version_int($version) > get_version_int($current_version)) do_something(); Fungerer fra versjon 0.0.0.0 til 127.255.255.255 siden vi bruker signed 32-bit integer. Verdt å merke seg at ingen av del-versjonene må være høyere enn 255, da blir sammenlikningen feil. En annen ting er at f. eks. "1.0.0" regnes som kort for "0.1.0.0" og at "1.0.1.0" dermed ikke er det samme som "1.0.1"! Blir dog ikke rot om man er konsistent med versjonstallene og bruker samme antall hver gang. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå