@Sofard

Цикл foreach при echo выводит просто array?

Здравствуйте! Впервые столкнулся с проблемой. Парсю сайт, все что парсится с помощью preg_match_all идет в массив $title
Затем пробую массив перебрать циклом foreach, но в итоге при попытке все это вывести echo() , выводится просто слово array. При var_dump или print_r переменная $key выводится как массив прямо в цикле foreach. Что пошло не так?

$txt = "Doctor";
	$str_replsace = str_replace(" ", "+", $txt);
	$content = file_get_contents("https://www.bbc.co.uk/search?q=$str_replsace");
	
	preg_match_all('/<p class="css-1aofmbn-PromoHeadline e1f5wbog2"[^>]*?>(.*?)<\/p>/si', $content, $title);
	
	$titles= array_unique($title);

	foreach ($titles as $key) {
		echo $key;
	}
  • Вопрос задан
  • 253 просмотра
Решения вопроса 2
@galaxy
Так сделайте var_dump($title) до цикла и все поймете.
Ответ написан
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Посмотрите следущий вариант кода:
$txt = "Doctor";
$str_replsace = str_replace(" ", "+", $txt);
$content = file_get_contents("https://www.bbc.co.uk/search?q=$str_replsace");


preg_match_all('/<a [^>]+><span aria-hidden="false">([^<]+)<\/span><\/a>/im', $content, $matches);

$titles= array_unique($matches[1]);

//var_dump($titles);

foreach ($titles as $title) {
    echo $title . PHP_EOL;
}


На мой взгляд он должен работать. Проверить можно на PHPize.online
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы