Destrudo
9.02.2017, 09:25:54
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:
<?php
popup .js z linkiem
drugi popup .js z linkiem
?>
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
9.02.2017, 09:57:45
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
9.02.2017, 10:02:49
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
9.02.2017, 10:04:33
Czyli co mają te linki do popupów?
nospor
9.02.2017, 10:06:29
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
9.02.2017, 10:14:08
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
9.02.2017, 10:23:52
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
9.02.2017, 10:49:14
Użyłem takiego kodu:
<?php
// create both cURL resources
$ch1 = curl_init();
$ch2 = curl_init();
// set URL and other appropriate options
curl_setopt($ch1, CURLOPT_URL, "http://google.com");
curl_setopt($ch1, CURLOPT_HEADER, 10);
curl_setopt($ch2, CURLOPT_URL, "http://onet.pl");
curl_setopt($ch2, CURLOPT_HEADER, 10);
//create the multiple cURL handle
$mh = curl_multi_init();
//add the two handles
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$active = null;
//execute the handles
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
//close the handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>
skopiowanego stąd -
http://www.php.net/manual/en/function.curl-multi-init.phpi 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
9.02.2017, 10:50:45
Nie zadne MULTI a zwykly init
http://php.net/manual/en/function.curl-init.phpI wlacz logowanie bledow i przejrzyj logi.
viking
9.02.2017, 10:51:25
A te twoje skrypty x z folderu y są na twoim serwerze?
https://www.cyberciti.biz/faq/bash-loop-over-file/
Destrudo
9.02.2017, 10:53:55
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
9.02.2017, 10:56:55
Ale co, chcesz przetworzyć 1 plik, odczekać 10s i kolejny? Sam pisałeś że mogą być setki. Dnia nie starczy.
Destrudo
9.02.2017, 10:58:21
Dokładnie to chcę zrobić

(najwyżej się zmieni odstęp czasowy)
viking
9.02.2017, 11:04:37
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
9.02.2017, 11:05:35
<?php
// current time
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.onet.pl/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
// sleep for 10 seconds
// wake up !
$chx = curl_init();
curl_setopt($chx, CURLOPT_URL, "http://www.wp.pl/");
curl_setopt($chx, CURLOPT_HEADER, 0);
curl_exec($chx);
curl_close($chx);
?>
Wiem, że źle, tylko nie wiem dlaczego źle. Co w tym nie tak?
viking
9.02.2017, 11:08:48
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
9.02.2017, 13:56:05
Za nic nie mogłem znaleźć nic z basha (nie ogarniam tego tematu w ogóle), więc pomyślałem nad czymś takim:
$katalog="kat";
while(false !== ($file = readdir($dir))) if($file != '.' && $file != '..')
include 'kat/'.$file.sleep(10
);
i nie działa, ale to już działa: (bez funkcji sleep)
$katalog="kat";
while(false !== ($file = readdir($dir))) if($file != '.' && $file != '..')
include 'kat/'.$file.'';
i teraz się zastanawiam co jest nie tak
nospor
9.02.2017, 13:58:39
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
if($file != '.' && $file != '..') {
include 'kat/'.$file.'';
}
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.