|
|
|
| Имеется кусок кода:
<div class="itm">
<div class="wrp">
<a href="/Canon-PowerShot-A3000-IS.html" title="Canon PowerShot A3000 IS">
<img src="http://target-site/gthumb/bf/80/bf8086d3d51beddffe0db46cba2706c9.jpg" alt="Canon PowerShot A3000 IS">
<strong>Canon PowerShot A3000 IS</strong></a>
<div class="lisCont">
Кол-во пикселей: 10.60 млн / Оптический Zoom: 4.00 x / ЖК-экран: 230000 пикселов, 2.70 дюйма /<br>
<strong>Наличие: есть на складе</strong><br>
<strong>Код товара:</strong> 11345<br><br>
<a href="/Canon-PowerShot-A3000-IS.html">Описание</a>
<a href="/Canon-PowerShot-A3000-IS/feedback.html" title="Отзывы о Canon PowerShot A3000 IS">Отзывы</a>
<a href="/Canon-PowerShot-A3000-IS/images.html">Фотографии</a>
<a href="/Canon-PowerShot-A3000-IS/cards.html" title="Карты памяти для Canon PowerShot A3000 IS">Карты памяти</a>
</div>
</div>
<em title="цена"><b>$134</b></em>
<ul class="uah">( 1066 грн )</ul>
<ul class="uah_c"><a href="/actions/cart_add?product_mod_id=11345">КУПИТЬ</a></ul>
</div>
|
Я составил так:
preg_match("|(?<=<div class=\"lisCount\">)(.+)(?=<br>)|", $str, $matches);
print_r($matches);
Но ничего не получилось, выводит пустой массив.. | |
|
|
|
|
|
|
|
для: A1exander
(15.09.2010 в 17:46)
| | Переносы строк уберите | |
|
|
|
|
|
|
|
для: Gubichev
(15.09.2010 в 18:27)
| | <br>? | |
|
|
|
|
|
|
|
для: A1exander
(15.09.2010 в 17:46)
| | потомучто нет модификатора /s
Начало совпадения самая важная его часть, такое
"|(?<=<div class=\"lisCount\">)(.+)(?=<br>)|s"
будет сначала совпадать с каждым любым символом, после чего проверять перед ним .
<div class="lisCount">\s*(.+)(?=<br>)
будет сразу пропускать все [^<] , и только при [<] что-то проверять дальше, и не вставите туда какое-нибудь <div class=\"lisCount\">\s*
и возможно надо (.+?)
// не проверял как ведёт себя \s в двойных кавычках | |
|
|
|
|
|
|
|
для: heed
(15.09.2010 в 18:37)
| | К сожалению добавление s не помогло | |
|
|
|
|
|
|
|
для: A1exander
(15.09.2010 в 20:08)
| | <div class="lisCont">
и
<div class=\"lisCount\"> | |
|
|
|
|
|
|
|
для: A1exander
(15.09.2010 в 17:46)
| | Похоже поморочил вам голову..
Я использую библиотеку simple_html_dom.php, оказалось при проверке echo gettype($str); выдало object, хотя в инструкции написано:
How to dump contents of DOM object?
// Dumps the internal DOM tree back into string
$str = $html;
|
Я думал string, я так понимаю из объекта сделать строку может только метод класса? | |
|
|
|
|
|
|
|
для: A1exander
(15.09.2010 в 17:46)
| | Помоему можно сделать так:
<?php
preg_match("/(?<=<div class=\"lisCont\">).+(?=<br>)/Uis", $str, $matches);
print_r($matches);
|
Проверил: выберает то, что тебе и нужно | |
|
|
|
|
|
|
|
для: Tonik992
(15.09.2010 в 21:27)
| | Спасибо, это то что нужно!!!
Выводит:
Кол-во пикселей: 10.60 млн / Оптический Zoom: 4.00 x / ЖК-экран: 230000 пикселов, 2.70 дюйма
|
Класс!
Работая с данной библиотекой я уже запутался, не поймешь где строка/массив/объект и как из одного сделать другое, и при этом еще работа с DOM(что это я пока могу лишь догадываться :)
Да и ПХП не строго типизирован.. | |
|
|
|