gpt4 book ai didi

soap - 检查SoapClient是否存在

转载 作者:行者123 更新时间:2023-12-03 08:58:06 24 4
gpt4 key购买 nike

我正在努力与PHP中的错误检测...

我有一个简单的函数,它使用SoapClient从另一台服务器中获取数据位。相关部分是:

$options = array(
'uri' => 'https://www.php-web-host.com',
'location' => 'https://www.php-web-host.com/API/Country.php',
'trace' => 1);

$client = new SoapClient(NULL, $options);
$CountryCode = strtolower($client->GetCountryCode($_SERVER["REMOTE_ADDR"]));

我目前遇到的问题是,如果我在运行此代码的服务器上未安装SOAP,则会收到500个服务器错误(我没有检查,但我猜测实际的PHP问题是致命异常吗?)

我已经尝试将上面的内容包装在try/catch块中,但显然不会引发异常。我也尝试过set_error_handler等,但是我无法“捕获”此错误。

我需要捕获它的原因(而不是仅仅安装SOAP)是因为它用于广泛分布的代码,因此我需要能够以某种方式在连接之前检查肥皂。

任何帮助深表感谢...

约翰

最佳答案

好的,所以我设法通过使用How do I catch a PHP Fatal Error的periklis示例解决了我的问题。

该示例使用register_shutdown_function,该函数在页面终止(正确或由于错误)时被调用。

register_shutdown_function('shutdownFunction');

function shutdownFunction()
{

$error = error_get_last();

// check if this error was related to my code, if not, ignore it
if ( ($error['type'] == 1) && (strstr(strtolower($error['message']), 'soapclient') ) )
{

print "<h1 style=\"color:red;\">ERROR!</h1>Your server does not appear to have SOAP installed. SOAP is required for this functionaliy";
exit();
}

}

这似乎对我有用...幸福!

关于soap - 检查SoapClient是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17236674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com