|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-04-09 09:01 UTC] kangstarr at hotmail dot com
$fp = fsockopen("kang.kicks-ass.net", "8000", &$errno, &$errstr, 20); //open connection
if(!$fp) {
echo "No Connection";
$success=2; //set if no connection
}
Basically I'm checking to see if my SHOUTcast server is running. If the shoutcast server is not running, and it tries to open the connection I get these html warnings.
Warning: fsockopen() [function.fsockopen]: php_hostconnect: connect failed in e:\inetpub\wwwroot\scast\scastxml.php on line 37
Warning: fsockopen() [function.fsockopen]: unable to connect to kang.kicks-ass.net:8000 in e:\inetpub\wwwroot\scast\scastxml.php on line 37
Fatal error: Maximum execution time of 30 seconds exceeded in e:\inetpub\wwwroot\scast\scastxml.php on line 37
I'm running WinXP, Apache 1.3, PHP 4.3.1
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 01 02:00:01 2025 UTC |
On my windows-system with apache 2.0.53 and php 4.3.11 a call to fsockopen with the timeout-parameter seems to change the maximum-execution-time out the complete script to the timeout-value passed to fsockopen. I the connection-try failes because of a timeout, php raises a fatal error "Fatal error: Maximum execution time of 10 seconds exceeded in test.php on line xxx" and terminates the script-execution. It should not terminate the script but return FASLE after 10 seconds and than should fill the passed $errstr-var with "Connection timeout" or something like that and the $errno-var with the corresponding error-number. On this code: <?php // This hostname should not answer on the socket-request // On windows-Systems any call to a non-open port will // produce a timeout if ($fp = fsockopen('localhost',12345,$errno, $errstr, 10)) { print "connection established"; } else { print "Error: \"$errstr\" [$errno] occured."; } print "\nAfter the fsockopen()" ?> it should return: SNIP--> Error: "Connection timeout" [123] occured. After the fsockopen() <--SNIP but returns SNIP--> Warning: fsockopen(): unable to connect to localhost:12345 in D:\htdocs\test.php on line 5 Fatal error: Maximum execution time of 10 seconds exceeded in D:\htdocs\test.php on line 5 <--SNIP The general error-handling of the fsockopen()-function should fixed to fill the passed $errno and $errstr variables instead of raising warnings. Greets, Dennis