PDA

Показать полную графическую версию : Проблемы с функцией StringRegExpReplace, требуется вывод первого вхождения в функцию


dasksting
10-01-2010, 23:46
Доброй ночи ! столкнулся с проблемой, для меня очень актуальной! Суть :

пишу парсер последнего статуса с твитера

$rss = _INetGetSource ("https://twitter.com/dasksting") ; читаем HTML код с нужной страницы твитера

$pattern = '(?s).*<span class="entry-content">(.*?)</span?.*'; патерн для парсинга
$sVar = StringRegExpReplace($rss, $pattern, "\1") ; загнали в переменную статус

ConsoleWrite($sVar & @CRLF)

ННООО!!! в консоль почему-то выводится не первый твит а последний.. перерыл уже массу литры, часа 4 уже сижу, голова квадратная!!! Народ помогите пожалуйста, как сделать чтобы эта штука выводила первый твит. Я думаю что дело в патерне, но как его составить корректо не понимаю. В исходном коде твиттера повторяются строчки которые ищутся в патерне, такое ощущение что он сравнивает правильно но выводит все равно последний. Вся надеда на вас ребята, Заранее ОГРОМНОЕ СПАСИБО!!!

вот кусок из твиттера который повторяется, но сообщения и некоторые параметры и айдишники индивидуальные :

<li class="hentry u status latest-status" id="status_7559526031">
<span class="status-body">
<span class="entry-content">Здесь мое сообщение</span>
<span class="meta entry-meta">
<a class="entry-date" rel="bookmark" href="https://twitter.com/dasksting/status/7559526031">
<span class="published timestamp" data="{time:'Sat Jan 09 15:22:43 +0000 2010'}">7:22 AM Jan 9th</span>
</a>
<span>from <a href="http://www.seesmic.com/" rel="nofollow">Seesmic</a></span>
</span>
</span>
</li>


еще раз Заранее спасибо!!!

asdf8
11-01-2010, 00:01
Попробуй так:

$pattern = '(?s).*?<span class="entry-content">(.*?)</span?.*'; патерн для парсинга

dasksting
11-01-2010, 00:10
обалдеть!!!!!!!!!!!!!! РАБОТАЕТ!!!!!!!!!!!!! УРАА !!! Спасибо милый человек тебе!!!!!!!! дело блин было в одном символе почти :)))) СПАСИБО ЕЩЕ РАЗ!!!!!!!!!!

ps: а можно еще один вопросик...

допустим код HTML имеет такю запись :

<input type='hidden' id='activityhash'

как мне экранировать кавычки одинарные ??? :)

Creat0R
11-01-2010, 00:27
а можно еще один вопросик »
Нельзя.

Вам предупреждение за нарушение общих правил (http://forum.oszone.net/rules.html) (п. 2.7)...

В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема). Темы с несодержательными или слишком общими заголовками будут закрываться или переноситься в раздел "Зона тестирования" в зависимости от политики конкретного форума.

Жду переименования.




© OSzone.net 2001-2012