Работа с массивами

Тема в разделе "PHP", создана пользователем apekoff, 15 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. apekoff

    apekoff Создатель

    Регистр.:
    19 авг 2008
    Сообщения:
    40
    Симпатии:
    1
    Привет .
    Пишу один скриптик не хитрый на кседанте .Возникла проблема ,регуляркой отпарсен путь на странице . Надо перейти на адресс и в конце приписать этот отпарсенный результат . Но он показывается как - http://adress.comarray(array здесь отпарсенный результат должен быть) в итоге идет переход на неправильный адресс
    PHP:
    $res2$webpage->get_source();
    preg_match_all("здесь регулярка",$res2,$Adress);//$Adress на странице в единственно экземляре
    print_r($Adress);//найденный результат показывается в виде массива
    $browser->navigate("http://adress.com$Adress");
    $browser->wait_for(240,1);
    как получить значение $Adress а не Array:thenks:
    тоесть может быть как то так -
    PHP:
    $url1"http://adress.com";
    $url2$Adress;
    $url= ($url1,$url2);
     
  2. antn

    antn Постоялец

    Регистр.:
    11 июл 2009
    Сообщения:
    104
    Симпатии:
    30
    Дело в том, что в $Adress как раз Array, т.е. массив ))
    print_r($Adress); как раз показывает содержимое массива, а чтобы получить конкретное значение, нужно обратиться к этому массиву по ключу: $Adress[ключ]
     
  3. apekoff

    apekoff Создатель

    Регистр.:
    19 авг 2008
    Сообщения:
    40
    Симпатии:
    1
    PHP:
    $res2$webpage->get_source();
    preg_match_all("здесь регулярка",$res2,$Adress);//$Adress на странице в единственно экземляре
    print_r($Adress);//найденный результат показывается в виде массива
    $browser->navigate("http://adress.com$Adress[0]");
    $browser->wait_for(240,1);
    юрл тот же :(
     
  4. r.serge

    r.serge Создатель

    Регистр.:
    28 дек 2007
    Сообщения:
    39
    Симпатии:
    5
    а ты массив проверил? может он у тебе пустой получается, поэтому и "юрл тот же :(" покажи что выводит print_r тогда будет легче найти ошибку
     
  5. apekoff

    apekoff Создатель

    Регистр.:
    19 авг 2008
    Сообщения:
    40
    Симпатии:
    1
    PHP:
    print_r($Adress[0]);
    выводит в окне отладки -
    Array ( [0] => значение )
     
  6. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    при разборе регуляркой первый элемент массива результата исходная строка, смотрите следующие элементы массива

    покажите результат print_r($Adress);
     
  7. antn

    antn Постоялец

    Регистр.:
    11 июл 2009
    Сообщения:
    104
    Симпатии:
    30
    Ну если $Adress - многомерный массив, то $Adress[0] - тоже массив, от него тоже нужно выбрать какой то ключ.
     
  8. apekoff

    apekoff Создатель

    Регистр.:
    19 авг 2008
    Сообщения:
    40
    Симпатии:
    1
    Итак решение -
    PHP:
    $res2$webpage->get_source();
    preg_match("здесь регулярка",$res2,$Adress);//$Adress на странице в единственно экземляре,исходя из предыдущего поста убрал - _all
    print_r($Adress[0]);//найденный результат показывается значением !
    $browser->navigate("http://adress.com$Adress[0]");
    $browser->wait_for(240,1);
    в итоге идет переход по валидному юрлу .Всем спасибо!
    Получается для единичного поиска значения лучше использовать просто preg_match
     
  9. pori

    pori Постоялец

    Регистр.:
    30 авг 2009
    Сообщения:
    114
    Симпатии:
    18
    чего мучались то? тут все русским языком написано:

    http://www.softtime.ru/dic/id_dic=136&id_group=3

    прочитайте, посмотрите примеры и все вопросы отпадут сразу.

    Для поиска первого вхождения нет смысла использовать preg_match_all
     
Статус темы:
Закрыта.