Невозможно напечатать ссылки в другой функции - PullRequest
0 голосов
/ 15 сентября 2018

Я написал некоторый код в php, чтобы очистить некоторые предпочтительные ссылки с главной страницы википедии. Когда я выполняю свой скрипт, ссылки проходят соответственно.

Однако в этот момент я определил две функции в своем скрипте, чтобы научиться передавать ссылки из одной функции в другую. Теперь моя цель - напечатать ссылки в последней функции, но она печатает только первую ссылку и ничего больше.

Если я использую только эту функцию fetch_wiki_links(), я могу получить несколько ссылок, но когда я пытаюсь распечатать одно и то же в get_links_in_ano_func(), тогда печатается только первая ссылка.

Как мне получить их все, даже когда я использую вторую функцию?

Это то, что я написал до сих пор:

include("simple_html_dom.php");
$prefix = "https://en.wikipedia.org";
function fetch_wiki_links($prefix)
{
    $weblink = "https://en.wikipedia.org/wiki/Main_Page";
    $htmldoc   = file_get_html($weblink);
    foreach ($htmldoc->find("a[href^='/wiki/']") as $a) {
        $links          = $a->href . '<br>';
        $absolute_links = $prefix . $links;
        return $absolute_links;
    }
}
function get_links_in_ano_func($absolute_links)
{
    echo $absolute_links;
}
$items = fetch_wiki_links($prefix);
get_links_in_ano_func($items);

1 Ответ

0 голосов
/ 15 сентября 2018

Ваша функция вернула значение на самой первой итерации.Вам понадобится что-то вроде этого:

function fetch_wiki_links($prefix)
{
    $weblink = "https://en.wikipedia.org/wiki/Main_Page";
    $htmldoc   = file_get_html($weblink);
    $absolute_links = array();
    foreach ($htmldoc->find("a[href^='/wiki/']") as $a) {
        $links          = $a->href . '<br>';
        $absolute_links []= $prefix . $links;
    }
    return implode("\n", $absolute_links);
}
...