Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Otwieranie skryptu w sleep
Forum PHP.pl > Forum > Przedszkole
Destrudo
Hej,

Próbuję zrobić otwieranie dwóch linków w nowym oknie przy użyciu funkcji sleep, ale nie bardzo mam pomysł jak to wykonać. Myślałem nad otwieraniem popupa .js (żeby mi nie przestało wykonywać skryptu), ale nie do końca ten popup mi działał, w ten sposób:
  1. <?php
  2.  
  3. popup .js z linkiem
  4.  
  5. sleep(10);
  6.  
  7. drugi popup .js z linkiem
  8.  
  9. ?>

Popupy, które wstawiałem - żaden nie chciał mi zadziałać w tej funkcji i nie bardzo wiem, czy to w ogóle ma szanse powodzenia.
nospor
Do otwierania popup uzywa js a nie php. Do zarzadzania kiedys popup ma sie otworzyc uzywa sie js a nie php
php - server
js - klient
Destrudo
Chodzi mi o to, aby cronem odpalić plik, który otworzy mi 2 linki i nie mam pomysłu na to właśnie :/
viking
Czyli co mają te linki do popupów?
nospor
zeby otworzyc popup musisz miec przegladarke.
Odpalajac cos w cron nie masz przegladarki.

Moze by tak wpierw ogarnac troche podstawy architektury?
Jak chcesz odpalic jakis url w php to uzywa sie do tego CURL
Destrudo
Nie miałem na to właśnie pomysłu, stąd pytanie. Potrzebuje wykonać x skryptów z folderu y, przy czym skryptów x mogą być setki, stąd deklarować każdego w cronie nie chciałem, a nie bardzo mam pomysł jak je wszystkie odpalić w odstępach 10 sekundowych i czego do tego użyć
nospor
Juz ci napisalem czego uzyc:
CURL

I naucz sie wkoncu pisac co chcesz osiagnac docelowo a nie co ci sie wydaje ze do tego sluzy
Destrudo
Użyłem takiego kodu:
  1. <?php
  2. // create both cURL resources
  3. $ch1 = curl_init();
  4. $ch2 = curl_init();
  5.  
  6. // set URL and other appropriate options
  7. curl_setopt($ch1, CURLOPT_URL, "http://google.com");
  8. curl_setopt($ch1, CURLOPT_HEADER, 10);
  9. curl_setopt($ch2, CURLOPT_URL, "http://onet.pl");
  10. curl_setopt($ch2, CURLOPT_HEADER, 10);
  11.  
  12. //create the multiple cURL handle
  13. $mh = curl_multi_init();
  14.  
  15. //add the two handles
  16. curl_multi_add_handle($mh,$ch1);
  17. curl_multi_add_handle($mh,$ch2);
  18.  
  19. $active = null;
  20. //execute the handles
  21. do {
  22. $mrc = curl_multi_exec($mh, $active);
  23. } while ($mrc == CURLM_CALL_MULTI_PERFORM);
  24.  
  25. while ($active && $mrc == CURLM_OK) {
  26. if (curl_multi_select($mh) != -1) {
  27. do {
  28. $mrc = curl_multi_exec($mh, $active);
  29. } while ($mrc == CURLM_CALL_MULTI_PERFORM);
  30. }
  31. }
  32.  
  33. //close the handles
  34. curl_multi_remove_handle($mh, $ch1);
  35. curl_multi_remove_handle($mh, $ch2);
  36. curl_multi_close($mh);
  37.  
  38. ?>

skopiowanego stąd - http://www.php.net/manual/en/function.curl-multi-init.php

i za nic nie chce mi go wykonać. A to tylko 2 linki, a co jeśli byłoby ich 200? Czy może coś źle zrobiłem i funkcja curl_multi_init się do tego nie nadaje?
nospor
Nie zadne MULTI a zwykly init
http://php.net/manual/en/function.curl-init.php

I wlacz logowanie bledow i przejrzyj logi.
viking
A te twoje skrypty x z folderu y są na twoim serwerze?
https://www.cyberciti.biz/faq/bash-loop-over-file/
Destrudo
viking, tak, na moim, ale basha widzę pierwszy raz na oczy i nie jestem w stanie ułożyć z tego skryptu, który otworzy mi wszystkie pliki z katalogu x, ktore znajdują się pod home/domain.... i to jeszcze w odstępach 10 sekundowych, stąd pomyślałem, żeby je włączać jak z przeglądarki
viking
Ale co, chcesz przetworzyć 1 plik, odczekać 10s i kolejny? Sam pisałeś że mogą być setki. Dnia nie starczy.
Destrudo
Dokładnie to chcę zrobić smile.gif (najwyżej się zmieni odstęp czasowy)
viking
Robisz to co wyżej w linku, w pętli sleep 10, i uruchomienie to pewnie przez parser php więc zamiast echo php nazwa pliku. Chociaż moim zdaniem z tyłu strony się za to zabierasz.
Destrudo
  1. <?php
  2.  
  3.  
  4.  
  5. // current time
  6. $ch = curl_init();
  7. curl_setopt($ch, CURLOPT_URL, "http://www.onet.pl/");
  8. curl_setopt($ch, CURLOPT_HEADER, 0);
  9. curl_exec($ch);
  10. curl_close($ch);
  11.  
  12. // sleep for 10 seconds
  13. sleep(10);
  14.  
  15. // wake up !
  16. $chx = curl_init();
  17. curl_setopt($chx, CURLOPT_URL, "http://www.wp.pl/");
  18. curl_setopt($chx, CURLOPT_HEADER, 0);
  19. curl_exec($chx);
  20. curl_close($chx);
  21.  
  22.  
  23.  
  24. ?>


Wiem, że źle, tylko nie wiem dlaczego źle. Co w tym nie tak?
viking
Ja mowię o bashu. W którym też możesz curl, wget czy co tam. Zamiast to pisać szybciej byś wygooglał jak to zrobić.
Destrudo
Za nic nie mogłem znaleźć nic z basha (nie ogarniam tego tematu w ogóle), więc pomyślałem nad czymś takim:

  1. $katalog="kat";
  2. $dir = opendir($katalog);
  3. while(false !== ($file = readdir($dir)))
  4. if($file != '.' && $file != '..')
  5. include 'kat/'.$file.sleep(10);


i nie działa, ale to już działa: (bez funkcji sleep)
  1. $katalog="kat";
  2. $dir = opendir($katalog);
  3. while(false !== ($file = readdir($dir)))
  4. if($file != '.' && $file != '..')
  5. include 'kat/'.$file.'';


i teraz się zastanawiam co jest nie tak
nospor
JA rozumiem, ze mozesz jeszcze nie ogarniac php, ale czy ty nie przesadzasz z lekka??
include 'kat/'.$file.sleep(10);
Po grzyba laczysz sleep do includowanej sciezki pliku? Sciezka pliku to sciezka pliku, a sleep to sleep. sleep to oddzielna komenda i ma byc jako komenda w nowej linii


  1. if($file != '.' && $file != '..') {
  2. include 'kat/'.$file.'';
  3. sleep(10);
  4. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.