执行我的状态脚本时看到以下错误:
Warning: Cannot use a scalar value as an array in $result[$array[$i*2]] = $array[$i*2+1];
<?PHP // Set the host and port $host = "ip_goes_here"; $port = port_goes_here; // Open the socket connection to the server $fp = fsockopen("udp://".$host,$port); // Set the string to send to the server $string = "\xff\xff\xff\xffgetinfo"; // Set the socket timeout to 2 seconds socket_set_timeout($fp,2); // Actually send the string fwrite($fp,$string); // Read the first 18 bytes to get rid of the header and do the error checking here if(!fread($fp,18)) { die("Oh God,the pain!"); } // Get the status of the socket,to be used for the length left $status = socket_get_status($fp); // Read the rest $info = fread($fp,$status['unread_bytes']); // Explode the result of the fread into another variable $array = explode("\\",$info); // Loop through and create a result array,with the key being even,the result,odd for($i = 0; $i < count($array)/2; $i++) { $result[$array[$i*2]] = $array[$i*2+1]; } // Print the result for error checking print_r($result); // Close the file pointer fclose($fp);
我提到的那一行导致错误.我不知道我在这里做错什么
您可以尝试在使用变量$result之前,将其作为数组声明.
$result = array(); // Loop through and create a result array,odd for($i = 0; $i < count($array)/2; $i++) { $result[$array[$i*2]] = $array[$i*2+1]; }