Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2019, 10:57   #1
moondi
 
Регистрация: 14.12.2013
Сообщений: 5
По умолчанию Подскажите как спарсить картинки с относительным адресом?

Здравствуйте,
подскажите пожалуйста по следующей проблеме. Делаю парсер таблицы. не знаю как лучше, но решил реализовать через simple_html_dom parser.
Сделал такой код.
Код:
<? 
include 'simple_html_dom.php';
$html = file_get_html('https://test.ru');
foreach($html->find('a') as $main){
$main->outertext = '';
}
$news = $html->find('div.stage-results-in');
$news2 = $html->find('div.stage-results-after');

?>
<table><tr><td> <? echo $news['0'];?></td><td><? echo $news2['0'];?></td></tr></table>
<?
$html->clear();
unset($html);
?>
В результате картинки не отображаются, так как на исходной странице прописан не абсолютный адрес, а относительный. Как сделать так, чтобы картинки в спарсенном куске кода отображались? Я так понял, родной CSS сайта сохранить нельзя, придется свой дописывать?
moondi вне форума Ответить с цитированием
Старый 29.12.2019, 20:02   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

1. Можно сделать абсолютный, допиши перед относительным имя домена и все
2. Ксс можно сохранять, только непонятно зачем
ADSoft вне форума Ответить с цитированием
Старый 30.12.2019, 23:54   #3
moondi
 
Регистрация: 14.12.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
1. Можно сделать абсолютный, допиши перед относительным имя домена и все
2. Ксс можно сохранять, только непонятно зачем
А как это сделать?
пробовал
Цитата:
$news = str_replace('/img src="/', 'img src="https://site.ru/', $news);
ничего не дает.
moondi вне форума Ответить с цитированием
Старый 31.12.2019, 00:23   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Цитата:
Сообщение от moondi Посмотреть сообщение
пробовал
Зачем в str_replace каике-то слеши? Это же не регулярное выражение.
Arigato вне форума Ответить с цитированием
Старый 01.01.2020, 00:07   #5
moondi
 
Регистрация: 14.12.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Зачем в str_replace каике-то слеши? Это же не регулярное выражение.
не могу понять. без слешей тоже не работает.
Код:
$news2 = str_replace('img src="/', 'img src="https://www.ewrc-results.com/', $news2);
$news2 = str_replace('img src="', 'img src="https://site.ru/', $news2);
получается только через
Код:
$news2 = preg_replace('/mg src="/s', 'img src="https://site.ru/', $news2);
Но интересно почему через str не происходит замена. На будущее понять.
moondi вне форума Ответить с цитированием
Старый 01.01.2020, 21:03   #6
moondi
 
Регистрация: 14.12.2013
Сообщений: 5
По умолчанию

частично понял. у меня было записано
Код:
$news2 = $html->find('div.stage-results-after');
echo $news2['0']
поменял на
[CODE]
Код:
$news2 = $html->find('div.stage-results-after','0');
echo $news2;
чисто механически нашел причину, а в плане понимания не понял что дают эти нули.
moondi вне форума Ответить с цитированием
Старый 01.01.2020, 21:47   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Почитайте про массивы, эти цифры - индексы элементов массива
ADSoft вне форума Ответить с цитированием
Старый 02.01.2020, 13:09   #8
moondi
 
Регистрация: 14.12.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Почитайте про массивы, эти цифры - индексы элементов массива
спасибо!
p.s.

Вообще сейчас прочитал, что я зря связался с Html simple dom parser. Говорят Didom https://github.com/Imangazaliev/DiDO...r/README-RU.md намного быстрее работает и меньше памяти жрет. Возможно другим новичкам полезно знать будет.

Последний раз редактировалось moondi; 02.01.2020 в 13:12.
moondi вне форума Ответить с цитированием
Старый 02.01.2020, 17:11   #9
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

это называется преждевременно оптимизированные, у вас на проекте есть проблемы с памятью? с скоростью работы? У вас - основная проблема - незнание азов php, а так-же понимания что такое DOM
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите компонент, которым можно векторные 2D картинки превратить в текстуры alex_4x Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 13.08.2016 00:12
Подскажите где можно найти или заказать картинки для сайта на мой вкус blekiw Фриланс 5 04.06.2016 20:38
программа очереди с относительным приритетом(паскаль) vikeshek Помощь студентам 0 09.12.2012 05:26
Как заменить абсолютный путь относительным Delphi Kreadlling БД в Delphi 3 28.03.2012 14:19
Помогите с IP-адресом! gluk666 Работа с сетью в Delphi 1 25.02.2007 09:28