У вас есть некоторые существенные проблемы с логикой и оператором в вашем while
состоянии. |
- это побитовое сравнение ИЛИ, и похоже, что вы действительно хотите использовать логическое И &&
, поскольку ваш цикл должен продолжаться, пока значение узла не равно MON или TUE:
Я бы рекомендовал хранить nodeValue вне цикла while и сравнивать переменную для удобства чтения:
$i = 0;
// Store the first node value ahead of the loop
$currentNode = trim(substr($elements->item($i)->nodeValue, 0, 3));
// Test it's neither MON nor TUE
// That is, "not equal to 'MON' *AND* not equal to 'TUE'"
while ($currentNode !== "MON" && $currentNode !== "TUE") {
echo $elements->item($i)->nodeValue;
$i=$i+1;
// Then reassign $currentNode after $i increments
$currentNode = trim(substr($elements->item($i)->nodeValue, 0, 3));
}