uranus Skrevet 4. januar 2008 Rapporter Del Skrevet 4. januar 2008 (endret) Hei! Jeg holder på å lage en liten kode for meg selv, så jeg kan sjekke status på pakkene mine på posten fra lokal server istedet for å gå inn på posten.no, åpne popupen osv osv. Ikke spør hvorfor jeg vil det, jeg vil det bare enkelt og greit. Uansett, her er koden min. <?php $sporingsnummer = $_GET['sporingsnummer']; if ($_GET['sporingsnummer']) { $ch = curl_init(); $url = "http://62.148.47.152/posten/PagesKM/KMSporingInternett.aspx?ShipmentNumber=".$sporingsnummer.""; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $out = curl_exec($ch); //Tidspunkt preg_match_all("!<span id=\"SporingUserControl_lblTraceTimestamp\">(.*?)</span>!s", $out, $tidspunkt); //Detaljer preg_match_all("!<TD valign=\"top\">(.*?)</TD>!s", $out, $detaljer); //Søkeresultat preg_match_all("!</TR> </table> <TABLE class=\"searchResultTable\">(.*?)</table> </TABLE>!s", $out, $resultat); $detaljer[1][1] = str_replace("SMARTPOST PAKKE", "<a href=\"http://www.postbutikken.no/default.asp?id=SMARTP\" target=\"_blank\">SMARTPOST PAKKE</a>", $detaljer[1][1]); $resultat[1][0] = str_replace("INNLEVERT", "<span style=\"color: #006600;\"><b>INNLEVERT</b></span>", $resultat[1][0]); $resultat[1][0] = str_replace("AVVIK", "<span style=\"color: #FF0000;\"><b>AVVIK</b></span>", $resultat[1][0]); $resultat[1][0] = str_replace("Årsak:", "<b>Årsak:</b>", $resultat[1][0]); $resultat[1][0] = str_replace("Tiltak:", "<b>Tiltak:</b>", $resultat[1][0]); $resultat[1][0] = str_replace("<td>", "<td valign=\"top\">", $resultat[1][0]); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Finn pakken din</title> <link rel="stylesheet" type="text/css" href="css/main.css" media="screen" /> <link rel="stylesheet" type="text/css" href="css/print.css" media="print" /> <!--[if lte IE 6]> <link rel="stylesheet" type="text/css" href="css/ie6_or_less.css" /> <![endif]--> <script type="text/javascript" src="js/common.js"></script> </head> <body id="type-a"> <div id="wrap"> <div id="header"> <div id="site-name">Finn pakken din </div> <div id="search"> <form action="" method="get"> <label for="searchsite">Kollinummer:</label> <input id="sporingsnummer" name="sporingsnummer" type="text" /> <input type="submit" value="Søk" class="f-submit" /> </form> </div> <ul id="nav"> <li class="first"><a href="index.php">Forsiden</a></li> <li class="active"><a href="#">Tjenester</a> <ul> <li class="first"><a href="posten.php">Nettsporing</a></li> <li><a href="http://posten.no/Portal/Produkterogtjenester/Nettspor">Om nettsporing</a></li> <li><a href="http://epab.posten.no/">Finn postnummer</a></li> <li><a href="http://www.posten.no/Portal/Privat/SavnedeJulepakker2007.htm">Bortkomne pakker</a></li> <li class="last"></li> </ul> </li> </ul> </div> <div id="content-wrap"> <div id="content"> <div id="breadcrumb"> <a href="index.php">Forsiden</a> / Kollinummer <?php echo $sporingsnummer; ?> </div> <p> <?php echo "<h2>Sporingsnummer ".$sporingsnummer."</h2>"; echo "<b>Søketidspunkt:</b> ".$tidspunkt[1][0]."<br />"; echo "<b>Kollinummer:</b> ".$detaljer[1][0]."<br />"; echo "<b>Produkt:</b> ".$detaljer[1][1]."<br />"; echo "<b>Vekt:</b> ".$detaljer[1][3]."<br />"; echo "<b>Volum:</b> ".$detaljer[1][5]."<br />"; echo "<b>Prisgrunnlag:</b> ".$detaljer[1][7]."<br /><br>"; echo "<table width=\"600px; padding: 5px; text-align: left;\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">".$resultat[1][0]."</table><br /><br>"; echo ' <div class="featurebox"><h3>Visste du at?</h3> <p> Du kan spore alle pakker og enkelte brevprodukter (swiftpost, verdipost, rekommanderte sendinger og PUM) med Postens sporingstjeneste. <br><br><a href="http://posten.no/Portal/Produkterogtjenester/Nettspor" class="morelink" title="Nettsporing" target="_blank">Les mer</a></p></div> '; } else echo '<h1>Finne pakka di?</h1>Du kan søke etter et sporingsnummer!<br><br> <form action="" method="get"> <label for="searchsite">Kollinummer:</label> <input id="sporingsnummer" name="sporingsnummer" type="text" /> <input type="submit" value="Søk" class="f-submit" /> </form> <i>F.eks: SM118655117NO</i><br><br> <div class="featurebox"><h3>Visste du at?</h3> <p> Du kan spore alle pakker og enkelte brevprodukter (swiftpost, verdipost, rekommanderte sendinger og PUM) med Postens sporingstjeneste. <br><br><a href="http://posten.no/Portal/Produkterogtjenester/Nettspor" class="morelink" title="Nettsporing" target="_blank">Les mer</a></p></div> '; ?> </p> <hr /> <p> </p> <div id="footer"> <p>En tjeneste av <a href="http://www.ludrio.no" target="_blank">Ludrio </a></p> <p> </p> </div> </div> </div> </div> </body> </html> Problemet er at selve pakkeinformasjonen kommer ikke med. Vet ikke hvorfor. Altså denne biten echoer ingenting. echo "<table width=\"600px; padding: 5px; text-align: left;\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">".$resultat[1][0]."</table><br /><br>"; Endret 5. januar 2008 av uranus Lenke til kommentar
NorskFirefox Skrevet 4. januar 2008 Rapporter Del Skrevet 4. januar 2008 Bruk print_r($temp) for å finne hvilken som er riktig.. Men skal du ha den neste så bruker du [1][2] i stedetfor [1][1].. Lenke til kommentar
uranus Skrevet 4. januar 2008 Forfatter Rapporter Del Skrevet 4. januar 2008 Hvorfor $temp? Lenke til kommentar
uranus Skrevet 4. januar 2008 Forfatter Rapporter Del Skrevet 4. januar 2008 (endret) Funker ikke enda, kun på lokal server. Funker ikke på webhotell og har testa to forskjellige. Endret 5. januar 2008 av uranus Lenke til kommentar
ThorB Skrevet 6. januar 2008 Rapporter Del Skrevet 6. januar 2008 Litt offtopic. laget noe slikt i Classic asp for mange mange år siden men trur nok koden min var en del mer rotete enn din da, men den fungerte nå. kom aldri til å bruke den når den var ferdig. men det som hadde vært noe hvis noen hadde laget et program som kjører i bakgrunnen, og oppdaterer alle pakkesporingsnummer man har, og hvis det skjer en endring, gi et msn liknende vindu. hadde vært veldig nyttig når det gjelder utenlandspakker. for der blir sporingsnummeret først aktivt når pakken kommer inn i landet. Lenke til kommentar
grimjoey Skrevet 6. januar 2008 Rapporter Del Skrevet 6. januar 2008 (endret) du kan gjøre print_r($detaljer) og print_r($resultat) for å se på arrayene. kan hende hostene du har testet på ikke har curl. prøv $out = file_get_contents($url); eller $out = ''; $f = fopen($url, 'r'); while ($line = fgets($f)) $out .= $line; fclose($f); Endret 6. januar 2008 av grimjoey Lenke til kommentar
Flin Skrevet 6. januar 2008 Rapporter Del Skrevet 6. januar 2008 Vet ikke om det er dette du er ute etter, men jeg har laget noe som funker fint. Du bare skriver inn pakkenummert og så kommer det informasjon om pakken, informasjonen kan du gjøre hva du vil med, jeg skriver den ut, men det funker fint å sende den på epost, legge den inn i database, osv. La fila som vedlegg(den er i .txt format) post.txt Lenke til kommentar
uranus Skrevet 8. januar 2008 Forfatter Rapporter Del Skrevet 8. januar 2008 Takk for det, men den henter faktisk ikke ut noe som helst annet enn toppen av siden, hehe Lenke til kommentar
ThorB Skrevet 12. januar 2008 Rapporter Del Skrevet 12. januar 2008 kan jeg få spørre hva "!s" i regexp betyr? finner ingen info om den syntaksen. Lenke til kommentar
Ernie Skrevet 12. januar 2008 Rapporter Del Skrevet 12. januar 2008 (endret) kan jeg få spørre hva "!s" i regexp betyr? finner ingen info om den syntaksen. ! blir brukt som delimiter og s er en pattern modifier som gjør at . også inneholder newline. Endret 12. januar 2008 av Ernie Lenke til kommentar
ThorB Skrevet 12. januar 2008 Rapporter Del Skrevet 12. januar 2008 kan jeg få spørre hva "!s" i regexp betyr? finner ingen info om den syntaksen. ! blir brukt som delimiter og s er en pattern modifier som gjør at . også inneholder newline. ahh. diskusjon.no er uffattelig ustabil her no. men har du noen linker der denne er forklart. alle referansene på regexp jeg finner har ikke forklart denne. Lenke til kommentar
ThorB Skrevet 12. januar 2008 Rapporter Del Skrevet 12. januar 2008 (endret) bare noen småjusteringer. fjernet litt av søketeksten din. manglet tr td en plass.(men det var kanskje som følger av jeg endret søketeksten) ellers burde du få htmlen litt mere etter standarden. den er ikke validert sånn som den er nå. <?php $sporingsnummer = $_GET['sporingsnummer']; if ($_GET['sporingsnummer']) { $ch = curl_init(); $url = "http://62.148.47.152/posten/PagesKM/KMSporingInternett.aspx?ShipmentNumber=".$sporingsnummer.""; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $out = curl_exec($ch); //Tidspunkt preg_match_all("!<span id=\"SporingUserControl_lblTraceTimestamp\">(.*?)</span>!s", $out, $tidspunkt); //Detaljer preg_match_all("!<TD valign=\"top\">(.*?)</TD>!s", $out, $detaljer); //Skeresultat preg_match_all('!<TABLE class="searchResultTable">(.*?)<\/table>!s', $out, $resultat); $detaljer[1][1] = str_replace("SMARTPOST PAKKE", "<a href=\"http://www.postbutikken.no/default.asp?id=SMARTP\" target=\"_blank\">SMARTPOST PAKKE</a>", $detaljer[1][1]); $resultat[0][1] = str_replace("INNLEVERT", "<span style=\"color: #006600;\"><b>INNLEVERT</b></span>", $resultat[0][1]); $resultat[0][1] = str_replace("AVVIK", "<span style=\"color: #FF0000;\"><b>AVVIK</b></span>", $resultat[0][1]); $resultat[0][1] = str_replace("Årsak:", "<b>Årsak:</b>", $resultat[0][1]); $resultat[0][1] = str_replace("Tiltak:", "<b>Tiltak:</b>", $resultat[0][1]); $resultat[0][1] = str_replace("<td>", "<td valign=\"top\">", $resultat[0][1]); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Finn pakken din</title> <link rel="stylesheet" type="text/css" href="css/main.css" media="screen" /> <link rel="stylesheet" type="text/css" href="css/print.css" media="print" /> <!--[if lte IE 6]> <link rel="stylesheet" type="text/css" href="css/ie6_or_less.css" /> <![endif]--> <script type="text/javascript" src="js/common.js"></script> </head> <body id="type-a"> <div id="wrap"> <div id="header"> <div id="site-name">Finn pakken din </div> <div id="search"> <form action="" method="get"> <label for="searchsite">Kollinummer:</label> <input id="sporingsnummer" name="sporingsnummer" type="text" /> <input type="submit" value="Sk" class="f-submit" /> </form> </div> <ul id="nav"> <li class="first"><a href="index.php">Forsiden</a></li> <li class="active"><a href="#">Tjenester</a> <ul> <li class="first"><a href="posten.php">Nettsporing</a></li> <li><a href="http://posten.no/Portal/Produkterogtjenester/Nettspor">Om nettsporing</a></li> <li><a href="http://epab.posten.no/">Finn postnummer</a></li> <li><a href="http://www.posten.no/Portal/Privat/SavnedeJulepakker2007.htm">Bortkomne pakker</a></li> <li class="last"></li> </ul> </li> </ul> </div> <div id="content-wrap"> <div id="content"> <div id="breadcrumb"> <a href="index.php">Forsiden</a> / Kollinummer <?php echo $sporingsnummer; ?> </div> <p> <?php echo "<h2>Sporingsnummer ".$sporingsnummer."</h2>"; echo "<b>Søketidspunkt:</b> ".$tidspunkt[1][0]."<br />"; echo "<b>Kollinummer:</b> ".$detaljer[1][0]."<br />"; echo "<b>Produkt:</b> ".$detaljer[1][1]."<br />"; echo "<b>Vekt:</b> ".$detaljer[1][3]."<br />"; echo "<b>Volum:</b> ".$detaljer[1][5]."<br />"; echo "<b>Prisgrunnlag:</b> ".$detaljer[1][7]."<br /><br>"; echo "<table width=\"600px; padding: 5px; text-align: left;\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\"><tr><td>".$resultat[0][1]."</td></tr></table><br /><br>"; echo ' <div class="featurebox"><h3>Visste du at?</h3> <p> Du kan spore alle pakker og enkelte brevprodukter (swiftpost, verdipost, rekommanderte sendinger og PUM) med Postens sporingstjeneste. <br><br><a href="http://posten.no/Portal/Produkterogtjenester/Nettspor" class="morelink" title="Nettsporing" target="_blank">Les mer</a></p></div> '; } else echo '<h1>Finne pakka di?</h1>Du kan søke etter et sporingsnummer!<br><br> <form action="" method="get"> <label for="searchsite">Kollinummer:</label> <input id="sporingsnummer" name="sporingsnummer" type="text" /> <input type="submit" value="Sk" class="f-submit" /> </form> <i>F.eks: SM118655117NO</i><br><br> <div class="featurebox"><h3>Visste du at?</h3> <p> Du kan spore alle pakker og enkelte brevprodukter (swiftpost, verdipost, rekommanderte sendinger og PUM) med Postens sporingstjeneste. <br><br><a href="http://posten.no/Portal/Produkterogtjenester/Nettspor" class="morelink" title="Nettsporing" target="_blank">Les mer</a></p></div> '; ?> </p> <hr /> <p> </p> <div id="footer"> <p>En tjeneste av <a href="" target="_blank">Ludrio </a></p> <p> </p> </div> </div> </div> </div> </body> </html> Endret 12. januar 2008 av thor918 Lenke til kommentar
Ernie Skrevet 12. januar 2008 Rapporter Del Skrevet 12. januar 2008 Liste over pattern modifiers Lenke til kommentar
ThorB Skrevet 12. januar 2008 Rapporter Del Skrevet 12. januar 2008 Liste over pattern modifiers akkurat da trur jeg skjønner hvorfor jeg ikke fant noe om det The syntax for patterns used in these functions closely resembles Perl. The expression should be enclosed in the delimiters, a forward slash (/), for example. Any character can be used for delimiter as long as it's not alphanumeric or backslash (\). If the delimiter character has to be used in the expression itself, it needs to be escaped by backslash. Since PHP 4.0.4, you can also use Perl-style (), {}, [], and <> matching delimiters. See Pattern Syntax for detailed explanation. så egentlig kunne man ha skrevet: "/ regexppattern /s" takker for oppklaringen. er ikke akkurat så inne i regexp at det gjør noe. får vel legge denne til favoritter, så kan jeg se tilbake på tråden Lenke til kommentar
uranus Skrevet 12. januar 2008 Forfatter Rapporter Del Skrevet 12. januar 2008 Nå prøver jeg og få til å legge til flere punkter på kartet (det klarer jeg), men så tegne polyline mellom hvert punkt. Prøver å lese meg til det nå. Lenke til kommentar
Lurifaksen Skrevet 13. januar 2008 Rapporter Del Skrevet 13. januar 2008 Posten har API for sporingsfunksjonen, så hvis du registrerer deg hos Posten kan du langt enklere lage et slikt program. Se for øvrig vedlagte dokument (det er 2 år gammelt, antagelig har enkelte ting endret seg siden den gang). Dokumentasjon_Sporingslink.doc Lenke til kommentar
Flin Skrevet 14. januar 2008 Rapporter Del Skrevet 14. januar 2008 Takk for det, men den henter faktisk ikke ut noe som helst annet enn toppen av siden, hehe Er ikke helt sikker på om jeg skjønner hva problemet er, når jeg bruker den så henter den ut info om pakken, og det var vel det du ville ha? Lenke til kommentar
ThorB Skrevet 14. januar 2008 Rapporter Del Skrevet 14. januar 2008 Takk for det, men den henter faktisk ikke ut noe som helst annet enn toppen av siden, hehe Er ikke helt sikker på om jeg skjønner hva problemet er, når jeg bruker den så henter den ut info om pakken, og det var vel det du ville ha? hvis du ser på hans kode, så henter den ut info og i tillegg kan han håndere hver enkelt informasjonskapsel, og plassere de hvor han vil. Lenke til kommentar
ThorB Skrevet 14. januar 2008 Rapporter Del Skrevet 14. januar 2008 Posten har API for sporingsfunksjonen, så hvis du registrerer deg hos Posten kan du langt enklere lage et slikt program. Se for øvrig vedlagte dokument (det er 2 år gammelt, antagelig har enkelte ting endret seg siden den gang). å hvor mye koster denne registreringen? må man være firma for å registrere? Lenke til kommentar
Lurifaksen Skrevet 15. januar 2008 Rapporter Del Skrevet 15. januar 2008 Koster ingenting nei - mulig det kun er tilgjengelig for firmaer, det husker jeg ikke. Du kan jo kanskje forsøke å sende en mail å spørre om tilgang til sporings-api. 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å