Пишу функцию для быстрого добавления товаров по ссылке в ручном режиме. Пример ссылки
https://www.sima-land.ru/2742033/nabor-bumagi-dlya...
Нужно спарсить характеристики. Собственно charvals, charnames и даже отдельно manufacture через функцию не парсятся. Проверял регулярное выражение здесь:
https://regex101.com/ . Все регулярки рабочие (там). Но функция не работает. Вот, результат работы у меня:
xn----7sbbrc1bbojpqdj3d8de.xn--p1ai/api/parse?url=...
Подскажите, в чем может быть причина и как мне лучше спарсить эти характеристики? Спасибо
Все работает
function simaland($url) {
$out = array();
$out = file_get_contents($url);
if(preg_match_all('/<h1 itemprop="name">(.*?)<\/h1>/', $out, $pname))
{
$return['pname'] = $pname[1][0];
}
if(preg_match_all('/<meta itemprop="price" content="(.*?)">/', $out, $price))
{
$return['cost_price'] = $price[1][0];
}
if(preg_match_all('/<meta itemprop="priceCurrency" content="(.*?)">/', $out, $currency))
{
$return['currency'] = $currency[1][0];
}
if(preg_match_all('/<span class="b-properties__value">по (.*?) шт<\/span>/', $out, $min_order))
{
$return['min_order'] = $min_order[1][0];
}
if(preg_match_all('/data-large="(.*?)"/', $out, $images))
{
$return['images'] = $images[1];
}
$return['manufacture'] =array();
if(preg_match_all('/<div class="_1KJXA">Торговая марка<\/div><\/div><div class="_3MM0w"><a href="[^>]+?[^>]+" target="_self" class="[^>]+?[^>]+"><span class="[^>]+?[^>]+">(.*?)<\/span><\/a>/im', $out, $mnf))
{
$return['manufacture'] = $mnf[1];
}
$return['charnames'] =array();
if(preg_match_all('/<div class="_1KJXA">(.*?)<\/div>/m', $out, $charnames))
{
$return['charnames'] = $charnames[1];
}
$return['charvars'] =array();
if(preg_match_all('/<div class="_1KJXA">(.*?)<\/div>/m', $out, $charvars))
{
$return['charvars'] = $charvars[1];
}
if(preg_match_all('/<a class="link link_dark-blue no-visited popup_positioner" href="[^>]+?[^>]+">(.*?)<\/a>/', $out, $categories))
{
$return['categories'] = $categories[1];
}
return $return;
}