Проблема с Array

RM
На сайте с 21.06.2011
Offline
77
587

Всем привет! Извиняюсь за глупый вопрос, но уже задолбался, перерыл гору инфы и ничего дельного не нашел... короче у меня есть скрипт:

<?php
$site = "site.ru";
$news = file_get_contents($site);
preg_match_all('|<div id="news-id-.*" .*>(.*)</div>|U', $news, $out);
echo($out);
?>

Так, вот этот скрипт вместо результата выводит Array на экран... уже пробовал и так писать последнюю строку:

echo($out[1]);

И всяко пробовал, ничего не помогает... в выводе должно быть примерно 20 строк html кода, а он не выводится... причем проверял уже и file_get_contents - он работает и страницу скачивает(пробовал так: echo($news)). В чем проблема и как справится с этим array?

Заранее спасибо!

L
На сайте с 07.12.2007
Offline
351
#1

Выводить массив на печать надо через

print_r($out[1])
или печатать по-элементно в цикле. Посмотрите implode() - она собирает массив в строку.

И обратите внимание, что после preg_match() массив $out получается многомерный: $out[0] - найденные полные совпадения, $out[1] - попадание в первый шаблон регулярки и тд.

По print_r($out) можно посмотреть всё.

Ragnarok
На сайте с 25.06.2010
Offline
239
#2

часто пользуюсь

echo VAR_DUMP($out);

//TODO: перестать откладывать на потом
Дмитрий
На сайте с 23.08.2006
Offline
222
#3

echo перед var_dump не нужно

Разрабатываю и автоматизирую на php http://jonnyb.ru/
Ragnarok
На сайте с 25.06.2010
Offline
239
#4
JonnyB:
echo перед var_dump не нужно

не знал, ибо всегда использую как

die(VAR_DUMP($out));

Дмитрий
На сайте с 23.08.2006
Offline
222
#5

в die так же var_dump не нужно передавать :)

L
На сайте с 24.02.2005
Offline
181
#6

С таким синтаксисом не удивительно, что он даже не распарсит ничего. А разве не правильней написать так?

<?php

$site = "site.ru";

$news = file_get_contents($site);

preg_match_all('|<div id="[^\"]*"[^\>]*>([^\<]*)</div>|U', $news, $out);

print_r($out);

?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий