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

Статус
В этой теме нельзя размещать новые ответы.

apekoff

Создатель
Регистрация
19 Авг 2008
Сообщения
40
Реакции
1
Привет .
Пишу один скриптик не хитрый на кседанте .Возникла проблема ,регуляркой отпарсен путь на странице . Надо перейти на адресс и в конце приписать этот отпарсенный результат . Но он показывается как - Для просмотра ссылки Войди или Зарегистрируйсяarray(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);
 
Дело в том, что в $Adress как раз Array, т.е. массив ))
print_r($Adress); как раз показывает содержимое массива, а чтобы получить конкретное значение, нужно обратиться к этому массиву по ключу: $Adress[ключ]
 
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);
юрл тот же :(
 
а ты массив проверил? может он у тебе пустой получается, поэтому и "юрл тот же :(" покажи что выводит print_r тогда будет легче найти ошибку
 
PHP:
print_r($Adress[0]);
выводит в окне отладки -
Array ( [0] => значение )
 
при разборе регуляркой первый элемент массива результата исходная строка, смотрите следующие элементы массива

покажите результат print_r($Adress);
 
Ну если $Adress - многомерный массив, то $Adress[0] - тоже массив, от него тоже нужно выбрать какой то ключ.
 
Итак решение -
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
 
Итак решение -
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

чего мучались то? тут все русским языком написано:



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

Для поиска первого вхождения нет смысла использовать preg_match_all
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху