• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Curl - zaczekanie przed pobramiem

Object Storage Arubacloud
0 głosów
192 wizyt
pytanie zadane 27 listopada 2017 w PHP przez BlueWee Użytkownik (730 p.)
Cześć,

chciałbym użyć CURLa do strony, na której skrypt jS załadowuje się po 2 sekundach, jednak curl, który pobiera dane od razu nie wyłapuje danych, które pojawiają się po 2 sekundach. Czy jest możliwość pobrania tych danych po wyznaczonym czasie?

2 odpowiedzi

+1 głos
odpowiedź 27 listopada 2017 przez CzikaCarry Szeryf (75,340 p.)
Przy użyciu samego CURL'a - nie.

CURL pobiera samego HTML'a, natomiast nie wykonuje skryptów JS.

Natomiast możesz zaimplementować coś, co wykona skrypt JS, innymi słowy możesz zainstalować przeglądarkę po stronie serwera i wykonać skrypt. Przykładem takiej przeglądarki server'side może być crowbar.
+1 głos
odpowiedź 27 listopada 2017 przez Chess Szeryf (76,710 p.)

Zacznę od tego, że zapytam się, co ten skrypt PHP ma wykonać? Pobiera jakieś dane z innej strony? Jak tak to moim zdaniem możesz użyć do tego Ajax'a.

Mniej więcej w środu kodu Ajax'a napisz tę linię:

setTimeout(makeRequest,2000);

Odpyta automatycznie server po 2 sekundach.

Myślę, że nie wiedziałbyś jak może wyglądać kod Ajax'a, więc wrzucę template z MDN:

https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started

File testx2.php:

<button id="ajaxButton" type="button">Make a request</button>

<script>
(function() {
  var httpRequest;
  document.getElementById("ajaxButton").addEventListener('click', makeRequest);

  function makeRequest() {
    httpRequest = new XMLHttpRequest();

    if (!httpRequest) {
      alert('Giving up :( Cannot create an XMLHTTP instance');
      return false;
    }
    httpRequest.onreadystatechange = alertContents;
    httpRequest.open('GET', 'testx3.php');
    httpRequest.send();
  }

  function alertContents() {
    if (httpRequest.readyState === XMLHttpRequest.DONE) {
      if (httpRequest.status === 200) {
        alert(httpRequest.responseText);
      } else {
        alert('There was a problem with the request.');
      }
    }
  }
  
  
setTimeout(makeRequest,2000);
  
})();  

</script>

File testx3.php:

<?php 
// your code here
echo 'example';
?>

 

komentarz 27 listopada 2017 przez BlueWee Użytkownik (730 p.)
Masz rację - nie wiedziałbym. :D

Na jakiej zasadzie działa powyższy skrypt? Gdzie mam wkleić link do strony, którą chciałbym pobrać do zmiennej?
komentarz 27 listopada 2017 przez Chess Szeryf (76,710 p.)
To co zostanie wypisane przez echo, czyli to co zwróci server, zostaje wyświetlone w pliku testx2.php. Pokaż kod tego curl'a.

Podobne pytania

0 głosów
1 odpowiedź 435 wizyt
pytanie zadane 16 września 2020 w PHP przez itcloud Gaduła (3,380 p.)
0 głosów
0 odpowiedzi 184 wizyt
pytanie zadane 30 listopada 2019 w PHP przez Eliro Stary wyjadacz (12,160 p.)
0 głosów
1 odpowiedź 980 wizyt
pytanie zadane 25 kwietnia 2019 w PHP przez sensor Użytkownik (680 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...