Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><strong>Codes Array:</strong></p> <pre><code>$codes_texts = [ 0 =&gt; 'OK', 1 =&gt; 'UNSUPPORTED_PROTOCOL', 2 =&gt; 'FAILED_INIT', 3 =&gt; 'URL_MALFORMAT', 4 =&gt; 'URL_MALFORMAT_USER', 5 =&gt; 'COULDNT_RESOLVE_PROXY', 6 =&gt; 'COULDNT_RESOLVE_HOST', 7 =&gt; 'COULDNT_CONNECT', 8 =&gt; 'FTP_WEIRD_SERVER_REPLY', 9 =&gt; 'FTP_ACCESS_DENIED', 10 =&gt; 'FTP_USER_PASSWORD_INCORRECT', 11 =&gt; 'FTP_WEIRD_PASS_REPLY', 12 =&gt; 'FTP_WEIRD_USER_REPLY', 13 =&gt; 'FTP_WEIRD_PASV_REPLY', 14 =&gt; 'FTP_WEIRD_227_FORMAT', 15 =&gt; 'FTP_CANT_GET_HOST', 16 =&gt; 'FTP_CANT_RECONNECT', 17 =&gt; 'FTP_COULDNT_SET_BINARY', 18 =&gt; 'PARTIAL_FILE', 19 =&gt; 'FTP_COULDNT_RETR_FILE', 20 =&gt; 'FTP_WRITE_ERROR', 21 =&gt; 'FTP_QUOTE_ERROR', 22 =&gt; 'HTTP_NOT_FOUND', 23 =&gt; 'WRITE_ERROR', 24 =&gt; 'MALFORMAT_USER', 25 =&gt; 'FTP_COULDNT_STOR_FILE', 26 =&gt; 'READ_ERROR', 27 =&gt; 'OUT_OF_MEMORY', 28 =&gt; 'OPERATION_TIMEOUTED', 29 =&gt; 'FTP_COULDNT_SET_ASCII', 30 =&gt; 'FTP_PORT_FAILED', 31 =&gt; 'FTP_COULDNT_USE_REST', 32 =&gt; 'FTP_COULDNT_GET_SIZE', 33 =&gt; 'HTTP_RANGE_ERROR', 34 =&gt; 'HTTP_POST_ERROR', 35 =&gt; 'SSL_CONNECT_ERROR', 36 =&gt; 'FTP_BAD_DOWNLOAD_RESUME', 37 =&gt; 'FILE_COULDNT_READ_FILE', 38 =&gt; 'LDAP_CANNOT_BIND', 39 =&gt; 'LDAP_SEARCH_FAILED', 40 =&gt; 'LIBRARY_NOT_FOUND', 41 =&gt; 'FUNCTION_NOT_FOUND', 42 =&gt; 'ABORTED_BY_CALLBACK', 43 =&gt; 'BAD_FUNCTION_ARGUMENT', 44 =&gt; 'BAD_CALLING_ORDER', 45 =&gt; 'HTTP_PORT_FAILED', 46 =&gt; 'BAD_PASSWORD_ENTERED', 47 =&gt; 'TOO_MANY_REDIRECTS', 48 =&gt; 'UNKNOWN_TELNET_OPTION', 49 =&gt; 'TELNET_OPTION_SYNTAX', 50 =&gt; 'OBSOLETE', 51 =&gt; 'SSL_PEER_CERTIFICATE', 52 =&gt; 'GOT_NOTHING', 53 =&gt; 'SSL_ENGINE_NOTFOUND', 54 =&gt; 'SSL_ENGINE_SETFAILED', 55 =&gt; 'SEND_ERROR', 56 =&gt; 'RECV_ERROR', 57 =&gt; 'SHARE_IN_USE', 58 =&gt; 'SSL_CERTPROBLEM', 59 =&gt; 'SSL_CIPHER', 60 =&gt; 'SSL_CACERT', 61 =&gt; 'BAD_CONTENT_ENCODING', 62 =&gt; 'LDAP_INVALID_URL', 63 =&gt; 'FILESIZE_EXCEEDED', 64 =&gt; 'FTP_SSL_FAILED', ]; </code></pre> <p><strong>Script:</strong></p> <pre><code>$urls = array( "http://php.net/", "http://404.php.net/", "httpnot://php.net/", ); $mh = curl_multi_init(); $codes = []; $result = []; $connects = []; foreach ($urls as $i =&gt; $url) { $connects[$i] = curl_init($url); curl_setopt($connects[$i], CURLOPT_RETURNTRANSFER, 1); curl_multi_add_handle($mh, $connects[$i]); } do { $status = curl_multi_exec($mh, $active); $info = curl_multi_info_read($mh, $count); if ($info !== false) { $codes[(int)$info['handle']] = (int)$info['result']; } } while ($status === CURLM_CALL_MULTI_PERFORM || $active || $count); foreach ($connects as $i =&gt; $connect) { $result[$i] = [ 'url' =&gt; $urls[$i], 'code' =&gt; $codes[(int)$connect], // 0 - 64 = curl_errno 'code_text' =&gt; $codes_texts[$codes[(int)$connect]], 'body_len' =&gt; strlen(curl_multi_getcontent($connect)), ]; curl_close($connect); } curl_multi_close($mh); echo "&lt;pre&gt;" . var_export($result, 1) . "&lt;/pre&gt;"; </code></pre> <p><strong>Result:</strong></p> <pre><code>array ( 0 =&gt; array ( 'url' =&gt; 'http://php.net/', 'code' =&gt; 0, 'code_text' =&gt; 'OK', 'body_len' =&gt; 34462, ), 1 =&gt; array ( 'url' =&gt; 'http://404.php.net/', 'code' =&gt; 6, 'code_text' =&gt; 'COULDNT_RESOLVE_HOST', 'body_len' =&gt; 0, ), 2 =&gt; array ( 'url' =&gt; 'httpnot://php.net/', 'code' =&gt; 1, 'code_text' =&gt; 'UNSUPPORTED_PROTOCOL', 'body_len' =&gt; 0, ), ) </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload