PHP相当于Ruby的救援
发布时间:2020-12-13 21:49:56 所属栏目:PHP教程 来源:网络整理
导读:没有足够的声誉来正确标记( ruby,PHP,socket,rescue) 我很长一段时间没有练过我的PHP,因为我一直在做更多的Ruby脚本.我很尴尬地请求帮助. 我知道,在Ruby中,我可以使用rescue来防止脚本在出错的情况下崩溃,我希望用PHP实现同样的功能. 例如,在Ruby中: requir
没有足够的声誉来正确标记(
ruby,PHP,socket,rescue)
我很长一段时间没有练过我的PHP,因为我一直在做更多的Ruby脚本.我很尴尬地请求帮助. 我知道,在Ruby中,我可以使用rescue来防止脚本在出错的情况下崩溃,我希望用PHP实现同样的功能. 例如,在Ruby中: require 'socket' begin puts "Connecting to host..." host = TCPSocket.new("169.121.77.3",333) # This will (intentionally) fail to connect,triggering the rescue clause. rescue puts "Something went wrong." # Script continues to run,allowing,for example,the user to correct the host IP. end 我的PHP代码有点乱 – 这已经很长时间了. function check_alive($address,$service_port) { /* Create a TCP/IP socket. */ $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); if ($socket === false) { echo socket_strerror(socket_last_error()); } else { echo null; } $result = socket_connect($socket,$address,$service_port); if ($result === false) { echo socket_strerror(socket_last_error($socket)); return 1; } else { echo null; } socket_close($socket); return 0; } $hosts = [...]; // list of hosts to check foreach($hosts as $key=>$host) { check_alive($hosts); } 基本上,我有一系列主机,我想查看它们是否还活着.没有必要让所有主机都活着,所以这就是我被困住的地方 – 数组中的第一个死主机崩溃了脚本. 任何建议都将非常感激 – 我愿意接受我不完全理解PHP中的套接字连接. 解决方法
PHP等价物是:
try { ... } catch (...) { ... } 如果您使用的是PHP 5.5,那么还有: try { ... } catch (...) { ... } finally { ... } 你可以有几个catch子句,每个子句捕获一个不同的异常类. 最终部分始终运行,包括引发异常时. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |