로또 최신회차 추출하기 > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

로또 최신회차 추출하기 정보

로또 최신회차 추출하기

본문

 

로또 최신회차의 경우 비타주리는 편하게

https://dhlottery.co.kr/gameResult.do?method=byWin 페이지를 curl 로 긁어서 원하는 문자열만 빼오고 있습니다.

 


<?php
$lastLotto = curl_init();
curl_setopt($lastLotto, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($lastLotto, CURLOPT_URL, 'https://dhlottery.co.kr/gameResult.do?method=byWin');
$finalLotto = substr(explode('<caption>', curl_exec($lastLotto))[1], 0, 4);
curl_close($lastLotto);
echo $finalLotto;

 

게시글을 쓰는 이 시점에서는 1138 이 출력됩니다. 페이지가 업뎃될때마다 바뀌겠죠?

페이지에 넣어서 복합 코딩을 해도 좋고 이 번호만 기입된 단일 문서를 만들어서 다시 curl 이나 아작스로 땡겨도 좋고 여하튼 본인 마음입니다.

 

--------------------

 

그런데 저는 체질상 js 파일로 부르는 걸 더 좋아합니다. 아래처럼요.

 


<?php
$lastLotto = curl_init();
curl_setopt($lastLotto, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($lastLotto, CURLOPT_URL, 'https://dhlottery.co.kr/gameResult.do?method=byWin');
$finalLotto = substr(explode('<caption>', curl_exec($lastLotto))[1], 0, 4);
curl_close($lastLotto);
echo 'finalLotto = '.$finalLotto.';';

 

이렇게 하면 아래처럼 표현됩니다.

finalLotto = 1138;

 

--------------------

 

위와 같이 만든 js 형식의 파일을 js 문서 부르듯이 가져와서 변수를 가지고 지지고 볶고 해주면 되겠습니다.

 


<script src="파일경로"></script>
<script>
document.write(finalLotto);
</script>
 

 

--------------------

 

하지만 js 파일도 css 파일과 마찬가지로 새로고침 문제 때문에 언제나 골치가 아픕니다.

더구나 로또 최신회차는 일주일 단위로 바뀌기 때문에 더욱 신경을 써야 합니다.

저는 편하게 파일꼬랑지로 현재시간의 초단위까지를 주는데 날짜가 다이렉트로 보이는게 좀 그래서 이걸 뒤집어서 사용합니다.

 


<script src="파일경로?mode=<?php echo strrev(date('YmdHis')); ?>"></script>
추천
9

댓글 16개

최근 5회차까지 출력

<?php
$lastLotto = curl_init();
curl_setopt($lastLotto, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($lastLotto, CURLOPT_URL, 'https://dhlottery.co.kr/gameResult.do?method=byWin');
$latestRound = substr(explode('<caption>', curl_exec($lastLotto))[1], 0, 4);
curl_close($lastLotto);

function getLottoNumbers($round) {
    $url = "https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=" . $round;
    $json = file_get_contents($url);
    return json_decode($json, true);
}

function printLottoNumbersTable($rounds) {
    echo "<table border='1'>";
    echo "<tr><th>회차</th><th>당첨 번호</th><th>보너스 번호</th></tr>";
    foreach ($rounds as $round) {
        $data = getLottoNumbers($round);
        echo "<tr>";
        echo "<td>" . $data['drwNo'] . "</td>";
        echo "<td>";
        for ($i = 1; $i <= 6; $i++) {
            echo $data["drwtNo$i"] . " ";
        }
        echo "</td>";
        echo "<td>" . $data['bnusNo'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
}

$rounds = range($latestRound, $latestRound - 4);  //4는 5회를 뜻함

printLottoNumbersTable($rounds);
?>

AI 답변
 

로또 번호를 조합하여 당첨될 확률을 계산하는 것은 매우 복잡한 문제입니다. 기본적으로 로또 6/45의 경우, 1등 당첨 확률은 약 8,145,060분의 1입니다. 최근 10회차에서 가장 많이 나온 숫자를 조합한다고 해도, 이 확률이 크게 변하지는 않습니다.

로또 번호는 무작위로 추첨되기 때문에, 특정 숫자가 더 자주 나왔다고 해서 그 숫자가 다시 나올 확률이 높아지는 것은 아닙니다. 따라서, 최근 10회차에서 많이 나온 숫자를 조합하여도 당첨 확률은 여전히 매우 낮습니다. 

;;;;;;

죄송한데 조금만 더 떠 먹여주실분 계실까요??? 

<?php
$lastLotto = curl_init();
curl_setopt($lastLotto, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($lastLotto, CURLOPT_URL,...........................
.........

위 소스를 XX.js 파일로 만들고

페이지에서 

<script src="파일경로 XX.js?mode=<?php.........로 출력하는건가요?

@하늘아래구름 

php 없는 혼또 자바스크립트입니다.

countLotto = 5; 는 최신회차부터 5회연속이란 뜻입니다. 원하는 숫자로요.

 

https://blog.kakaocdn.net/dn/C5FMl/btsJM6Begz2/JxRx0h98QNRvTH0KqxDKA0/tfile.js

위 파일을 본인 서버에 올려 놓고 일주일마다 업뎃해야 합니다.

이걸 자동으로 업뎃하는 코드는 만들어는 놓았는데 배포예정은 없습니다.

 

결과물은 https://wittazzurri.com/editor/html_editor.php 에서 확인해 보세요.

 


<style>
@font-face { font-family:'NEXON Lv1 Gothic OTF'; src:url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-04@2.1/NEXON Lv1 Gothic OTF.woff') format('woff'); }
#lotto645Div { width:100%; max-width:600px; margin:0 auto; }
#lotto645Div div { display:flex; justify-content:space-between; margin:3px 0px; }
#lotto645Div div span { color:#ffffff; font-size:18px; font-weight:bold; font-family:'NEXON Lv1 Gothic OTF'; display:block; text-align:center; padding:10px 0px; border-radius:10px; }
#lotto645Div div .lotto-order { width:15%; background-color:#0a857e; }
#lotto645Div div .lotto-date { width:25%; background-color:#007bc3; }
#lotto645Div div .lotto-0 { width:1%; }
#lotto645Div div .lotto-1 { width:7%; background-color:#fbc400; }
#lotto645Div div .lotto-2 { width:7%; background-color:#69c8f2; }
#lotto645Div div .lotto-3 { width:7%; background-color:#ff7272; }
#lotto645Div div .lotto-4 { width:7%; background-color:#aaaaaa; }
#lotto645Div div .lotto-5 { width:7%; background-color:#b0d840; }
#lotto645Div div .lotto-plus { width:4%; color:#000000; }
</style>
<div id="lotto645Div"></div>
<script src="https://blog.kakaocdn.net/dn/C5FMl/btsJM6Begz2/JxRx0h98QNRvTH0KqxDKA0/tfile.js"></script>
<script>
for (lottoTotal = 1000; this["lotto_" + (lottoTotal + 1)]; lottoTotal++);
countLotto = 5;
function lottoHtml() {
lottoCode = "<span class='lotto-order'>" + (n = arguments[0]) + "</span><span class='lotto-date'>" + this["lotto_" + n][0] + "</span><span class='lotto-0'></span>";
for (i = 1; i <= 6; + i++) lottoCode += "<span class='lotto-" + Math.ceil(this["lotto_" + n][i] / 10) + "'>" + this["lotto_" + n][i] + "</span>";
lottoCode += "<span class='lotto-plus'>+</span>" + "<span class='lotto-" + Math.ceil(this["lotto_" + n][i] / 10) + "'>" + this["lotto_" + n][7] + "</span>";
return lottoCode;
}
for (j = lottoTotal; j > lottoTotal - countLotto; j--) document.querySelector("#lotto645Div").innerHTML += "<div>" + lottoHtml(j) + "</div>";
</script>

전체 5,367
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT