Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Curl multi init
Last Updated: Jul 23 2023 21:37, Started by
phpguru
, Jul 23 2023 19:57
·
2
#1
Posted 23 July 2023 - 19:57
Codul de mai jos consuma resurse cpu. M-am documentat si pe diferite site-uri, usleep cica ar calma problema.
$urls = ["https://wlog.ro/stiri.php" => "wlog.txt", "https://forum.softpedia.com/rss/forums/1-forumul-softpedia-rss-global/" => "softpedia.txt"] ; $curls = [] ; $curl_multi = curl_multi_init() ; foreach ( $urls as $from => $to ) { $curl[$from] = curl_init() ; curl_setopt( $curl[$from], CURLOPT_URL, $from ) ; curl_setopt( $curl[$from], CURLOPT_REFERER, "https://www.google.com" ) ; curl_setopt( $curl[$from], CURLOPT_AUTOREFERER, true ) ; curl_setopt( $curl[$from], CURLOPT_USERAGENT, "Mozilla/5.0" ) ; curl_setopt( $curl[$from], CURLOPT_HEADER, false ) ; curl_setopt( $curl[$from], CURLOPT_RETURNTRANSFER, true ) ; curl_setopt( $curl[$from], CURLOPT_FOLLOWLOCATION, true ) ; curl_setopt( $curl[$from], CURLOPT_TIMEOUT, 20 ) ; curl_setopt( $curl[$from], CURLOPT_CONNECTTIMEOUT, 15 ) ; curl_setopt( $curl[$from], CURLOPT_SSL_VERIFYPEER, false ) ; curl_multi_add_handle( $curl_multi, $curl[$from] ) ; $curls[] = $curl[$from] ; } $active = null ; do { $status = curl_multi_exec( $curl_multi, $active ) ; } while ( $status == CURLM_CALL_MULTI_PERFORM ) ; while ( $active && $status == CURLM_OK ) { if ( curl_multi_select( $curl_multi ) == -1 ) { continue ; // usleep(1); } do { $status = curl_multi_exec( $curl_multi, $active ) ; } while ( $status == CURLM_CALL_MULTI_PERFORM ) ; } foreach ( $urls as $from => $to ) { $magic[$from] = curl_multi_getcontent( $curl[$from] ) ; curl_multi_remove_handle( $curl_multi, $curl[$from] ) ; curl_close( $curl[$from] ) ; $file = fopen( $to, "w" ) or die( "Eroare: fisierul nu poate fi deschis." ) ; fputs( $file, $magic[$from] ) ; fclose( $file ) ; } curl_multi_close( $curl_multi ) ; Am anulat continue; si am adaugat usleep(1) sau usleep(100) sau usleep(1000) sau usleep(10000), in zadar. E codul scris gresit sau imi scapa ceva? Edited by phpguru, 23 July 2023 - 19:58. |
#2
Posted 23 July 2023 - 20:19
Ai neaparat nevoie sa rulezi alea simultan ? Nu poti sa schimbi codul cu cate o conexiune pe rand ? Ar fi mai simplu si nu ar consuma resurse.
Dar alea ar trebui sa le rulezi odata la un anumit timp in mod independent, nu la fiecare accesare a paginii sa le preiei iar ... file_get_contents face exact ce vrei tu din 2 linii de cod ... Edited by modoran, 23 July 2023 - 20:20. |
#3
Posted 23 July 2023 - 21:37
Exemplul din manual are un singur do/while: https://www.php.net/...-multi-exec.php
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users