@invisii

Как объединить два цикла в PHP?

Доброго дня всем добрым людям.

Есть скрипт который ищет в файле ссылки, ходит по ним и парсит картинки. Разделен на два цикла.
На выходе получаем скачанные картинки, путь откуда все начиналось (оригинальный путь) и новый путь до скачанной картинки.
Как их объединить, чтобы получился к примеру вид 'оригинальный путь ($arr_orig[1]) -> новый путь ($newpath)'.

Пример начальной ссылки, которую находит первый preg_match_all:
//embed.gettyimages.com/embed/537375235?et=OCOMvawjS9hbD5Z95MESBg&viewMoreLink=off&sig=4UDqZepNVDpcTJAlf-znsP3c5S-PsKb0RhWUeVWEdqM=

Это нужно для того, чтобы дальше в этом же файле поменять старый путь на новый. Возможно надо сразу это и делать..

Пока получается их собрать только по отдельности, и то оригинальный путь выдает в виде массива.

Ниже сам код:
$fileName = 'file.sql';
$arrs_orig = file_get_contents($fileName);
$path = dirname(__FILE__) . '/download/';
 
preg_match_all('/<iframe src=\\\"(.*?)\\\"/is', $arrs_orig, $arr_orig); 
$del038 = str_replace('#038;', '', $arr_orig[1]);
//print_r( $del038);

foreach ($del038 as $key1) {
	$result1 = file_get_contents('http:'.$key1);
	preg_match_all('/<meta property="og:image" content="(.*?)"/is', $result1, $result2); 
	$result2 = str_replace('amp;', '', $result2[1]);

		foreach ($result2 as $key2) {
					
			$parse = parse_url($key2); 
			$parts = pathinfo($parse['path']); 
			$copy = copy($key2, $path  . $parts['basename'].'.jpg');
			$newpath = '/images/' . $parts['basename'].'.jpg';
					
			print_r($newpath. PHP_EOL);		
		}
}
print_r($arr_orig[1]);
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
$mapLinks = array_map(function($originalPath, $resultPath) {
    // тут делай все, что хочешь с этими двумя, например:
    return [$originalPath => $resultPath];
}, $startLinks, $resultLinks);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы