1
我正在使用此代碼以及PHP-EWS在Exchange 2010郵箱上創建日曆項目。PHP-EWS SOAP響應是一個對象 - 如何獲取特定部分?
<?php
include ("ExchangeWebServices.php");
include ("EWS_Exception.php");
include ("EWSType.php");
include ("NTLMSoapClient.php");
include ("NTLMStream.php");
include ("NTLMStream/Exchange.php");
include ("NTLMSoapClient/Exchange.php");
$host = "email.domain.com";
$username = "asdfasdf";
$password = "123";
$ews = new ExchangeWebServices($host, $username, $password);
$request->SendMeetingInvitations = 'SendToNone';
$request->SavedItemFolderId->DistinguishedFolderId->Id = 'calendar';
$request->Items->CalendarItem->Subject = 'this is the subject of the email';
$request->Items->CalendarItem->Start = date('c', strtotime('today'));
$request->Items->CalendarItem->End = date('c', strtotime('today + 1 day'));
$request->Items->CalendarItem->IsAllDayEvent = true;
$request->Items->CalendarItem->LegacyFreeBusyStatus = 'Free';
$request->Items->CalendarItem->Categories->String = $category;
$request->Items->CalendarItem->Body->BodyType = 'Text';
$request->Items->CalendarItem->Body->_ = $body;
$response = $ews->CreateItem($request);
print_r($response);
?>
能正常工作,輸出到瀏覽器的響應是這樣的:
stdClass Object ([ResponseMessages] => stdClass Object ([CreateItemResponseMessage] => stdClass Object ([ResponseCode] => NoError [ResponseClass] => Success [Items] => stdClass Object ([CalendarItem] => stdClass Object ([ItemId] => stdClass Object ([Id] => AAASAHJydXVza2FAc3VicmFkLmNvbQBGAAAAAACyAesJgtiMR71+s/kuiAieBwBrnLmGR6RGTakOvWxNjsbfAAAAQwN1AABrnLmGR6RGTakOvWxNjsbfAABcYtppAAA= [ChangeKey] => DwAAABYAAABrnLmGR6RGTakOvWxNjsbfAABcYx9q))))))
我想的唯一的一塊是繼[Id] =>
128字符串。如果我將此對象轉換爲字符串,我可以像這樣解析字符串:
$var = 'stdClass Object ([ResponseMessages] => stdClass Object ([CreateItemResponseMessage] => stdClass Object ([ResponseCode] => NoError [ResponseClass] => Success [Items] => stdClass Object ([CalendarItem] => stdClass Object ([ItemId] => stdClass Object ([Id] => AAASAHJydXVza2FAc3VicmFkLmNvbQBGAAAAAACyAesJgtiMR71+s/kuiAieBwBrnLmGR6RGTakOvWxNjsbfAAAAQwN1AABrnLmGR6RGTakOvWxNjsbfAABcYtpzAAA= [ChangeKey] => DwAAABYAAABrnLmGR6RGTakOvWxNjsbfAABcYzc4))))))';
$regex_pattern = "/ /";
$matches = preg_split($regex_pattern,$var);
print_r($matches[36]);
但是,我很難將對象轉換爲字符串。另外,如果響應稍有變化,我不會得到正確的返回值。查看Object的最佳方法是什麼,並返回[Id] =>
後面的值?