извлечь данные из file_get_contents - PullRequest
0 голосов
/ 14 июля 2020

Я использовал данные Webex для отображения собрания на моем веб-сайте, однако у меня возникают проблемы с возвратом данных.

$sitename = "sitename";       
$username = "api@webex.com";
$password = "password!";

$XML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$XML .="<serv:message xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">";
$XML .="        <header>";
$XML .="                <securityContext>";
$XML .="                        <webExID>$username</webExID>";
$XML .="                        <password>$password</password>";
$XML .="                        <siteName>$sitename</siteName>";

$XML .="                </securityContext>";
$XML .="        </header>";
$XML .="        <body>";
$XML .="                <bodyContent xsi:type=\"java:com.webex.service.binding.meeting.GetjoinurlMeeting\">";
$XML .="                <meetingKey>1460755337</meetingKey>";
$XML .="                </bodyContent>";
$XML .="        </body>";
$XML .="</serv:message>";

$request = stream_context_create(array("http"=>array("method"=>"POST","header"=>"Content-Type:text/xml","content"=>$XML)));

$response = file_get_contents("https://$sitename.webex.com/WBXService/XMLService", true, $request);

Фактический XML ответ введите описание изображения здесь , и я получаю следующий ответ после передачи запроса заголовка

SUCCESSPRIMARYfalsefalseC!sco123falsefalseMeeting 13 jjb87@miami.edufalse1myemail@gmail.commyemail@gmail.comPERSONALmyemail@gmail.comVISITOR1097099526INVITE1467275084ENGLISHATTENDEE1truetruetruetruetruetruetruetruetruetruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruetruetruefalsefalsetruefalsetruefalsefalsetruetruefalsefalsefalsetruefalsefalsetruefalsefalsefalsefalsefalsefalsefalsetruefalsefalsefalsetruefalsefalsefalsetruetruetrue07/10/2020 12:00:004GMT-08:00, Pacific (San Jose)20900rachel@modiht.comfalsefalse000falsefalsefalseCALLBACK50falsefalseUS+1-415-655-00011-844-621-3956falsefalseNO_REPEATtruerachel@modiht.comtruefalse0015falsefalsefalse0falsefalse146727508475c9ca6757090f047a57136a85ee09cbNOT_INPROGRESSfalsefalsefalse50223710221954770ec6374b4ace66655ed33b7bcf0a9ac61019001truehttps://api.webex.com/modiht/j.php?MTID=m32de914bf4153f200c60e1ad420376ed1467275084@api.webex.com1467275084@api.webex.com

, поэтому мой вопрос: как я могу получить последний 1467275084@api.webex.com из ответа

, пожалуйста, помогите мне на это.

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Хорошо, я сделал это с предварительным матчем, вот ответ на мой вопрос

$emails = getLastEmailFromString($response);
$arrEmail = implode("\n", $emails);
$lastEMail = end( $emails);
return $lastEMail;

function getLastEmailFromString($string){
  preg_match_all("/[\._a-zA-Z0-9-]+@[\.api.webex.com-]+/i", $string, $matches);
  return $matches[0];
}
0 голосов
/ 14 июля 2020

метод file() возвращает результаты в виде массива, который может быть более подходящим для ваших нужд.

$response = file("https://$sitename.webex.com/WBXService/XMLService", true, $request);
$lastLine = $response[count($response)-1];

https://www.php.net/manual/en/function.file.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...