Gigabit
22.01.2014 - 13:22
Добрый день! Помогите в вопросе
Допустим есть адрес сайта с описание продукта
ПримерВ коде этой странице есть описание товара
<ul class="productDescription">
<li>формат - А4</li>
<li>белизна CIE - 146%</li>
<li>плотность бумаги - 80г/кв.м.</li>
<li>класс бумаги - С</li>
<li>листов в пачке - 500</li>
</ul>
Я буду записывать всю информацию которая находится в тэге <ul></ul>
но для этого мне нужно провести поиск на странице тега <ul> с классом productDescription
и после этого вытащить всю информацию находящееся в теге
<ul class="productDescription"></ul>
КАК ЭТО СДЕЛАТь подскажите немного
Игорь_Vasinsky
22.01.2014 - 13:37
подсказка - как ты и просил:
это называется парсинг, использовать для парсинга можно либо regexp, либо готовые библии, например simple html dom
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Gigabit
22.01.2014 - 13:42
а как это сделать с preg_match?
Игорь_Vasinsky
22.01.2014 - 13:49
используя регулярные выражения.
примеры паттерна
#[a-z]#i
#<a hreh=\"([^>].*)\">#us
и т.д.
читаем
http://www.php.net/manual/ru/reference.pcr...tern.syntax.php
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Gigabit
22.01.2014 - 14:30
В моем случае это должно быть так. но чет не выводит ни чего
$sContent = '<ul class="productDescription">
<li>формат - А4</li>
<li>белизна CIE - 146%</li>
<li>плотность бумаги - 80г/кв.м.</li>
<li>класс бумаги - С</li>
<li>листов в пачке - 500</li>
</ul>';
if (preg_match_all('|<ul>(.+?)</ul>|isU', $sContent, $arr))
{
echo $arr[0];
}
Игорь_Vasinsky
22.01.2014 - 14:33
или так?
$sContent = '<ul class="productDescription">
<li>формат - А4</li>
<li>белизна CIE - 146%</li>
<li>плотность бумаги - 80г/кв.м.</li>
<li>класс бумаги - С</li>
<li>листов в пачке - 500</li>
</ul>';
if (preg_match_all('#<ul class="productDescription">(.*)</ul>#is', $sContent, $arr))
{
echo '<pre>' . print_r($arr,1) . '</pre>';
}
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Gigabit
22.01.2014 - 14:49
а если я хочу указать источник где искать эти данные ссылкой, то есть так
$sContent = 'http://bumaga-s.ru/%D1%82%D0%BE%D0%B2%D0%B0%D1%80/%D0%91%D1%83%D0%BC%D0%B0%D0%B3%D0%B0_SvetoCopy__%D0%904_80%D0%B3_%D0%BC_500%D0%BB_?ajax=1';
if (preg_match_all('#<ul class="productDescription">(.*)</ul>#is', $sContent, $arr))
{
echo '<pre>' . print_r($arr,1) . '</pre>';
}
То мне надо подгружать контент по этому URLу а потом искать данные? если так, то можно ли подгружать код html страницы php языком? и как? как на ajax я знаю а на php нет
Игорь_Vasinsky
22.01.2014 - 14:53
$content = file_get_contents('http://bumaga-s.ru/%D1%82%D0%BE%D0%B2%D0%B0%D1%80/%D0%91%D1%83%D0%BC%D0%B0%D0%B3%D0%B0_SvetoCopy__%D0%904_80%D0%B3_%D0%BC_500%D0%BB_?ajax=1');
Цитата |
как на ajax я знаю |
браво))
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Gigabit
22.01.2014 - 14:59
издеваешься?)))
Игорь_Vasinsky
22.01.2014 - 15:02
получаешь в переменную контент с удалённой страницы и парсишь.
где издёвка?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Gigabit
22.01.2014 - 15:24
Цитата |
Цитата
Цитата | как на ajax я знаю |
браво))
|
Я насчет этого.
А почему то я не получаю удаленно эту страницу
Gigabit
22.01.2014 - 15:25
Gigabit
22.01.2014 - 15:27
Все вопрос решен))
Gigabit
22.01.2014 - 15:29
Я хотел тебе поставить +1 в карму но Админи мне запретили)) Санкции против меня))
Игорь_Vasinsky
22.01.2014 - 15:37
function getData($url){
$url = urldecode($url);
$content = file_get_contents($url);
preg_match_all('#<ul class="productDescription">(.*)</ul>#is', $content, $data);
return isset($data[1][0]) ? $data[1][0] : false;
}
$data = getData('http://bumaga-s.ru/%D1%82%D0%BE%D0%B2%D0%B0%D1%80/%D0%91%D1%83%D0%BC%D0%B0%D0%B3%D0%B0_SvetoCopy__%D0%904_80%D0%B3_%D0%BC_500%D0%BB_?ajax=1');
if($data !== false){
echo '<ul>'.$data.'</ul>';
}
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.