Перейти к публикации

"Вытащить" ссылку на картинку к новости из допполя


Рекомендованные сообщения

Добрый день. Сдаем каждый месяц отчеты по сайту в exel. В одном из столбцов - ссылка на картинку к новости. Стали делать описания к картинкам, и теперь ссылки формируются неправильно - в них попадает описание... Вот код, который отвечает в нашем скрипте за "поиск" ссылке в допполе "img":

function analizeMedia($xfields, $type = 'img') {
    $catchData = '';

    $xfieldsParts = explode("|", $xfields);
    foreach ($xfieldsParts as $key => $onePart) {
        if ($onePart == $type) {
            $catchData = $xfieldsParts[$key+1];
        }
    }
    return $catchData;
}

 

Подскажите, пожалуйста, как теперь можно получать данные? Вышеприведенном коде, я так понимаю, ссылка бралась после разделителя "|", когда же добавляется описание, то оно как раз и находится после этого разделителя:

img|описание картинки;ссылка

Помогите, пожалуйста. Все картинки хранятся в формате webp

Изменено пользователем ntrtv
Ссылка на сообщение
Поделиться на других сайтах

Ну если простенько, можно так 

function analizeMedia($xfields, $type = 'img')
{
	$catchData = '';
	$xfieldsParts = explode("|", $xfields);
	foreach ($xfieldsParts as $key => $onePart) {
		if ($onePart == $type) {
			if (strpos($xfieldsParts[$key+1],";") !== false)
				$catchData = end(explode(";", $xfieldsParts[$key+1]));
			else
				$catchData = $xfieldsParts[$key+1];
		}
	}
	return $catchData;
}

 

или так
 

function analizeMedia($xfields, $type = 'img')
{
	$catchData = '';
	$xfieldsParts = explode("|", $xfields);
	foreach ($xfieldsParts as $key => $onePart) {
		if ($onePart == $type) {
			if (count(explode(";", $xfieldsParts[$key+1])) == 2)
				$catchData = end(explode(";", $xfieldsParts[$key+1]));
			else
				$catchData = $xfieldsParts[$key+1];
		}
	}
	return $catchData;
}

 

Ссылка на сообщение
Поделиться на других сайтах

Спасибо, но не работает ( 

Первый ошибку выдает. а второй такую ссылку: https://***.ru/uploads/posts/описание картинки|2024-05/d53091acbf_kadr.webp|1|0|800x450|59.1 Kb

Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, ntrtv сказал:

Первый ошибку выдает. а второй такую ссылку: https://***.ru/uploads/posts/описание картинки|2024-05/d53091acbf_kadr.webp|1|0|800x450|59.1 Kb

Так это под 

1 час назад, ntrtv сказал:

img|описание картинки;ссылка

))) Там где сохраняются данные о картинке, размер, вес и тд, то вот так 

function analizeMedia($xfields, $type = 'img')
{
	$catchData = '';
	$xfieldsParts = explode("|", $xfields);
	foreach ($xfieldsParts as $key => $onePart) {
		if ($onePart == $type) {
			$tmp = html_entity_decode( $xfieldsParts[$key+1] );
			$tmp = explode("|", $tmp);
			if (count($tmp) == 1 OR count($tmp) == 5 )
				$catchData = $tmp[0];
			else
				$catchData = $tmp[1];
		}
	}
	return $catchData;
}

Это для допполя тип=загружаемое изображение, для тип=галерея.  работать не будет

Ссылка на сообщение
Поделиться на других сайтах
12 минут назад, alex32 сказал:

Так это под 

))) Там где сохраняются данные о картинке, размер, вес и тд, то вот так 



function analizeMedia($xfields, $type = 'img')
{
	$catchData = '';
	$xfieldsParts = explode("|", $xfields);
	foreach ($xfieldsParts as $key => $onePart) {
		if ($onePart == $type) {
			$tmp = html_entity_decode( $xfieldsParts[$key+1] );
			$tmp = explode("|", $tmp);
			if (count($tmp) == 1 OR count($tmp) == 5 )
				$catchData = $tmp[0];
			else
				$catchData = $tmp[1];
		}
	}
	return $catchData;
}

Это для допполя тип=загружаемое изображение, для тип=галерея.  работать не будет

 это у нас  и не галерея. а загружаемое изображение

 

Последний код вроде работает! Потестирую сейчас. Спасибо! 

Изменено пользователем ntrtv
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...