Ik werk met fsockopen om een verbinding te maken naar een proxy server. Dat werkt nu leuk en aardig ik heb ook een functie gemaakt om te checken of er een timeout plaatsvind:
Dat werkt leuk en aardig, maar nu heb ik het volgende:
Hij gaat dus alles ophalen van wat de proxy heeft gedownload, nu geeft hij opzich mooi een timeout als hij ook een timeout krijgt.
Maar het probleem is dat die while lus mooi gewoon door gaat. Dus eigenlijk moet hij alsnog wachten tot hij klaar
Nu heb ik twee vragen:
1 Is het toevallig niet zo dat alle op te halen data eigenlijk al binnen is, dus dat die while lus eigenlijk altijd heel snel zal gaan?
2 Hoe kan ik als dat niet zo is (en volgens mij is punt 1 niet waar) de while lus verbreken als mijn if statement waar is en daarna vrolijk verder gaan met wat er onder de while lus komt?
PHP:
1
2
3
4
5
6
7
8
9
| function timeout_status($fp) { $status = stream_get_meta_data($fp); if($status['timed_out'] == 1) { return(true); } else { return(false); } } |
Dat werkt leuk en aardig, maar nu heb ik het volgende:
PHP:
1
2
3
4
5
6
7
| while (!feof($fp)) { $get_content .= fgets ($fp,128); if(timeout_status($fp) == true) { $results[$proxy_count]['error'] = "Timeout"; } } |
Hij gaat dus alles ophalen van wat de proxy heeft gedownload, nu geeft hij opzich mooi een timeout als hij ook een timeout krijgt.
Maar het probleem is dat die while lus mooi gewoon door gaat. Dus eigenlijk moet hij alsnog wachten tot hij klaar
Nu heb ik twee vragen:
1 Is het toevallig niet zo dat alle op te halen data eigenlijk al binnen is, dus dat die while lus eigenlijk altijd heel snel zal gaan?
2 Hoe kan ik als dat niet zo is (en volgens mij is punt 1 niet waar) de while lus verbreken als mijn if statement waar is en daarna vrolijk verder gaan met wat er onder de while lus komt?
Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen