В дополнение к моему вопросу здесь мне действительно интересно, почему я не получаю строки, добавленные в мой массив со следующим кодом.
Я получаю некоторый HTML из внешнего источника с этим:
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xml = @simplexml_import_dom($doc); // just to make xpath more simple
$images = $xml->xpath('//img');
$sources = array();
Вот массив изображений:
Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[alt] => techcrunch logo
[src] => http://s2.wp.com/wp-content/themes/vip/tctechcrunch/images/logos_small/techcrunch2.png?m=1265111136g
)
)
...
)
Затем я добавил источники в свой массив с помощью:
foreach ($images as $i) {
array_push($sources, $i['src']);
}
Но когда я печатаю результаты:
echo "<pre>";
print_r($sources);
die();
Я получаю это:
Array
(
[0] => SimpleXMLElement Object
(
[0] => http://www.domain.com/someimages.jpg
)
...
)
Почему $i['src']
не рассматривается как строка? Разве оригинальный элемент [src] не отмечен там, где я печатаю $ images строку внутри?
Другими словами, $ images [0] - это элемент SimpleXMLEle, я понимаю это. Но , почему атрибут 'src' объекта THAT не находится, а находится в $ sources в виде строки, когда я ссылаюсь на него как $i['src']
?