Добрый день,
Я вот столкнулся сегодня с небольшой проблемой. Мне удалось её решить, но я одного я не понял:
Короче вот рабочий кусочек кода
foreach ($this->allowableTags as $tag) {
foreach ($doc->getElementsByTagName($tag) as $element) {
$attributes = $element->attributes;
$attrs = [];
for ($i = 0; $i < $attributes->length; ++$i) {
$attrs[] = $attributes->item($i);
}
foreach ($attrs as $attr) {
$this->clearElement($element, $attr);
}
}
}
А вот нерабочий
foreach ($this->allowableTags as $tag) {
foreach ($doc->getElementsByTagName($tag) as $element) {
$attributes = $element->attributes;
for ($i = 0; $i < $attributes->length; ++$i) {
$attr = $attributes->item($i);
$this->clearElement($element, $attr);
}
}
}
По сути ведь разницы нет, но в первом примере все атрибуты удаляются, а во втором нет. Почему так? И какие есть ещё решения?