Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
Altos25
0 / 0 / 0
Регистрация: 02.07.2018
Сообщений: 19
1

Изменить ссылки для изображений на абсолютные

09.01.2019, 15:45. Просмотров 352. Ответов 4
Метки нет (Все метки)

Проблема в следующем:
Есть сайт на битриксе, у него есть API реализованный таким образом
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$PostApi = new Restify([
    'iblock' => 'Post',
    'defaults order' => ['created' => 'desc'],
    'defaults select' => [
        'ID',
        'NAME',
        'CODE',
        'SORT',
        'PREVIEW_PICTURE',
        'PREVIEW_TEXT',
        'DETAIL_PICTURE',
        'DETAIL_TEXT',
        'DATE_CREATE'
    ]
]);
Который отдаёт вот такой массив:
JSON
1
[{"ID":"639","NAME":"Акция Cчастливые дни 15.12.2018 - 15.01.2019","CODE":"aktsiya-cchastlivye-dni-15-12-2018-15-01-2019","SORT":"500","PREVIEW_PICTURE":{"ID":"1567","SRC":"/upload/iblock/f0c/f0cb4cffb73766b011ba83170e6cf0b5.png","HEIGHT":"395","WIDTH":"400","FILE_SIZE":"157366","CONTENT_TYPE":"image/png","ORIGINAL_NAME":"акция2 488х482.png","DESCRIPTION":""},"PREVIEW_TEXT":"Окрашивание + укладка у стилиста - Уход для волос в подарок!","DETAIL_PICTURE":{"ID":"1566","SRC":"/upload/iblock/306/30649c873f66b0c81a9c0fb1113c1ddb.png","HEIGHT":"480","WIDTH":"1090","FILE_SIZE":"576284","CONTENT_TYPE":"image/png","ORIGINAL_NAME":"акция2 1090х480.png","DESCRIPTION":""},"DETAIL_TEXT":"Окрашивание + укладка у стилиста - Уход для волос в подарок!","DATE_CREATE":"2018-12-25T15:00:01+03:00","DETAIL_TEXT_TYPE":"html","PREVIEW_TEXT_TYPE":"html"},
Проблема в том что ссылки для картинок отдаются относительные, а нужны абсолютные.
Кто может подсказать как можно сделать ссылки абсолютными, буду очень благодарен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2019, 15:45
Ответы с готовыми решениями:

Как изменить относительные ссылки на абсолютные
Добрый день! Есть таблица с данными на 1500 строк. На другом листе нужно разместить часть данных...

Абсолютные ссылки для внутренней перелинковки
Вот недавно задался вопросом - вроде как абсолютные ссылки вида http://mysite.ru/page1.html лучше...

Абсолютные ссылки
Как известно, есть абсолютные и относительные ссылки бытует мнение, что для Яндекса внутри сайта...

Получить абсолютные ссылки
Вообщем ситуация такая. Есть регулярное выражение, которое получает абсолютные ссылки (типа...

Ссылки:абсолютные и оносительные
Понадобилась новая страница. Сделал копию из старой. Переименовал, внес изменения. Все страницы...

4
voral
927 / 623 / 136
Регистрация: 16.03.2008
Сообщений: 2,948
09.01.2019, 15:57 2
Абсолютные в понимании сайта: Добавьте протокол и домен в начало
Абсолютные в понимании файловой системы: Добавьте $_SERVER['DOCUMENT_ROOT']. Естественно вы это сделать не сможете если вы лишь клиент АПИ. Этот вариант возможен только если это ваш сервис. (В противном случае это даже не имеет смысла)
0
Altos25
0 / 0 / 0
Регистрация: 02.07.2018
Сообщений: 19
09.01.2019, 16:16  [ТС] 3
Он сейчас отдаёт ссылку вида /upload/iblock/f0c/f0cb4cffb73766b011ba83170e6cf0b5.png ..... а мне нужна ссылка вида "http://mysite/upload/iblock/f0c/f0cb4cffb73766b011ba83170e6cf0b5.png" Но где и что для этого добавить совершенно не могу понять. доступ есть ко всему. Если что-то трогаю в том массиве который привёл выше, все ломается.
0
voral
927 / 623 / 136
Регистрация: 16.03.2008
Сообщений: 2,948
09.01.2019, 16:18 4
У вас не стандартный класс. Так что готовое решение не дать.

Надо искать в его исходниках где формируется ссылка и добавлять туда http://mysite/. Либо, если объект этого класса возвращает массив, пройтись по нему и добавить.
0
Altos25
0 / 0 / 0
Регистрация: 02.07.2018
Сообщений: 19
09.01.2019, 17:05  [ТС] 5
Нашёл вот такой код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static function format($fileId)
    {
        $rawFile = CFile::GetFileArray($fileId);
 
        $selectFields = [
            'ID',
            'SRC',
            'HEIGHT',
            'WIDTH',
            'FILE_SIZE',
            'CONTENT_TYPE',
            'ORIGINAL_NAME',
            'DESCRIPTION'
        ];
 
        $file = [];
        foreach ($selectFields as $field)
            $file[$field] = $rawFile[$field];
 
        return $file;
    }
Добавлено через 35 минут
Решение: добавил строку $file['SRC'] = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . $file['SRC'];
0
09.01.2019, 17:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2019, 17:05

Относительные и абсолютные ссылки
Здравствуйте, товарищи!! У меня следующий вопрос - есть ли разница между относительными и...

Относительные или абсолютные ссылки?
Товарищи! Подскажите имеем сайт, начал он свою деятельность 1,5 месяца назад. На сегодняшний день в...

Заказчик заставляет делать абсолютные ссылки
Пишу движок. Заказчик хочет везде абсолютные ссылки. http://site.ru/folder/page.html А вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru