Ik wil in een loop van bepaalde urls wat gegevens ophalen. Echter werkt dit met file_get_contents goed, totdat een url geen 404 geeft of niet echt bestaat.
Ik probeer het alsvolgt te testen:
test.php (bestand om timeout te simuleren)
Als ik dit bestandje met file_get_contents ophaal, duurt het heel lang voordat deze aangeeft dat het iet een geldige url is.
Dit wil ik graag sneller hebben. Ik probeer het dus te testen met een socket connecte alsvolgt:
Wat ik ook probeer, hij geeft aan dat het bestand okee is terwijl dat niet zo is. na 2 seconden zou die moeten stoppen en connection timeout moeten echo-en!
Ik probeer het alsvolgt te testen:
test.php (bestand om timeout te simuleren)
PHP:
1
| sleep(1000); |
Als ik dit bestandje met file_get_contents ophaal, duurt het heel lang voordat deze aangeeft dat het iet een geldige url is.
Dit wil ik graag sneller hebben. Ik probeer het dus te testen met een socket connecte alsvolgt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| $url = "http://www.eendomein.nl/test.php"; $url = parse_url($url); print_r($url); $fp = fsockopen($url["host"],80); if (!$fp) { echo "Unable to open\n"; } else { fwrite($fp,"GET ".$url["path"]." HTTP/1.0\r\n\r\n"); stream_set_timeout($fp,2); $info = stream_get_meta_data($fp); print_r($info); fclose($fp); if ($info['timed_out']) { echo 'Connection timed out!'; } else { echo "OK"; } } |
Wat ik ook probeer, hij geeft aan dat het bestand okee is terwijl dat niet zo is. na 2 seconden zou die moeten stoppen en connection timeout moeten echo-en!