Я использую ScraperWiki для создания простого скребка экрана, получающего ссылки из интернет-магазина. В магазине есть несколько страниц, поэтому я хочу получить все ссылки с первой страницы, найти «следующую» кнопку в пейджере, перейти к этому URL-адресу, найти все ссылки оттуда, перейти на следующую страницу и так далее, так далее.Переменные PHP в функции скребка
Вот, где я нахожусь. ScraperWiki использует простой HTML DOM и CSS селекторы:
<?php
require 'scraperwiki/simple_html_dom.php';
function nextPage(){
$next = $html->find("li.pager-next a");
$nextUrl = 'http://www.domain.com';
$nextUrl .= $next->href . "\n";
getLinks($nextUrl);
}
function getLinks($url){ // gets links from product list page
$html_content = scraperwiki::scrape($url);
$html = str_get_html($html_content);
$x = 0;
foreach ($html->find("div.views-row a.imagecache-product_list") as $el) {
$url = $el->href . "\n";
$allLinks[$x] = 'http://www.domain.com';
$allLinks[$x] .= $url;
$x++;
}
nextPage();
}
getLinks("http://www.domain.com/foo/bar");
print_r($allLinks);
?>
getLinks()
функция отлично работает, когда НЕ в функции, но я получаю ошибки «необъявленные переменные», когда я положил их в функции. Мой вопрос:
В PHP я могу объявить пустые переменные/массивы для использования во всем скрипте, например, в Javascript? Я прочитал несколько ответов здесь, в Stack, который, по-видимому, подразумевает, что нет необходимости объявлять, что кажется странным.
Переменный объем все еще существует. Используйте либо параметры, либо приглашайте переменные «global» в каждую функцию. – mario
Возможный дубликат [Неопределенная ошибка переменной при вызове функции из другого фрагмента] (http://stackoverflow.com/questions/14301958/undefined-variable-error-when-calling-a-function-from-another-snippet) – mario
@mario Приветствия за это, не смогли найти хорошую ссылку. Здесь проблема заключается в том, что до того, как функция называется, переменные не имеют значения, поэтому я не могу их объявить. Каков наилучший способ передать их в приведенном выше примере? – Jascination