Вы должны зарегистрировать пространство имен для каждого объекта simpleXMLElement, который вы используете.
$xml = new SimpleXMLElement($r);
$xml->registerXPathNamespace('e', 'http://www.webex.com/schemas/2002/06/service/event');
foreach($xml->xpath('//e:event') as $event) {
$event->registerXPathNamespace('e', 'http://www.webex.com/schemas/2002/06/service/event');
var_export($event->xpath('//e:sessionKey'));
}
Пространство имен также должно быть объявлено где-то в файле xml.
<event:event xmlns:event="http://www.webex.com/schemas/2002/06/service/event">
...
Метод Топор также описан. Вы можете пропустить registerXPathNamespace, если знаете, что xml-файл всегда будет использовать тот же префикс.
Как сказал Илья в комментариях, MID - это функция подстроки.
То, что делает этот код, генерирует случайное число от 1 до 10, если число равно 3 или 6, оно будет зациклено и создаст другое случайное число, вероятно потому, что формат строки - дд / мм / гггг мм / дд / гггг, дд-мм-гггг и т. д., где 3-й и 6-й символы не являются числовыми.
Если случайное число не равно 3 или 6, оно выйдет из цикла и вернет символ, который находится в случайной позиции.
Не уверен, почему в то время как для условия While задано условие P> 10, поскольку RANDINT не должен возвращать значение больше 10.