В дополнение к моему вопросу здесь , я действительно задаюсь вопросом, почему я не получаю строки, добавленные в мой массив, со следующим кодом.
Я получаю 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] является SimpleXMLElement, я это понимаю. Но почему атрибут 'src' объекта THAT не является, а является $ source как строка, когда я ссылаюсь на него как $i['src']
?