- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
'/<div class="class1">Цитата:<div class="(?:class2)?"><blockquote>(.+?)</blockquote></div>(.+?)</div>\s*</td>/s'
Что то не получается ((
А зачем второй символ "/" ?
Вот точная цитата кода, 3 примера:
<div class="class1">Цитата:<div class="class2"><blockquote>текст цитаты</blockquote></div><br />нужный текст сообщения<br /><br /><div class="другой ненужный">ненужное</div></div>
</td>
<div class="class1">Цитата:<div class="class2"><blockquote>текст цитаты</blockquote></div><br />нужный текст сообщения<img src=" ...gif" alt="" /> <img src="...gif" alt="" /></div>
</td>
<div class="class1">нужный текст сообщения</div>
</td>
Экранируйте разделитель шаблона в тегах - /, либо поменяйте delimiter на решетку
3 примера:
<div class="class1">нужный текст сообщения</div>
class2 встречается не всегда..
class2, и блок class2 это немного разные вещи. Советую писать в будущем писать конкретнее, чтобы люди вас правильно поняли и не было неоднозначности.
---------- Добавлено 25.05.2014 в 18:46 ----------
preg_match_all('#<div class="class1">(?:Цитата:<div class="class2"><blockquote>(.+?)</blockquote></div>(.+?)|(.+?))</div>\s*</td>#s', $str, $out);
print_r($out);
Ребята, Хелп!
Есть скрипт, который тянул курс евро с cbr.ru
С некоторого времени он не отрабатывает, полагаю сменилась верстка. Необходимо подкорректировать регулярку.
Ранее была вида:
preg_match_all("/<tr.* ([\w\D]{3})<.*>([01]{1,7})<.*>([\d,]{7})<.*<\/tr>/sU",$raw_data,$currency_raw,PREG_SET_ORDER);
страница для парсинга - http://cbr.ru/currency_base/daily.aspx?date_req=28.05.2014
preg_match_all("/<tr.* ([\w\D]{3})<.*>([01]{1,7})<.*>([\d,]{7})<.*<\/tr>/sU",$raw_data,$currency_raw,PREG_SET_ORDER);
Исчезли
mvg, вы прямо с сайта что ли тянете?
Есть же http://www.cbr.ru/scripts/XML_daily.asp
[umka], да, тянется зачем-то прямо с сайта. Буду благодарен, если укажете выражение для XML
Буду благодарен, если укажете выражение для XML
http://www.php.net/manual/ru/simplexml.examples-basic.php
$xml = new SimpleXMLElement('http://www.cbr.ru/scripts/XML_daily.asp', null, true);
foreach($xml as $row){
print_r($row);
}
Раньше тоже парсил регулярками, но после знакомства с Simple HTML DOM забыл о них.
http://xdan.ru/Uchimsya-parsit-saity-s-bibliotekoi-PHP-Simple-HTML-DOM-Parser.html
$html = str_get_html("<div>foo <b>bar</b></div>");echo $html; // выведет <div>foo <b>bar</b></div>;
$e = $html->find("div", 0);
echo $e->tag; // Вернет: "div"
echo $e->outertext; // Вернет: <div>foo <b>bar</b></div>
echo $e->innertext; // Вернет: foo <b>bar</b>
echo $e->plaintext; // Вернет: foo bar
---------- Добавлено 28.05.2014 в 13:56 ----------
<div class="class1">Цитата:<div class="class2"><blockquote>текст цитаты</blockquote></div> нужный текст</div>
</td>
class2 встречается не всегда..
На выходе preg_match хочу получить:
Цитата: текст цитаты
<br>
нужный текст
Для Вашего примера:
$html = str_get_html("...");
$e = $html->find("div[class=class1]", 0);
echo $e->plaintext;
Раньше тоже парсил регулярками, но после знакомства с Simple HTML DOM забыл о них.
Все зависит от уровня парсера. Ради одной двух строчек кода проще написать регулярное выражение, чем запускать ресурсоемкий разбор html-а.